diff options
author | Hailey <me@haileyok.com> | 2024-06-10 12:14:00 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-10 12:14:00 -0700 |
commit | 5dd195bcb748820eb293348501348d658021c658 (patch) | |
tree | 970ad045354d845dd1cc4958a61e87c86532e082 /src/lib/notifications | |
parent | 90ec22a6749555f48bfd21eec81f877f8eae0524 (diff) | |
download | voidsky-5dd195bcb748820eb293348501348d658021c658.tar.zst |
Check `canAskAgain` for notification permissions (#4460)
Diffstat (limited to 'src/lib/notifications')
-rw-r--r-- | src/lib/notifications/notifications.ts | 10 |
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', { |