Procházet zdrojové kódy

fix: activation page reload issue after activating (#964)

tags/0.3.15
Matri před 2 roky
rodič
revize
916d8be0ae
Žádný účet není propojen s e-mailovou adresou tvůrce revize
3 změnil soubory, kde provedl 13 přidání a 12 odebrání
  1. 8
    7
      web/app/activate/activateForm.tsx
  2. 3
    3
      web/context/i18n.ts
  3. 2
    2
      web/i18n/client.ts

+ 8
- 7
web/app/activate/activateForm.tsx Zobrazit soubor

@@ -47,13 +47,14 @@ const ActivateForm = () => {
const [showSuccess, setShowSuccess] = useState(false)
const defaultLanguage = useCallback(() => (window.navigator.language.startsWith('zh') ? languageMaps['zh-Hans'] : languageMaps.en) || languageMaps.en, [])

const showErrorMessage = (message: string) => {
const showErrorMessage = useCallback((message: string) => {
Toast.notify({
type: 'error',
message,
})
}
const valid = () => {
}, [])

const valid = useCallback(() => {
if (!name.trim()) {
showErrorMessage(t('login.error.nameEmpty'))
return false
@@ -66,9 +67,9 @@ const ActivateForm = () => {
showErrorMessage(t('login.error.passwordInvalid'))

return true
}
}, [name, password, showErrorMessage, t])

const handleActivate = async () => {
const handleActivate = useCallback(async () => {
if (!valid())
return
try {
@@ -84,13 +85,13 @@ const ActivateForm = () => {
timezone,
},
})
setLocaleOnClient(language.startsWith('en') ? 'en' : 'zh-Hans')
setLocaleOnClient(language.startsWith('en') ? 'en' : 'zh-Hans', false)
setShowSuccess(true)
}
catch {
recheck()
}
}
}, [email, language, name, password, recheck, setLocaleOnClient, timezone, token, valid, workspaceID])

return (
<div className={

+ 3
- 3
web/context/i18n.ts Zobrazit soubor

@@ -3,15 +3,15 @@ import type { Locale } from '@/i18n'

type II18NContext = {
locale: Locale
i18n: Record<string, any>,
setLocaleOnClient: (locale: Locale) => void
i18n: Record<string, any>
setLocaleOnClient: (locale: Locale, reloadPage?: boolean) => void
// setI8N: (i18n: Record<string, string>) => void,
}

const I18NContext = createContext<II18NContext>({
locale: 'en',
i18n: {},
setLocaleOnClient: (lang: Locale) => { }
setLocaleOnClient: (lang: Locale, reloadPage?: boolean) => { },
// setI8N: () => {},
})


+ 2
- 2
web/i18n/client.ts Zobrazit soubor

@@ -9,8 +9,8 @@ export const getLocaleOnClient = (): Locale => {
return Cookies.get(LOCALE_COOKIE_NAME) as Locale || i18n.defaultLocale
}

export const setLocaleOnClient = (locale: Locale) => {
export const setLocaleOnClient = (locale: Locale, reloadPage = true) => {
Cookies.set(LOCALE_COOKIE_NAME, locale)
changeLanguage(locale)
location.reload()
reloadPage && location.reload()
}

Načítá se…
Zrušit
Uložit