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
}
}