about summary refs log tree commit diff
path: root/src/screens/Onboarding/StepInterests/index.tsx
diff options
context:
space:
mode:
authorHailey <me@haileyok.com>2024-05-13 09:19:35 -0700
committerGitHub <noreply@github.com>2024-05-13 09:19:35 -0700
commitd3406c89cf0c5b46197a87298dcd4e1326fef643 (patch)
tree6495ae6ca57f07077500a2e69f6cdc1c334be33e /src/screens/Onboarding/StepInterests/index.tsx
parent63b38b413d7a9e243646d11219b0959b3e59cc79 (diff)
downloadvoidsky-d3406c89cf0c5b46197a87298dcd4e1326fef643.tar.zst
Move request for notifications permissions to `HomeReadyScreen` (#3977)
* cleanup the current logic

* add statsig logs

* implement requests for permissions where needed

* oops

* let `addPushTokenListener` handle the token registration

* place new log event type with the other `notifications` type

* place registration next to handler

* more organization

* only call `gate()` if permission is not yet granted

* be more specific to prevent gate pollution

* nit

* make `token` non-optional in `registerToken`

* remove `prevDid`, move `registerPushToken` into `useEffect`

* keep it outside actually

* nit
Diffstat (limited to 'src/screens/Onboarding/StepInterests/index.tsx')
-rw-r--r--src/screens/Onboarding/StepInterests/index.tsx12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/screens/Onboarding/StepInterests/index.tsx b/src/screens/Onboarding/StepInterests/index.tsx
index d6678f4b0..2711f6779 100644
--- a/src/screens/Onboarding/StepInterests/index.tsx
+++ b/src/screens/Onboarding/StepInterests/index.tsx
@@ -5,11 +5,12 @@ import {useLingui} from '@lingui/react'
 import {useQuery} from '@tanstack/react-query'
 
 import {useAnalytics} from '#/lib/analytics/analytics'
-import {logEvent} from '#/lib/statsig/statsig'
+import {logEvent, useGate} from '#/lib/statsig/statsig'
 import {capitalize} from '#/lib/strings/capitalize'
 import {logger} from '#/logger'
 import {useAgent} from '#/state/session'
 import {useOnboardingDispatch} from '#/state/shell'
+import {useRequestNotificationsPermission} from 'lib/notifications/notifications'
 import {
   DescriptionText,
   OnboardingControls,
@@ -33,6 +34,9 @@ export function StepInterests() {
   const t = useTheme()
   const {gtMobile} = useBreakpoints()
   const {track} = useAnalytics()
+  const gate = useGate()
+  const requestNotificationsPermission = useRequestNotificationsPermission()
+
   const {state, dispatch, interestsDisplayNames} = React.useContext(Context)
   const [saving, setSaving] = React.useState(false)
   const [interests, setInterests] = React.useState<string[]>(
@@ -129,6 +133,12 @@ export function StepInterests() {
     track('OnboardingV2:StepInterests:Start')
   }, [track])
 
+  React.useEffect(() => {
+    if (!gate('reduced_onboarding_and_home_algo')) {
+      requestNotificationsPermission('StartOnboarding')
+    }
+  }, [gate, requestNotificationsPermission])
+
   const title = isError ? (
     <Trans>Oh no! Something went wrong.</Trans>
   ) : (