diff --git a/storefront/app.vue b/storefront/app.vue index 1e99eeb8..56dd9aef 100644 --- a/storefront/app.vue +++ b/storefront/app.vue @@ -20,7 +20,7 @@ import {useAppConfig} from "~/composables/config"; import { DEFAULT_LOCALE } from '~/config/constants'; import {useRefresh} from "~/composables/auth"; -import {useLanguages} from "~/composables/languages"; +import {useLanguages, useLocaleRedirect} from "~/composables/languages"; import {useCompanyInfo} from "~/composables/company"; import {useCategories} from "~/composables/categories"; @@ -55,6 +55,7 @@ const cookieLocale = useCookie( const { refresh } = useRefresh(); const { getCategories } = await useCategories(); +const { isSupportedLocale } = useLocaleRedirect(); let refreshInterval: NodeJS.Timeout; @@ -83,20 +84,32 @@ watch(locale, () => { let stopWatcher: VoidFunction = () => {}; +if (!cookieLocale.value) { + cookieLocale.value = DEFAULT_LOCALE; + await router.push({path: switchLocalePath(cookieLocale.value)}); +} + +if (locale.value !== cookieLocale.value) { + if (isSupportedLocale(cookieLocale.value)) { + await router.push({ + path: switchLocalePath(cookieLocale.value), + query: route.query + }); + } else { + cookieLocale.value = DEFAULT_LOCALE + + await router.push({ + path: switchLocalePath(DEFAULT_LOCALE), + query: route.query + }); + } +} + onMounted( async () => { refreshInterval = setInterval(async () => { await refresh(); }, 600000); - if (!cookieLocale.value) { - cookieLocale.value = DEFAULT_LOCALE; - await router.push({path: switchLocalePath(cookieLocale.value)}); - } - - if (locale.value !== cookieLocale.value) { - await router.push({path: switchLocalePath(cookieLocale.value)}); - } - stopWatcher = watch( () => appStore.isOverflowHidden, (hidden) => { diff --git a/storefront/components/base/footer/index.vue b/storefront/components/base/footer/index.vue index 340fbbe6..53c917ea 100644 --- a/storefront/components/base/footer/index.vue +++ b/storefront/components/base/footer/index.vue @@ -30,14 +30,14 @@