import Emoji from '@/components/Emoji' import EmojiPickerDialog from '@/components/EmojiPickerDialog' import { Button } from '@/components/ui/button' import { Label } from '@/components/ui/label' import { Select, SelectContent, SelectItem, SelectTrigger } from '@/components/ui/select' import { Switch } from '@/components/ui/switch' import { MEDIA_AUTO_LOAD_POLICY, NSFW_DISPLAY_POLICY } from '@/constants' import { LocalizedLanguageNames, TLanguage } from '@/i18n' import SecondaryPageLayout from '@/layouts/SecondaryPageLayout' import { cn, isSupportCheckConnectionType } from '@/lib/utils' import { useContentPolicy } from '@/providers/ContentPolicyProvider' import { useUserPreferences } from '@/providers/UserPreferencesProvider' import { useUserTrust } from '@/providers/UserTrustProvider' import { TMediaAutoLoadPolicy, TNsfwDisplayPolicy } from '@/types' import { SelectValue } from '@radix-ui/react-select' import { RotateCcw } from 'lucide-react' import { forwardRef, HTMLProps, useState } from 'react' import { useTranslation } from 'react-i18next' const GeneralSettingsPage = forwardRef(({ index }: { index?: number }, ref) => { const { t, i18n } = useTranslation() const [language, setLanguage] = useState(i18n.language as TLanguage) const { autoplay, setAutoplay, nsfwDisplayPolicy, setNsfwDisplayPolicy, hideContentMentioningMutedUsers, setHideContentMentioningMutedUsers, mediaAutoLoadPolicy, setMediaAutoLoadPolicy, verboseLogging, setVerboseLogging, enableMarkdown, setEnableMarkdown } = useContentPolicy() const { hideUntrustedNotes, updateHideUntrustedNotes, hideUntrustedInteractions, updateHideUntrustedInteractions, hideUntrustedNotifications, updateHideUntrustedNotifications } = useUserTrust() const { quickReaction, updateQuickReaction, quickReactionEmoji, updateQuickReactionEmoji } = useUserPreferences() const handleLanguageChange = (value: TLanguage) => { i18n.changeLanguage(value) setLanguage(value) } return (
{quickReaction && (
{ if (!emoji) return updateQuickReactionEmoji(emoji) }} >
)}
) }) GeneralSettingsPage.displayName = 'GeneralSettingsPage' export default GeneralSettingsPage const SettingItem = forwardRef>( ({ children, className, ...props }, ref) => { return (
{children}
) } ) SettingItem.displayName = 'SettingItem'