Files
web/apps/scandic-web/middlewares/languageRedirect.ts
Linus Flood 02f4721595 Merged in fix/preferred-lang-redirect (pull request #2928)
feat(lang-redirect): redirect to correct url, not netlify internal url

* feat(lang-redirect): redirect to correct url, not netlify internal url


Approved-by: Joakim Jäderberg
2025-10-08 12:06:10 +00:00

29 lines
851 B
TypeScript

import { type NextMiddleware, NextResponse } from "next/server"
import { Lang } from "@scandic-hotels/common/constants/language"
import { getPublicNextURL } from "@/server/utils"
import { getDefaultRequestHeaders } from "./utils"
import type { MiddlewareMatcher } from "@/types/middleware"
export const middleware: NextMiddleware = (request) => {
const headers = getDefaultRequestHeaders(request)
const preferredLang = request.cookies.get("preferredLang")?.value ?? Lang.en
// Set x-lang header
headers.set("x-lang", preferredLang)
// Redirect to new URL if no lang in URL
const newUrl = new URL(`/${preferredLang}`, getPublicNextURL(request))
return NextResponse.redirect(newUrl, {
headers,
})
}
export const matcher: MiddlewareMatcher = (request) => {
// if ULR is empty
return request.nextUrl.pathname.length <= 1
}