diff --git a/middleware.ts b/middleware.ts index 1507e71..b000a1c 100644 --- a/middleware.ts +++ b/middleware.ts @@ -27,6 +27,8 @@ const getUser = (request: NextRequest, response: NextResponse) => { export async function middleware(request: NextRequest) { const secureHeaders = await createResponseWithSecureHeaders(); const response = NextResponse.next(secureHeaders); + const url = new URL(request.url); + const lang = url.searchParams.get('lang'); // set a unique request ID for each request // this helps us log and trace requests @@ -35,6 +37,10 @@ export async function middleware(request: NextRequest) { // apply CSRF protection for mutating requests const csrfResponse = await withCsrfMiddleware(request, response); + if (lang) { + csrfResponse.cookies.set('lang', lang); + } + // handle patterns for specific routes const handlePattern = matchUrlPattern(request.url); @@ -176,6 +182,14 @@ function getPatterns() { return NextResponse.redirect( new URL(pathsConfig.app.home, req.nextUrl.origin).href, ); + } else if ( + !['test', 'localhost'].some((pathString) => + process.env.NEXT_PUBLIC_SITE_URL?.includes(pathString), + ) + ) { + return NextResponse.redirect( + new URL('https://medreport.ee', req.nextUrl.origin).href, + ); } }, }, diff --git a/packages/ui/src/makerkit/language-selector.tsx b/packages/ui/src/makerkit/language-selector.tsx index f7542f0..6ac5855 100644 --- a/packages/ui/src/makerkit/language-selector.tsx +++ b/packages/ui/src/makerkit/language-selector.tsx @@ -53,6 +53,7 @@ export function LanguageSelector({ } if (!userId) { + localStorage.setItem('lang', locale); return i18n.changeLanguage(locale); }