107 lines
5.2 KiB
TypeScript
107 lines
5.2 KiB
TypeScript
// Metro module 15226 (f15227).
|
|
import { useEffect, useMemo } from "react";
|
|
import GuildProgressStore from "../../guild_progress/GuildProgressStore";
|
|
import GuildChannelStore from "../../../stores/GuildChannelStore";
|
|
import GuildStore from "../../../stores/GuildStore";
|
|
import UserStore from "../../../stores/UserStore";
|
|
import { ChannelListChannelNoticeRow } from "../GuildSidebarConstants";
|
|
import { MFALevels } from "../../../Constants";
|
|
import { ContentDismissActionType, DismissibleContentGroupName } from "../../dismissible_content/DismissibleContentConstants";
|
|
import mobileAccountLinkingExperiment from "../../application_account_linking/experiments/mobileAccountLinkingExperiment";
|
|
import { useStateFromStores, useStateFromStoresArray } from "../../../_bundle/defaultAreStatesEqual";
|
|
import { useApplication } from "../../applications/ApplicationActionCreators";
|
|
import useStartAuthorize from "../../application_account_linking/native/useStartAuthorize";
|
|
import { useDefaultAuthorizationNotifiers } from "../../application_account_linking/native/useDefaultAuthorizationNotifiers";
|
|
import { useSelectedSingleUseGuildDismissibleContent } from "../../dismissible_content/hooks/useSelectedDismissibleContent";
|
|
import { DismissibleContent } from "../../../_bundle/Module1358";
|
|
import { UNSAFE_markSingleUseGuildDismissibleContentAsDismissed } from "../../dismissible_content/DismissibleContentUnsafeUtils";
|
|
import { useGuildHasLiveChannelNotice } from "../../guild_scheduled_events/useGuildHasLiveChannelNotice";
|
|
import { useCanShowGameClaimCoachmark } from "../../game_claim/useGameClaimCoachmark";
|
|
export default function useChannelNoticeRows(a0) {
|
|
let currentUser, stateFromStores2, guildHasLiveChannelNotice, c21781_6, c21781_7;
|
|
const id = a0.id;
|
|
const stateFromStores = useStateFromStores([GuildProgressStore], () => GuildProgressStore.hasProgress(id));
|
|
currentUser = UserStore.getCurrentUser();
|
|
stateFromStores2 = useStateFromStores([GuildChannelStore], () => currentUser != null && a0.mfaLevel === MFALevels.ELEVATED && !currentUser.mfaEnabled && GuildChannelStore.hasElevatedPermissions(id), [currentUser, a0.mfaLevel, id]);
|
|
guildHasLiveChannelNotice = useGuildHasLiveChannelNotice(id);
|
|
const r53 = useCanShowGameClaimCoachmark(id) ? [DismissibleContent.GAME_CLAIM_COACHMARK] : [];
|
|
let hasAlreadyLinked;
|
|
const [r63, gameClaimMarkAsDismissed] = useSelectedSingleUseGuildDismissibleContent(r53, id, DismissibleContentGroupName.CHANNEL_NOTICES, true);
|
|
const r4 = r63 != null;
|
|
c21781_6 = r4;
|
|
const id2 = id;
|
|
hasAlreadyLinked = void 0;
|
|
let enabled = mobileAccountLinkingExperiment.useConfig({
|
|
location: "useMobileAccountLinkRow"
|
|
}).enabled;
|
|
const r76 = useStateFromStoresArray([GuildStore], () => {
|
|
let r8 = GuildStore.getGuild(id2)?.gameApplicationIds;
|
|
if (r8 == null) {
|
|
r8 = [];
|
|
}
|
|
return r8;
|
|
})[0];
|
|
const startAuthorize = useStartAuthorize(useApplication(enabled ? r76 : null).data);
|
|
const fetched = startAuthorize.fetched;
|
|
hasAlreadyLinked = startAuthorize.hasAlreadyLinked;
|
|
const { canStartAuthorization, startAuthorization, connectionApp } = startAuthorize;
|
|
const defaultAuthorizationNotifiers = useDefaultAuthorizationNotifiers(startAuthorization, hasAlreadyLinked);
|
|
if (enabled) {
|
|
enabled = fetched;
|
|
}
|
|
if (enabled) {
|
|
enabled = !hasAlreadyLinked;
|
|
}
|
|
if (enabled) {
|
|
enabled = canStartAuthorization;
|
|
}
|
|
if (enabled) {
|
|
enabled = connectionApp != null;
|
|
}
|
|
if (enabled) {
|
|
enabled = connectionApp.applicationAccountLinkBenefitConfig != null;
|
|
}
|
|
if (enabled) {
|
|
enabled = connectionApp.applicationAccountLinkBenefitConfig.reward_name != null;
|
|
}
|
|
if (enabled) {
|
|
enabled = connectionApp.applicationAccountLinkBenefitConfig.reward_image != null;
|
|
}
|
|
const [r114, applicationAccountLinkMarkAsDismissed] = useSelectedSingleUseGuildDismissibleContent(enabled ? [DismissibleContent.MOBILE_ACCOUNT_LINKING_BANNER] : [], id, DismissibleContentGroupName.CHANNEL_NOTICES, true);
|
|
useEffect(() => {
|
|
if (hasAlreadyLinked) {
|
|
UNSAFE_markSingleUseGuildDismissibleContentAsDismissed(DismissibleContent.MOBILE_ACCOUNT_LINKING_BANNER, id2, {
|
|
dismissAction: ContentDismissActionType.INDIRECT_ACTION,
|
|
guildId: id2,
|
|
groupName: DismissibleContentGroupName.CHANNEL_NOTICES
|
|
});
|
|
}
|
|
}, [id, hasAlreadyLinked]);
|
|
const r121 = r114 != null;
|
|
c21781_7 = r121;
|
|
return {
|
|
rows: useMemo(() => {
|
|
const r6 = [ChannelListChannelNoticeRow.SPACER];
|
|
if (c21781_6) {
|
|
r6.push(ChannelListChannelNoticeRow.GAME_CLAIM);
|
|
}
|
|
if (c21781_7) {
|
|
r6.push(ChannelListChannelNoticeRow.APPLICATION_ACCOUNT_LINK);
|
|
}
|
|
if (stateFromStores) {
|
|
r6.push(ChannelListChannelNoticeRow.GUILD_PROGRESS);
|
|
} else if (stateFromStores2) {
|
|
r6.push(ChannelListChannelNoticeRow.MFA_WARNING);
|
|
}
|
|
if (guildHasLiveChannelNotice) {
|
|
r6.push(ChannelListChannelNoticeRow.LIVE_CHANNEL_NOTICE);
|
|
}
|
|
return r6;
|
|
}, [stateFromStores, stateFromStores2, guildHasLiveChannelNotice, r4, r121]),
|
|
gameClaimMarkAsDismissed,
|
|
applicationAccountLinkMarkAsDismissed,
|
|
startApplicationAccountLinkAuthorization: defaultAuthorizationNotifiers,
|
|
accountLinkApplication: connectionApp
|
|
};
|
|
};
|