import React from 'react' import {View} from 'react-native' import {useLingui} from '@lingui/react' import {msg, Trans} from '@lingui/macro' import {UseMutateFunction} from '@tanstack/react-query' import * as Toast from '#/view/com/util/Toast' import {atoms as a, useTheme} from '#/alf' import {usePreferencesQuery} from '#/state/queries/preferences' import {logger} from '#/logger' import {Text} from '#/components/Typography' import * as Toggle from '#/components/forms/Toggle' import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' import * as Prompt from '#/components/Prompt' import {isIOS} from '#/platform/detection' function Card({children}: React.PropsWithChildren<{}>) { const t = useTheme() return ( {children} ) } export function AdultContentEnabledPref({ mutate, variables, }: { mutate: UseMutateFunction variables: {enabled: boolean} | undefined }) { const {_} = useLingui() const t = useTheme() const prompt = Prompt.usePromptControl() // Reuse logic here form ContentFilteringSettings.tsx const {data: preferences} = usePreferencesQuery() const onToggleAdultContent = React.useCallback(async () => { if (isIOS) { prompt.open() return } try { mutate({ enabled: !(variables?.enabled ?? preferences?.adultContentEnabled), }) } catch (e) { Toast.show( _(msg`There was an issue syncing your preferences with the server`), ) logger.error('Failed to update preferences with server', {error: e}) } }, [variables, preferences, mutate, _, prompt]) if (!preferences) return null return ( <> {preferences.userAge && preferences.userAge >= 18 ? ( Enable Adult Content ) : ( You must be 18 years or older to enable adult content )} Adult Content Due to Apple policies, adult content can only be enabled on the web after completing sign up. OK ) }