Add translate dialog for users with other languages

This commit is contained in:
Ben Grant 2023-05-24 20:56:04 +10:00
parent 00c7ae16f2
commit d7971d27df
8 changed files with 57 additions and 150 deletions

View file

@ -1,13 +0,0 @@
import { create } from 'zustand'
interface LocaleUpdateStore {
locale: string
setLocale: (locale: string) => void
}
const useLocaleUpdateStore = create<LocaleUpdateStore>()(set => ({
locale: 'en',
setLocale: locale => set({ locale }),
}))
export default useLocaleUpdateStore

View file

@ -1,28 +0,0 @@
import { create } from 'zustand'
import { persist } from 'zustand/middleware'
import locales from '/src/i18n/locales'
interface TranslateStore {
navigatorLang: string
navigatorSupported: boolean
translateDialogDismissed: boolean
setDialogDismissed: (isDismissed: boolean) => void
}
const useTranslateStore = create<TranslateStore>()(persist(
set => ({
navigatorLang: navigator.language,
navigatorSupported: Object.keys(locales).includes(navigator.language.substring(0, 2)),
translateDialogDismissed: false,
setDialogDismissed: isDismissed => set({ translateDialogDismissed: isDismissed }),
}),
{
name: 'crabfit-translate',
partialize: state => ({ translateDialogDismissed: state.translateDialogDismissed }),
},
))
export default useTranslateStore

View file

@ -1,14 +0,0 @@
import { create } from 'zustand'
interface TWAStore {
/** Is the site running in a trusted web activity? */
isTWA: boolean | undefined
setIsTWA: (isTWA: boolean | undefined) => void
}
const useTWAStore = create<TWAStore>()(set => ({
isTWA: undefined,
setIsTWA: isTWA => set({ isTWA }),
}))
export default useTWAStore