191 lines
7.4 KiB
TypeScript
191 lines
7.4 KiB
TypeScript
// 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;
|
|
}
|