import type { NextPage } from 'next' import { useTranslation } from 'next-i18next' import { serverSideTranslations } from 'next-i18next/serverSideTranslations' import { useTheme } from 'next-themes' import { useRouter } from 'next/router' import ButtonGroup from '../components/forms/ButtonGroup' import useLocalStorageState from '../hooks/useLocalStorageState' import dayjs from 'dayjs' require('dayjs/locale/en') require('dayjs/locale/es') require('dayjs/locale/zh') require('dayjs/locale/zh-tw') export async function getStaticProps({ locale }: { locale: string }) { return { props: { ...(await serverSideTranslations(locale, ['common', 'trade'])), }, } } const THEMES = ['Light', 'Dark', 'Mango'] export const LANGS = [ { locale: 'en', name: 'english', description: 'english' }, { locale: 'es', name: 'spanish', description: 'spanish' }, { locale: 'zh_tw', name: 'chinese-traditional', description: 'traditional chinese', }, { locale: 'zh', name: 'chinese', description: 'simplified chinese' }, ] const Settings: NextPage = () => { const { t } = useTranslation('common') const { theme, setTheme } = useTheme() const [savedLanguage, setSavedLanguage] = useLocalStorageState('language', '') const router = useRouter() const { pathname, asPath, query } = router const handleLangChange = (l: string) => { setSavedLanguage(l) router.push({ pathname, query }, asPath, { locale: l }) dayjs.locale(l == 'zh_tw' ? 'zh-tw' : l) } return (

Display

{t('theme')}

setTheme(t)} values={THEMES} large />

{t('language')}

handleLangChange(l)} values={LANGS.map((val) => val.locale)} names={LANGS.map((val) => t(val.name))} large />
) } export default Settings