| 'use client' | 'use client' | ||||
| import { useState } from 'react' | |||||
| import { useCallback, useState } from 'react' | |||||
| import { useContext } from 'use-context-selector' | import { useContext } from 'use-context-selector' | ||||
| import { useTranslation } from 'react-i18next' | import { useTranslation } from 'react-i18next' | ||||
| import useSWR from 'swr' | import useSWR from 'swr' | ||||
| const [timezone, setTimezone] = useState('Asia/Shanghai') | const [timezone, setTimezone] = useState('Asia/Shanghai') | ||||
| const [language, setLanguage] = useState('en-US') | const [language, setLanguage] = useState('en-US') | ||||
| const [showSuccess, setShowSuccess] = useState(false) | const [showSuccess, setShowSuccess] = useState(false) | ||||
| const defaultLanguage = (navigator.language?.startsWith('zh') ? languageMaps['zh-Hans'] : languageMaps.en) || languageMaps.en | |||||
| const defaultLanguage = useCallback(() => (window.navigator.language.startsWith('zh') ? languageMaps['zh-Hans'] : languageMaps.en) || languageMaps.en, []) | |||||
| const showErrorMessage = (message: string) => { | const showErrorMessage = (message: string) => { | ||||
| Toast.notify({ | Toast.notify({ | ||||
| </label> | </label> | ||||
| <div className="relative mt-1 rounded-md shadow-sm"> | <div className="relative mt-1 rounded-md shadow-sm"> | ||||
| <SimpleSelect | <SimpleSelect | ||||
| defaultValue={defaultLanguage} | |||||
| defaultValue={defaultLanguage()} | |||||
| items={languages} | items={languages} | ||||
| onSelect={(item) => { | onSelect={(item) => { | ||||
| setLanguage(item.value as string) | setLanguage(item.value as string) |