Files
graff.training/src/store/language.ts
T
2024-07-01 20:04:12 +05:00

29 lines
654 B
TypeScript

import { create } from 'zustand';
import { devtools, persist } from 'zustand/middleware';
export type Lang = 'RU' | 'EN';
export const useLang = create<{
value: Lang;
updateLang: (lang: Lang) => void;
}>()(
devtools(
persist(
set => ({
value: JSON.parse(localStorage.getItem('lang') ?? '{}').state ?? 'RU',
updateLang: (lang: Lang) => {
localStorage.setItem(
'lang',
JSON.stringify({ state: { value: lang } }),
);
set({ value: lang });
},
}),
{
name: 'lang',
partialize: state => ({ value: state.value }),
},
),
),
);