schon/storefront/app/stores/language.ts
2026-02-27 21:59:51 +03:00

37 lines
904 B
TypeScript

import { DEFAULT_LOCALE } from '@appConstants';
import type { ILanguage } from '@types';
export const useLanguageStore = defineStore('language', () => {
const { $appHelpers } = useNuxtApp();
const cookieLocale = useCookie($appHelpers.COOKIES_LOCALE_KEY, {
default: () => DEFAULT_LOCALE,
path: '/',
});
const localeFromCookies = computed(() => cookieLocale.value);
const languages = ref<ILanguage[] | null>(null);
const setLanguages = (payload: ILanguage[]) => {
languages.value = payload;
};
const currentLocale = ref<ILanguage | null>(null);
const setCurrentLocale = (payload: ILanguage | null) => {
currentLocale.value = payload;
};
watch(
() => localeFromCookies.value,
() => {
setCurrentLocale(languages.value?.find((l) => l.code === localeFromCookies.value) as ILanguage);
},
);
return {
languages,
setLanguages,
currentLocale,
setCurrentLocale,
};
});