// Metro module 15393 (f15394). import { useEffect } from "react"; import LoginRequiredActionStore from "../../auth/LoginRequiredActionStore"; import GatewayConnectionStore from "../../gateway/GatewayConnectionStore"; import UserRequiredActionStore from "../../../stores/UserRequiredActionStore"; import PushNotificationPermissionStore from "../../../stores/native/PushNotificationPermissionStore"; import { useStateFromStores } from "../../../_bundle/Module589"; import isActionRequired from "../../core/isActionRequired"; import NotificationUtils from "../../../utils/native/NotificationUtils"; import { useGuildOpenNudge } from "./components/notification/GuildOpenNotificationNudge"; import { usePostCallDisconnectNudge } from "./components/notification/PostCallDisconnectNudge"; export default function useNotificationPermissionPrompt() { let stateFromStores2; const stateFromStores = useStateFromStores([GatewayConnectionStore], () => GatewayConnectionStore.isConnected()); stateFromStores2 = useStateFromStores([UserRequiredActionStore, LoginRequiredActionStore], () => isActionRequired(LoginRequiredActionStore, UserRequiredActionStore)); useEffect(() => { if (stateFromStores && !stateFromStores2) { if (NotificationUtils.shouldRequestNotification && !PushNotificationPermissionStore.promptSeen) { NotificationUtils.requestPermission(); NotificationUtils.shouldRequestNotification = false; } } }, [stateFromStores, stateFromStores2]); useGuildOpenNudge(); usePostCallDisconnectNudge(); };