'use client' import { useState } from 'react' import { useTranslation } from 'react-i18next' import { useContext } from 'use-context-selector' import { useAppContext } from '@/context/app-context' import { SimpleSelect } from '@/app/components/base/select' import type { Item } from '@/app/components/base/select' import { updateUserProfile } from '@/service/common' import { ToastContext } from '@/app/components/base/toast' import I18n from '@/context/i18n' import { timezones } from '@/utils/timezone' import { languages } from '@/i18n/language' const titleClassName = ` mb-2 text-sm font-medium text-gray-900 ` export default function LanguagePage() { const { locale, setLocaleOnClient } = useContext(I18n) const { userProfile, mutateUserProfile } = useAppContext() const { notify } = useContext(ToastContext) const [editing, setEditing] = useState(false) const { t } = useTranslation() const handleSelectLanguage = async (item: Item) => { const url = '/account/interface-language' const bodyKey = 'interface_language' setEditing(true) try { await updateUserProfile({ url, body: { [bodyKey]: item.value } }) notify({ type: 'success', message: t('common.actionMsg.modifiedSuccessfully') }) setLocaleOnClient(item.value.toString()) } catch (e) { notify({ type: 'error', message: (e as Error).message }) } finally { setEditing(false) } } const handleSelectTimezone = async (item: Item) => { const url = '/account/timezone' const bodyKey = 'timezone' setEditing(true) try { await updateUserProfile({ url, body: { [bodyKey]: item.value } }) notify({ type: 'success', message: t('common.actionMsg.modifiedSuccessfully') }) mutateUserProfile() } catch (e) { notify({ type: 'error', message: (e as Error).message }) } finally { setEditing(false) } } return ( <>