import React from 'react' import {View} from 'react-native' import {useLingui} from '@lingui/react' import {msg, Trans} from '@lingui/macro' import {isIOS} from '#/platform/detection' import * as Toast from '#/view/com/util/Toast' import {atoms as a, useTheme} from '#/alf' import { usePreferencesQuery, usePreferencesSetAdultContentMutation, } from '#/state/queries/preferences' import {logger} from '#/logger' import {Text} from '#/components/Typography' import {InlineLink} from '#/components/Link' import * as Toggle from '#/components/forms/Toggle' import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' function Card({children}: React.PropsWithChildren<{}>) { const t = useTheme() return ( {children} ) } export function AdultContentEnabledPref() { const {_} = useLingui() const t = useTheme() // Reuse logic here form ContentFilteringSettings.tsx const {data: preferences} = usePreferencesQuery() const {mutate, variables} = usePreferencesSetAdultContentMutation() const onToggleAdultContent = React.useCallback(async () => { if (isIOS) 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, _]) if (!preferences) return null if (isIOS) { if (preferences?.adultContentEnabled === true) { return null } else { return ( Adult content can only be enabled via the Web at{' '} bsky.app . ) } } else { if (preferences?.userAge) { if (preferences.userAge >= 18) { return ( Enable Adult Content ) } else { return ( You must be 18 years or older to enable adult content ) } } return null } }