import AboutInfoDialog from '@/components/AboutInfoDialog' import Donation from '@/components/Donation' import { Select, SelectContent, SelectItem, SelectTrigger } from '@/components/ui/select' import { LocalizedLanguageNames, TLanguage } from '@/i18n' import SecondaryPageLayout from '@/layouts/SecondaryPageLayout' import { toPostSettings, toRelaySettings, toWallet } from '@/lib/link' import { cn } from '@/lib/utils' import { useSecondaryPage } from '@/PageManager' import { useNostr } from '@/providers/NostrProvider' import { useTheme } from '@/providers/ThemeProvider' import { SelectValue } from '@radix-ui/react-select' import { Check, ChevronRight, Copy, Info, KeyRound, Languages, PencilLine, Server, SunMoon, Wallet } from 'lucide-react' import { forwardRef, HTMLProps, useState } from 'react' import { useTranslation } from 'react-i18next' const SettingsPage = forwardRef(({ index }: { index?: number }, ref) => { const { t, i18n } = useTranslation() const { nsec, ncryptsec } = useNostr() const { push } = useSecondaryPage() const [language, setLanguage] = useState(i18n.language as TLanguage) const { themeSetting, setThemeSetting } = useTheme() const [copiedNsec, setCopiedNsec] = useState(false) const [copiedNcryptsec, setCopiedNcryptsec] = useState(false) const handleLanguageChange = (value: TLanguage) => { i18n.changeLanguage(value) setLanguage(value) } return (
{t('Languages')}
{t('Theme')}
push(toRelaySettings())}>
{t('Relays')}
push(toWallet())}>
{t('Wallet')}
push(toPostSettings())}>
{t('Posts')}
{!!nsec && ( { navigator.clipboard.writeText(nsec) setCopiedNsec(true) setTimeout(() => setCopiedNsec(false), 2000) }} >
{t('Copy private key')} (nsec)
{copiedNsec ? : }
)} {!!ncryptsec && ( { navigator.clipboard.writeText(ncryptsec) setCopiedNcryptsec(true) setTimeout(() => setCopiedNcryptsec(false), 2000) }} >
{t('Copy private key')} (ncryptsec)
{copiedNcryptsec ? : }
)}
{t('About')}
v{__APP_VERSION__} ({__GIT_COMMIT__})
) }) SettingsPage.displayName = 'SettingsPage' export default SettingsPage const SettingItem = forwardRef>( ({ children, className, ...props }, ref) => { return (
{children}
) } ) SettingItem.displayName = 'SettingItem'