adjust notifications experiment by removing canAskAgain
(#4271)
* adjust notifications experiment by removing `canAskAgain` * move to `StepFinished` for after onboarding
This commit is contained in:
parent
165feedb86
commit
eb6f44853d
4 changed files with 44 additions and 45 deletions
|
@ -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) {
|
||||
|
|
|
@ -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'
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue