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

99 lines
3.9 KiB
TypeScript

// Metro module 5658 (f5659).
import ImpersonateStore from "../impersonate/ImpersonateStore";
import ChannelStore from "../../stores/ChannelStore";
import GuildStore from "../../stores/GuildStore";
import GuildOnboardingHomeSettingsStore from "./GuildOnboardingHomeSettingsStore";
import { GuildFeatures, ME } from "../../Constants";
import { ChannelFlags } from "../channel/ChannelConstants";
import useIsNewMember from "./useIsNewMember";
import { useStateFromStores } from "../../_bundle/defaultAreStatesEqual";
import { isFavoritesGuildId } from "../favorites/FavoritesUtils";
import { isGuildOnboardingSettingsAvailable } from "../guild_onboarding/GuildOnboardingUtils";
import guildHasOnboardingHome from "./guildHasOnboardingHome";
import { $forInKeys } from "../../_hermes/prelude";
export function useCanSeeOnboardingHome(a0) {
const isNewMember = useIsNewMember(a0);
let c14982_1 = isNewMember;
return useStateFromStores([ChannelStore, GuildStore, ImpersonateStore], () => {
let r34, hasFlag;
if (a0 !== ME && !isFavoritesGuildId(a0)) {
const guild = GuildStore.getGuild(a0);
let r27 = !!(guild == null ? void 0 : guild.features.has(GuildFeatures.COMMUNITY));
if (r27) {
if (ImpersonateStore.isFullServerPreview(a0)) {
const id = guild.id;
let r55 = GuildOnboardingHomeSettingsStore.getNewMemberActions(id);
if (r55 == null) {
r55 = [];
}
let r58 = r55.length > 0;
const enabled = GuildOnboardingHomeSettingsStore.getEnabled(id);
if (r58) {
r58 = guild.features.has(GuildFeatures.COMMUNITY);
}
if (r58) {
r58 = !(guild.features.has(GuildFeatures.GUILD_ONBOARDING) && !enabled);
}
r34 = r58;
} else {
r34 = isGuildOnboardingSettingsAvailable(a0) || !!guildHasOnboardingHome(guild);
if (r34) {
let r40 = c14982_1;
if (!r40) {
const mutableGuildChannelsForGuild = ChannelStore.getMutableGuildChannelsForGuild(a0);
let r45 = false;
const r46 = $forInKeys(mutableGuildChannelsForGuild);
let r1 = 0;
const length = r46.length;
if (r46 !== void 0) {
do {
r45 = false;
const r47 = r1 < length ? r46[r1++] : void 0;
if (r47 === void 0) {
break;
}
hasFlag = mutableGuildChannelsForGuild[r47].hasFlag(ChannelFlags.IS_GUILD_RESOURCE_CHANNEL);
r45 = true;
} while (!hasFlag);
}
r40 = r45;
}
r34 = r40;
}
}
r27 = r34;
}
return r27;
}
return false;
}, [a0, isNewMember]);
}
export function canSeeOnboardingHome(a0) {
const guild = GuildStore.getGuild(a0);
const isFullServerPreview = ImpersonateStore.isFullServerPreview(a0);
if (guild == null) {
return false;
}
if (a0 !== ME && !isFavoritesGuildId(a0)) {
if (isFullServerPreview) {
const id = guild.id;
let r44 = GuildOnboardingHomeSettingsStore.getNewMemberActions(id);
if (r44 == null) {
r44 = [];
}
let r46 = r44.length > 0;
const enabled = GuildOnboardingHomeSettingsStore.getEnabled(id);
if (r46) {
r46 = guild.features.has(GuildFeatures.COMMUNITY);
}
if (r46) {
r46 = !(guild.features.has(GuildFeatures.GUILD_ONBOARDING) && !enabled);
}
return r46;
}
const r21 = isGuildOnboardingSettingsAvailable(a0) && guild.features.has(GuildFeatures.GUILD_ONBOARDING) && guild.features.has(GuildFeatures.GUILD_SERVER_GUIDE);
return (guild.features.has(GuildFeatures.GUILD_ONBOARDING) && guild.features.has(GuildFeatures.GUILD_SERVER_GUIDE) || r21) && guild.features.has(GuildFeatures.COMMUNITY);
}
return false;
}