diff options
Diffstat (limited to 'src/state/queries/preferences/index.ts')
-rw-r--r-- | src/state/queries/preferences/index.ts | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/state/queries/preferences/index.ts b/src/state/queries/preferences/index.ts index e64f117e6..44d63b55c 100644 --- a/src/state/queries/preferences/index.ts +++ b/src/state/queries/preferences/index.ts @@ -1,3 +1,4 @@ +import {useCallback} from 'react' import { type AppBskyActorDefs, type BskyFeedViewPreference, @@ -9,6 +10,8 @@ import {PROD_DEFAULT_FEED} from '#/lib/constants' import {replaceEqualDeep} from '#/lib/functions' import {getAge} from '#/lib/strings/time' import {logger} from '#/logger' +import {useAgeAssuranceContext} from '#/state/ageAssurance' +import {AGE_RESTRICTED_MODERATION_PREFS} from '#/state/ageAssurance/const' import {STALE} from '#/state/queries' import { DEFAULT_HOME_FEED_PREFS, @@ -31,6 +34,8 @@ export const preferencesQueryKey = [preferencesQueryKeyRoot] export function usePreferencesQuery() { const agent = useAgent() + const {isAgeRestricted} = useAgeAssuranceContext() + return useQuery({ staleTime: STALE.SECONDS.FIFTEEN, structuralSharing: replaceEqualDeep, @@ -68,6 +73,16 @@ export function usePreferencesQuery() { return preferences } }, + select: useCallback( + (data: UsePreferencesQueryResponse) => { + const isUnderage = (data.userAge || 0) < 18 + if (isUnderage || isAgeRestricted) { + data.moderationPrefs = AGE_RESTRICTED_MODERATION_PREFS + } + return data + }, + [isAgeRestricted], + ), }) } |