Files
web/apps/scandic-web/middlewares/noValidLang.ts
emma.zettervall b72f4c71e3 Merged in feat/book-245-preferred-lang-redirect (pull request #2861)
Feat/book 245 preferred lang redirect

* added cookie to save preferredLang and middleware to route accordingly

* Cleaned up code, added noValidLang.ts middleware

* cleaned a little more

* Added headers in languageRedirect and set language cookie maxAge to 1 year


Approved-by: Linus Flood
2025-09-26 08:00:25 +00:00

30 lines
786 B
TypeScript

import { type NextMiddleware, NextResponse } from "next/server"
import { Lang } from "@scandic-hotels/common/constants/language"
import { findLang } from "@scandic-hotels/common/utils/languages"
import { getDefaultRequestHeaders } from "./utils"
import type { MiddlewareMatcher } from "@/types/middleware"
export const middleware: NextMiddleware = (request) => {
const headers = getDefaultRequestHeaders(request)
headers.set("x-lang", Lang.en)
return NextResponse.rewrite(
new URL(`/${Lang.en}/middleware-error/404`, request.nextUrl),
{
request: {
headers,
},
status: 404,
statusText: "Not found",
}
)
}
export const matcher: MiddlewareMatcher = (request) => {
const lang = findLang(request.nextUrl.pathname)
return !lang
}