// Metro module 10983 (f10984). import { useMemo } from "react"; import AuthenticationStore from "../../../stores/AuthenticationStore"; import GuildMemberStore from "../../../stores/GuildMemberStore"; import GuildStore from "../../../stores/GuildStore"; import InviteStore from "../../../stores/InviteStore"; import UserStore from "../../../stores/UserStore"; import { GuildFeatures, InviteStates } from "../../../Constants"; import { useStateFromStores, useStateFromStoresObject } from "../../../_bundle/Module589"; import { hasFlag } from "../../../_bundle/Module1384"; import { GuildInviteFlags } from "../../../_bundle/Module6709"; import usePendingFolderGuildIds, { getPendingFolderGuildIds } from "../../guilds_bar/usePendingFolderGuildIds"; import { guildSupportsTags } from "../../guild_tag/GuildTagUtils"; import { GuildProfileVisibility } from "../GuildProfileTypes"; let c7398_11 = { IS_MEMBER: 0, 0: "IS_MEMBER", ADOPT_TAG: 1, 1: "ADOPT_TAG", HAS_APPLICATION: 2, 2: "HAS_APPLICATION", APPLY_TO_JOIN: 3, 3: "APPLY_TO_JOIN", LURK_DISCOVERABLE: 4, 4: "LURK_DISCOVERABLE", JOIN_VIA_INVITE: 5, 5: "JOIN_VIA_INVITE", ACCEPT_ROLES: 6, 6: "ACCEPT_ROLES" }; let c7398_12 = { INVITE: "INVITE" }; export default function useGuildProfileCTA(a0, a1, a2) { let stateFromStores2, stateFromStores3, stateFromStores4, validInviteKey, isBypassInvite, inviteRoles, c18428_12; const { id, features } = a0; const stateFromStores = useStateFromStores([AuthenticationStore], () => AuthenticationStore.getId()); stateFromStores2 = useStateFromStores([GuildStore], () => GuildStore.getGuild(id)); stateFromStores3 = useStateFromStores([UserStore], () => UserStore.getUser(stateFromStores), [stateFromStores]); stateFromStores4 = useStateFromStores([GuildMemberStore], () => (id != null ? GuildMemberStore.getMember(id, stateFromStores) : null)?.joinedAt != null, [id, stateFromStores]); const stateFromStoresObject = useStateFromStoresObject([InviteStore], () => { let r20; let validInviteKey2 = a2; if (validInviteKey2 == null) { validInviteKey2 = InviteStore.getInviteKeyForGuildId(id); } const r12 = validInviteKey2 != null ? InviteStore.getInvite(validInviteKey2) : null; if (r12 != null && (r12.state !== InviteStates.BANNED && r12.state !== InviteStates.EXPIRED)) { let flags = r12.flags; if (flags == null) { flags = 0; } r20 = { validInviteKey: validInviteKey2, isBypassInvite: hasFlag(flags, GuildInviteFlags.IS_APPLICATION_BYPASS), inviteRoles: r12.roles }; } else { r20 = { validInviteKey: null, isBypassInvite: false, inviteRoles: null }; } return r20; }, [id, a2]); validInviteKey = stateFromStoresObject.validInviteKey; isBypassInvite = stateFromStoresObject.isBypassInvite; inviteRoles = stateFromStoresObject.inviteRoles; const pendingFolderGuildIds = usePendingFolderGuildIds(); c18428_12 = pendingFolderGuildIds; return { guildId: id, ctaType: useMemo(() => { let HAS_APPLICATION; if (stateFromStores4) { if (a1 === c7398_12.INVITE && inviteRoles != null && inviteRoles.length > 0 && stateFromStores3 != null) { const member = GuildMemberStore.getMember(id, stateFromStores3.id); const r69 = Set; let r71 = member?.roles; if (r71 == null) { r71 = []; } let c26896_0 = new r69(r71); if (inviteRoles.some((inviteRole) => !c26896_0.has(inviteRole.id))) { return c7398_11.ACCEPT_ROLES; } } const primaryGuild = stateFromStores3?.primaryGuild; const r86 = primaryGuild?.identityGuildId === id && primaryGuild?.identityEnabled === true; return a1 !== c7398_12.INVITE && (a0.tag != null && (!r86 && (stateFromStores2 != null && guildSupportsTags(stateFromStores2)))) ? c7398_11.ADOPT_TAG : c7398_11.IS_MEMBER; } L22: { if (c18428_12.includes(id)) { HAS_APPLICATION = c7398_11.HAS_APPLICATION; } else { const r20 = features == null ? void 0 : features.includes(GuildFeatures.MEMBER_VERIFICATION_GATE_ENABLED); L12: { if (r20 && (features == null ? void 0 : features.includes(GuildFeatures.MEMBER_VERIFICATION_MANUAL_APPROVAL))) { if (validInviteKey == null && a0.visibility !== GuildProfileVisibility.PUBLIC_WITH_RECRUITMENT) { break L12; } if (!isBypassInvite) { HAS_APPLICATION = c7398_11.APPLY_TO_JOIN; break L22; } } } HAS_APPLICATION = validInviteKey != null ? c7398_11.JOIN_VIA_INVITE : (features == null ? void 0 : features.includes(GuildFeatures.DISCOVERABLE)) ? c7398_11.LURK_DISCOVERABLE : null; } } return HAS_APPLICATION; }, [stateFromStores4, pendingFolderGuildIds, id, features, validInviteKey, a0.visibility, a0.tag, isBypassInvite, a1, stateFromStores2, inviteRoles, stateFromStores3]), validInviteKey }; }; export { c7398_11 as CTATypes }; export { c7398_12 as GuildProfileCTAContext }; export function getGuildProfileCTAType(a0, a1) { let HAS_APPLICATION; const { id: id2, features: features2 } = a0; const id3 = AuthenticationStore.getId(); const user = UserStore.getUser(id3); const joinedAt = (id2 != null ? GuildMemberStore.getMember(id2, id3) : null)?.joinedAt; let r29 = a1; const r30 = joinedAt != null; if (a1 == null) { r29 = InviteStore.getInviteKeyForGuildId(id2); } const r33 = r29 != null ? InviteStore.getInvite(r29) : null; const r5 = r33 == null; let r36 = false; let r37 = null; if (!r5) { const state = r33.state; const BANNED = InviteStates.BANNED; r36 = false; r37 = null; if (state !== BANNED) { const state2 = r33.state; const EXPIRED = InviteStates.EXPIRED; r36 = false; r37 = null; if (state2 !== EXPIRED) { let flags = r33.flags; if (flags == null) { flags = 0; } r36 = hasFlag(flags, GuildInviteFlags.IS_APPLICATION_BYPASS); r37 = r29; } } } const pendingFolderGuildIds = getPendingFolderGuildIds(); if (r30) { if (r33?.roles != null && r33.roles.length > 0 && user != null) { const member = GuildMemberStore.getMember(id2, user.id); const r91 = Set; let r93 = member?.roles; if (r93 == null) { r93 = []; } let c18429_0 = new r91(r93); if (r33.roles.some((role) => !c18429_0.has(role.id))) { return c7398_11.ACCEPT_ROLES; } } return c7398_11.IS_MEMBER; } L36: { if (pendingFolderGuildIds.includes(id2)) { HAS_APPLICATION = c7398_11.HAS_APPLICATION; } else { const r57 = features2 == null ? void 0 : features2.includes(GuildFeatures.MEMBER_VERIFICATION_GATE_ENABLED); L26: { if (r57 && (features2 == null ? void 0 : features2.includes(GuildFeatures.MEMBER_VERIFICATION_MANUAL_APPROVAL))) { if (r37 == null && a0.visibility !== GuildProfileVisibility.PUBLIC_WITH_RECRUITMENT) { break L26; } if (!r36) { HAS_APPLICATION = c7398_11.APPLY_TO_JOIN; break L36; } } } HAS_APPLICATION = r37 != null ? c7398_11.JOIN_VIA_INVITE : (features2 == null ? void 0 : features2.includes(GuildFeatures.DISCOVERABLE)) ? c7398_11.LURK_DISCOVERABLE : null; } } return HAS_APPLICATION; }