27 lines
1.5 KiB
TypeScript
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();
|
|
};
|