import { SUPPORTED_LOCALES } from '@appConstants'; import { GET_LANGUAGES } from '@graphql/queries/standalone/languages.js'; import type { ILanguage, ILanguagesResponse } from '@types'; export async function useLanguages() { const languageStore = useLanguageStore(); const { $appHelpers } = useNuxtApp(); const cookieLocale = useCookie($appHelpers.COOKIES_LOCALE_KEY, { default: () => $appHelpers.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 {}; }