forked from
jollywhoppers.com/witchsky.app
Bluesky app fork with some witchin' additions 馃挮
1import {useCallback} from 'react'
2import {computeAgeAssuranceRegionAccess} from '@atproto/api'
3
4import {useAgeAssuranceDataContext} from '#/ageAssurance/data'
5import {logger} from '#/ageAssurance/logger'
6import {AgeAssuranceAccess, parseAccessFromString} from '#/ageAssurance/types'
7import {getAgeAssuranceRegionConfigWithFallback} from '#/ageAssurance/util'
8import {type Geolocation} from '#/geolocation'
9
10export function useComputeAgeAssuranceRegionAccess() {
11 const {config, data} = useAgeAssuranceDataContext()
12 return useCallback(
13 (geolocation: Geolocation) => {
14 if (!config) {
15 logger.warn('useComputeAgeAssuranceRegionAccess: missing config')
16 return AgeAssuranceAccess.Unknown
17 }
18 const region = getAgeAssuranceRegionConfigWithFallback(
19 config,
20 geolocation,
21 )
22 const result = computeAgeAssuranceRegionAccess(region, data)
23 return result
24 ? parseAccessFromString(result.access)
25 : AgeAssuranceAccess.Full
26 },
27 [config, data],
28 )
29}