// Metro module 15394 (f15395). import { useRef, useState, useEffect } from "react"; import GuildMemberStore from "../../../../../stores/GuildMemberStore"; import GuildStore from "../../../../../stores/GuildStore"; import SelectedGuildStore from "../../../../../stores/SelectedGuildStore"; import UserGuildSettingsStore from "../../../../../stores/UserGuildSettingsStore"; import PushNotificationPermissionStore, { PermissionPromptType } from "../../../../../stores/native/PushNotificationPermissionStore"; import { EventActionLocation, NotificationNudgeSurface } from "./NotificationPermissionConstants"; import { UserNotificationSettings, ZERO_STRING_GUILD_ID } from "../../../../../Constants"; import { useStateFromStores } from "../../../../../_bundle/Module589"; import NotificationNudgeBottomSheet from "./NotificationNudgeBottomSheet"; import { intl, t } from "../../../../../intl/index.native"; import ContextualOptInNudgeHoldoutExperiment from "../../ContextualOptInNudgeHoldoutExperiment"; import { useCanSeePushNotificationNudge } from "../../NotificationPermissionUtil"; import { isBlockedByOnboarding } from "../../../../guild_onboarding/GuildOnboardingUtils"; import { isPseudoGuildId } from "../../../../routing/RouteUtils"; import { useSelectedTimeRecurringGuildDismissibleContent } from "../../../../dismissible_content/hooks/useSelectedDismissibleContent"; import { DismissibleContent } from "../../../../../_bundle/Module1358"; import { setPushPermissionReactivationSeen } from "../../../../../actions/native/PushNotificationActionCreators"; import ActionSheetActionCreators from "../../../../action_sheet/native/ActionSheetActionCreators"; let c10946_16 = "guild-open-notification-nudge-key"; let c10946_17 = { cooldownDurationMs: 5184000000 }; export default function GuildOpenNotificationNudge(props) { const { guildId, markAsDismissed: markAsDismissed2, onHide } = props; return { let r8 = GuildStore.getGuild(guildId)?.name; if (r8 == null) { r8 = ""; } return r8; }) })} body={intl.string(t["ehJH+P"])} actionLocation={EventActionLocation.GUILD_OPEN} surface={NotificationNudgeSurface.GUILD_OPEN_BOTTOM_SHEET} markAsDismissed={markAsDismissed2} onHide={onHide} />; }; export const GUILD_OPEN_NOTIFICATION_NUDGE_KEY = "guild-open-notification-nudge-key"; export function useGuildOpenNudge() { let stateFromStores2, ref, c21955_4; const stateFromStores = useStateFromStores([SelectedGuildStore], () => { let r4 = SelectedGuildStore.getGuildId(); if (r4 == null) { r4 = null; } return r4; }); const inHoldout = ContextualOptInNudgeHoldoutExperiment.useConfig({ location: "useGuildOpenNudge" }).inHoldout; const canSeePushNotificationNudge = useCanSeePushNotificationNudge(); const stateFromStores3 = useStateFromStores([UserGuildSettingsStore], () => stateFromStores == null || UserGuildSettingsStore.isMuted(stateFromStores)); const stateFromStores4 = useStateFromStores([UserGuildSettingsStore], () => stateFromStores != null ? UserGuildSettingsStore.getMessageNotifications(stateFromStores) : UserNotificationSettings.NO_MESSAGES); stateFromStores2 = useStateFromStores([GuildStore, GuildMemberStore], () => stateFromStores != null && isBlockedByOnboarding(GuildStore.getGuild(stateFromStores), GuildMemberStore.getSelfMember(stateFromStores))); ref = useRef(stateFromStores); const [state, setState] = useState(stateFromStores2); useEffect(() => { const current = ref.current; ref.current = stateFromStores; if (current !== stateFromStores) { setState(stateFromStores2); } else if (stateFromStores2) { setState(true); } }, [stateFromStores, stateFromStores2]); const stateFromStores5 = useStateFromStores([PushNotificationPermissionStore], () => { const r6 = PushNotificationPermissionStore.getState().promptLastSeen[PermissionPromptType.GUILD_OPEN_BOTTOM_SHEET]; return r6 == null || Date.now() - new Date(r6).getTime() >= 604800000; }); let [r85, markAsDismissed] = useSelectedTimeRecurringGuildDismissibleContent(stateFromStores != null && !isPseudoGuildId(stateFromStores) && !inHoldout && canSeePushNotificationNudge && !state && !stateFromStores3 && stateFromStores4 !== UserNotificationSettings.NO_MESSAGES && stateFromStores5 ? DismissibleContent.NOTIFICATION_NUDGE_GUILD_OPEN_PER_GUILD : null, stateFromStores == null ? ZERO_STRING_GUILD_ID : stateFromStores, c10946_17); c21955_4 = r85; useEffect(() => { if (stateFromStores != null && c21955_4 != null) { setPushPermissionReactivationSeen(PermissionPromptType.GUILD_OPEN_BOTTOM_SHEET); ActionSheetActionCreators.openLazy(import("./GuildOpenNotificationNudge"), c10946_16, { guildId: stateFromStores, markAsDismissed }); } }, [stateFromStores, markAsDismissed, r85]); }