Files
discord-decomp/modules/unique_usernames/useUsernameLiveCheck.tsx
T
2026-11-01 12:12:55 +02:00

38 lines
1.5 KiB
TypeScript

// Metro module 13792 (f13793).
import { useMemo, useEffect } from "react";
import UniqueUsernamesStore from "./UniqueUsernamesStore";
import { useStateFromStores } from "../../_bundle/defaultAreStatesEqual";
import { debounce } from "../../_bundle/Module12";
import UniqueUsernamesActionCreators from "./UniqueUsernamesActionCreators";
import { formatUsernameLiveCheckValidation } from "./UniqueUsernamesUtils";
export function useUsernameLiveCheck(a0) {
let stateFromStores2, memo;
let c20729_0 = a0;
let r10 = arguments[1];
if (r10 === void 0) {
r10 = true;
}
let c20729_1 = r10;
let r11 = arguments[2];
if (r11 === void 0) {
r11 = false;
}
let c20729_2 = r11;
let r3 = arguments[3];
if (r3 === void 0) {
r3 = false;
}
let c20729_3 = r3;
stateFromStores2 = void 0;
memo = void 0;
const stateFromStores = useStateFromStores([UniqueUsernamesStore], () => UniqueUsernamesStore.validate(c20729_0), [a0]);
stateFromStores2 = useStateFromStores([UniqueUsernamesStore], () => UniqueUsernamesStore.isRateLimited());
memo = useMemo(() => debounce((a0) => UniqueUsernamesActionCreators.attemptUsername(a0, c20729_2 ? "registration" : "modal", c20729_2, c20729_3), 800), [r11, r3]);
useEffect(() => {
if (c20729_1 && !stateFromStores2 && stateFromStores == null && c20729_0 !== "") {
memo(c20729_0);
}
}, [r10, stateFromStores2, stateFromStores, a0, memo]);
return useMemo(() => stateFromStores != null ? formatUsernameLiveCheckValidation(stateFromStores) : void 0, [stateFromStores]);
}