about summary refs log tree commit diff
path: root/src/lib/notifications/notifications.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/notifications/notifications.ts')
-rw-r--r--src/lib/notifications/notifications.ts10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/lib/notifications/notifications.ts b/src/lib/notifications/notifications.ts
index 55a7948ef..58aa4087c 100644
--- a/src/lib/notifications/notifications.ts
+++ b/src/lib/notifications/notifications.ts
@@ -72,14 +72,17 @@ export function useNotificationsRegistration() {
 
 export function useRequestNotificationsPermission() {
   const gate = useGate()
+  const {currentAccount} = useSession()
 
-  return async (context: 'StartOnboarding' | 'AfterOnboarding' | 'Login') => {
+  return async (
+    context: 'StartOnboarding' | 'AfterOnboarding' | 'Login' | 'Home',
+  ) => {
     const permissions = await Notifications.getPermissionsAsync()
 
     if (
       !isNative ||
       permissions?.status === 'granted' ||
-      permissions?.status === 'denied'
+      (permissions?.status === 'denied' && !permissions.canAskAgain)
     ) {
       return
     }
@@ -95,6 +98,9 @@ export function useRequestNotificationsPermission() {
     ) {
       return
     }
+    if (context === 'Home' && !currentAccount) {
+      return
+    }
 
     const res = await Notifications.requestPermissionsAsync()
     logEvent('notifications:request', {