diff options
Diffstat (limited to 'src/screens')
-rw-r--r-- | src/screens/Onboarding/StepInterests/index.tsx | 12 | ||||
-rw-r--r-- | src/screens/Onboarding/StepProfile/index.tsx | 14 |
2 files changed, 24 insertions, 2 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> ) : ( diff --git a/src/screens/Onboarding/StepProfile/index.tsx b/src/screens/Onboarding/StepProfile/index.tsx index bf47bbc95..d480a32af 100644 --- a/src/screens/Onboarding/StepProfile/index.tsx +++ b/src/screens/Onboarding/StepProfile/index.tsx @@ -10,11 +10,12 @@ import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useAnalytics} from '#/lib/analytics/analytics' -import {logEvent} from '#/lib/statsig/statsig' +import {logEvent, useGate} from '#/lib/statsig/statsig' import {usePhotoLibraryPermission} from 'lib/hooks/usePermissions' import {compressIfNeeded} from 'lib/media/manip' import {openCropper} from 'lib/media/picker' import {getDataUriSize} from 'lib/media/util' +import {useRequestNotificationsPermission} from 'lib/notifications/notifications' import {isNative, isWeb} from 'platform/detection' import { DescriptionText, @@ -69,6 +70,9 @@ export function StepProfile() { const {gtMobile} = useBreakpoints() const {track} = useAnalytics() const {requestPhotoAccessIfNeeded} = usePhotoLibraryPermission() + const gate = useGate() + const requestNotificationsPermission = useRequestNotificationsPermission() + const creatorControl = Dialog.useDialogControl() const [error, setError] = React.useState('') @@ -86,6 +90,14 @@ export function StepProfile() { track('OnboardingV2:StepProfile:Start') }, [track]) + React.useEffect(() => { + // We have an experiment running for redueced onboarding, where this screen shows up as the first in onboarding. + // We only want to request permissions when that gate is actually active to prevent pollution + if (gate('reduced_onboarding_and_home_algo')) { + requestNotificationsPermission('StartOnboarding') + } + }, [gate, requestNotificationsPermission]) + const openPicker = React.useCallback( async (opts?: ImagePickerOptions) => { const response = await launchImageLibraryAsync({ |