Files
discord-decomp/modules/nuf/native/useNotificationPermissionPrompt.tsx
T
2026-11-01 12:12:55 +02:00

27 lines
1.5 KiB
TypeScript

// 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();
};