c4aef9f668
* Age Assurance V2 * Tighten up test * Add todos for sdk migration * Align RQ versions * Use useEffect for side effect * Improve effects, memoize * Standarize on birthdate * Copy feedback * Copilot * Add support link * Reove double .. * Cleanup * Remove redirect dialog * Cleanup todos, add comments * Update splash in main template too * Mock some stuff * Exhaustive checks Co-authored-by: Samuel Newman <mozzius@protonmail.com> * Exhaustive checks Co-authored-by: Samuel Newman <mozzius@protonmail.com> * Small fix to bday handling * Add comment * onboarding style tweak sneaking this in sorry! * rm unreachable breaks * Put useIntentHandler back on web * Remove misleading success set * Align on birthdate --------- Co-authored-by: Samuel Newman <mozzius@protonmail.com>
30 lines
1.0 KiB
TypeScript
30 lines
1.0 KiB
TypeScript
import {useCallback} from 'react'
|
|
import {computeAgeAssuranceRegionAccess} from '@atproto/api'
|
|
|
|
import {useAgeAssuranceDataContext} from '#/ageAssurance/data'
|
|
import {logger} from '#/ageAssurance/logger'
|
|
import {AgeAssuranceAccess, parseAccessFromString} from '#/ageAssurance/types'
|
|
import {getAgeAssuranceRegionConfigWithFallback} from '#/ageAssurance/util'
|
|
import {type Geolocation} from '#/geolocation'
|
|
|
|
export function useComputeAgeAssuranceRegionAccess() {
|
|
const {config, data} = useAgeAssuranceDataContext()
|
|
return useCallback(
|
|
(geolocation: Geolocation) => {
|
|
if (!config) {
|
|
logger.warn('useComputeAgeAssuranceRegionAccess: missing config')
|
|
return AgeAssuranceAccess.Unknown
|
|
}
|
|
const region = getAgeAssuranceRegionConfigWithFallback(
|
|
config,
|
|
geolocation,
|
|
)
|
|
const result = computeAgeAssuranceRegionAccess(region, data)
|
|
return result
|
|
? parseAccessFromString(result.access)
|
|
: AgeAssuranceAccess.Full
|
|
},
|
|
[config, data],
|
|
)
|
|
}
|