import {useAddPushToken, useHasPushToken } from "@/api-hooks/user.api"; import React from "react"; import { useNotification } from "./notif-context"; import { BottomDialog } from "common-ui"; import { MyText } from "common-ui"; import { View, Linking } from "react-native"; import { tw } from "common-ui"; import { MyButton } from "common-ui"; import { useAuth } from "@/components/context/auth-context"; interface Props {} function NotifChecker(props: Props) { const {} = props; const [showPermissionDialog, setShowPermissionDialog] = React.useState(false); const {isLoggedIn} = useAuth(); const { data: hasPushToken, isLoading, isError } = useHasPushToken({enabled: isLoggedIn}); const { mutate: addPushToken } = useAddPushToken(); const { notifPermission, expoPushToken } = useNotification(); React.useEffect(() => { if(isLoggedIn && !hasPushToken && notifPermission =='granted') { addPushToken(expoPushToken!); } },[isLoggedIn, hasPushToken]) React.useEffect(() => { if (notifPermission === "denied") { setShowPermissionDialog(true); } }, [notifPermission]); return ( <> setShowPermissionDialog(false)} > Notification Permission Denied It seems you have denied notification permissions. Please enable them in your device settings. setShowPermissionDialog(false)} style={tw`flex-1`} > Cancel { Linking.openSettings(); }} style={tw`flex-1`} > Settings ); } export default NotifChecker;