import {GET_LANGUAGES} from "~/graphql/queries/standalone/languages.js"; import type {ILanguage} from "~/types"; import type {ILanguagesResponse} from "~/types"; import {useAppConfig} from "~/composables/config"; import {DEFAULT_LOCALE, SUPPORTED_LOCALES} from "~/config/constants"; export async function useLanguages() { const languageStore = useLanguageStore(); const { COOKIES_LOCALE_KEY } = useAppConfig(); const cookieLocale = useCookie( COOKIES_LOCALE_KEY, { default: () => DEFAULT_LOCALE, path: '/' } ); const { data, error } = await useAsyncQuery( GET_LANGUAGES ); if (!error.value && data.value?.languages) { const filteredLanguages = data.value.languages.filter((locale: ILanguage) => SUPPORTED_LOCALES.some(supportedLocale => supportedLocale.code === locale.code ) ); languageStore.setLanguages(filteredLanguages); const currentLocale = filteredLanguages.find(locale => locale.code === cookieLocale.value ); if (currentLocale) { languageStore.setCurrentLocale(currentLocale); } } watch(error, (err) => { if (err) { console.error('useLanguage error:', err) } }); return { }; }