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

72 lines
2.2 KiB
TypeScript

// Metro module 11760 (f11761).
import { useMemo } from "react";
import UserSettingsProtoStore from "../user_settings/UserSettingsProtoStore";
import ConnectedAccountsStore from "../../stores/ConnectedAccountsStore";
import { HUB_PROGRESS_STEP_ORDER } from "./HubProgressBarConstants";
import { PlatformTypes } from "../../Constants";
import { useStateFromStores } from "../../_bundle/Module589";
import { HubProgressStep } from "../../_bundle/Module1306";
import { intl, t } from "../../intl/index.native";
import { assertNever } from "../../utils/GlobalUtils";
import { hasFlag } from "../../_bundle/Module1384";
export function getHubProgressTitleForStep(a0) {
if (HubProgressStep.JOIN_GUILD === a0) {
return intl.string(t.iNR25n);
}
if (HubProgressStep.INVITE_USER === a0) {
return intl.string(t["3NlTYU"]);
}
if (HubProgressStep.CONTACT_SYNC === a0) {
return intl.string(t.HFvFte);
}
if (HubProgressStep.NO_PROGRESS === a0) {
return null;
}
assertNever(a0);
}
export function useHubProgressBarCompletedSteps(a0) {
const id2 = a0?.id;
let memo, stateFromStores;
const id = id2;
const stateFromStores2 = useStateFromStores([UserSettingsProtoStore], () => {
const r3 = id == null;
let r8 = 0;
if (!r3) {
const guilds = UserSettingsProtoStore.settings.guilds;
let r12 = guilds == null ? void 0 : guilds.guilds[id]?.hubProgress;
if (r12 == null) {
r12 = 0;
}
r8 = r12;
}
return r8;
});
memo = useMemo(() => (function convertHubProgressFlagSetToSet(a0) {
const set = new Set();
for (const item of HUB_PROGRESS_STEP_ORDER) {
if (hasFlag(a0, item)) {
set.add(item);
}
}
return set;
})(stateFromStores2), [stateFromStores2]);
stateFromStores = useStateFromStores([ConnectedAccountsStore], () => ConnectedAccountsStore.getLocalAccount(PlatformTypes.CONTACTS) != null);
return useMemo(() => {
if (stateFromStores) {
const set = new Set(memo);
set.add(HubProgressStep.CONTACT_SYNC);
return set;
}
return memo;
}, [memo, stateFromStores]);
}
export function getNextHubProgressStep(a0) {
for (const item of HUB_PROGRESS_STEP_ORDER) {
if (a0.has(item)) {
continue;
}
return item;
}
return null;
}