adjust notifications experiment by removing canAskAgain (#4271)

* adjust notifications experiment by removing `canAskAgain`

* move to `StepFinished` for after onboarding
This commit is contained in:
Hailey 2024-05-29 18:42:12 -07:00 committed by GitHub
parent 165feedb86
commit eb6f44853d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 44 additions and 45 deletions

View file

@ -71,46 +71,41 @@ export function useNotificationsRegistration() {
export function useRequestNotificationsPermission() {
const gate = useGate()
const {currentAccount} = useSession()
return React.useCallback(
async (context: 'StartOnboarding' | 'AfterOnboarding' | 'Login') => {
const permissions = await Notifications.getPermissionsAsync()
return async (context: 'StartOnboarding' | 'AfterOnboarding' | 'Login') => {
const permissions = await Notifications.getPermissionsAsync()
if (
!currentAccount ||
!isNative ||
permissions?.status === 'granted' ||
(permissions?.status === 'denied' && !permissions?.canAskAgain)
) {
return
}
if (
context === 'StartOnboarding' &&
gate('request_notifications_permission_after_onboarding')
) {
return
}
if (
context === 'AfterOnboarding' &&
!gate('request_notifications_permission_after_onboarding')
) {
return
}
if (
!isNative ||
permissions?.status === 'granted' ||
permissions?.status === 'denied'
) {
return
}
if (
context === 'StartOnboarding' &&
gate('request_notifications_permission_after_onboarding_v2')
) {
return
}
if (
context === 'AfterOnboarding' &&
!gate('request_notifications_permission_after_onboarding_v2')
) {
return
}
const res = await Notifications.requestPermissionsAsync()
logEvent('notifications:request', {
context: context,
status: res.status,
})
const res = await Notifications.requestPermissionsAsync()
logEvent('notifications:request', {
context: context,
status: res.status,
})
if (res.granted) {
// This will fire a pushTokenEvent, which will handle registration of the token
getPushToken(true)
}
},
[gate, currentAccount],
)
if (res.granted) {
// This will fire a pushTokenEvent, which will handle registration of the token
getPushToken(true)
}
}
}
export async function decrementBadgeCount(by: number | 'reset' = 1) {

View file

@ -1,4 +1,4 @@
export type Gate =
// Keep this alphabetic please.
| 'request_notifications_permission_after_onboarding'
| 'request_notifications_permission_after_onboarding_v2'
| 'show_follow_back_label_v2'