| import { useEffect } from 'react' | |
| import { useRouter } from 'next/router' | |
| import { useLanguages } from '@/languages/components/LanguagesContext' | |
| import Cookies from '@/frame/components/lib/cookies' | |
| import { USER_LANGUAGE_COOKIE_NAME } from '@/frame/lib/constants' | |
| export function ClientSideLanguageRedirect() { | |
| const { locale, asPath, replace } = useRouter() | |
| const { languages } = useLanguages() | |
| const availableLanguageKeys = new Set(Object.keys(languages)) | |
| useEffect(() => { | |
| const cookieValue = Cookies.get(USER_LANGUAGE_COOKIE_NAME) | |
| if (cookieValue && cookieValue !== locale && availableLanguageKeys.has(cookieValue)) { | |
| const newPath = `/${cookieValue}${asPath}` | |
| replace(newPath, undefined, { locale: cookieValue }) | |
| } | |
| }, [locale, availableLanguageKeys, asPath]) | |
| return null | |
| } | |