fix: send headers to error rewrites
This commit is contained in:
@@ -1,11 +1,5 @@
|
||||
import { getIntl } from "@/i18n"
|
||||
import NotFound from "@/components/Current/NotFound"
|
||||
|
||||
export default async function NotFound() {
|
||||
const { formatMessage } = await getIntl()
|
||||
return (
|
||||
<main>
|
||||
<h1>{formatMessage({ id: "Not found" })}</h1>
|
||||
<p>{formatMessage({ id: "Could not find requested resource" })}</p>
|
||||
</main>
|
||||
)
|
||||
export default function NotFoundPage() {
|
||||
return <NotFound />
|
||||
}
|
||||
|
||||
@@ -1,18 +1,21 @@
|
||||
import { NextMiddleware, NextResponse } from "next/server"
|
||||
|
||||
import { Lang } from "./constants/languages"
|
||||
import * as authRequired from "./middlewares/authRequired"
|
||||
import * as bookingFlow from "./middlewares/bookingFlow"
|
||||
import * as cmsContent from "./middlewares/cmsContent"
|
||||
import * as currentWebLogin from "./middlewares/currentWebLogin"
|
||||
import * as currentWebLoginEmail from "./middlewares/currentWebLoginEmail"
|
||||
import * as currentWebLogout from "./middlewares/currentWebLogout"
|
||||
import * as handleAuth from "./middlewares/handleAuth"
|
||||
import * as myPages from "./middlewares/myPages"
|
||||
import * as webView from "./middlewares/webView"
|
||||
import { findLang } from "./utils/languages"
|
||||
import { Lang } from "@/constants/languages"
|
||||
|
||||
import * as authRequired from "@/middlewares/authRequired"
|
||||
import * as bookingFlow from "@/middlewares/bookingFlow"
|
||||
import * as cmsContent from "@/middlewares/cmsContent"
|
||||
import * as currentWebLogin from "@/middlewares/currentWebLogin"
|
||||
import * as currentWebLoginEmail from "@/middlewares/currentWebLoginEmail"
|
||||
import * as currentWebLogout from "@/middlewares/currentWebLogout"
|
||||
import * as handleAuth from "@/middlewares/handleAuth"
|
||||
import * as myPages from "@/middlewares/myPages"
|
||||
import { getDefaultRequestHeaders } from "@/middlewares/utils"
|
||||
import * as webView from "@/middlewares/webView"
|
||||
import { findLang } from "@/utils/languages"
|
||||
|
||||
export const middleware: NextMiddleware = async (request, event) => {
|
||||
const headers = getDefaultRequestHeaders(request)
|
||||
const lang = findLang(request.nextUrl.pathname)
|
||||
if (!lang) {
|
||||
// Lang is required for all our middleware.
|
||||
@@ -21,9 +24,13 @@ export const middleware: NextMiddleware = async (request, event) => {
|
||||
// which we do not want. We can move to that once all Current stuff is gone.
|
||||
|
||||
// Default to English if no lang is found.
|
||||
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",
|
||||
}
|
||||
@@ -64,6 +71,9 @@ export const middleware: NextMiddleware = async (request, event) => {
|
||||
return NextResponse.rewrite(
|
||||
new URL(`/${lang}/middleware-error/${e.status}`, request.nextUrl),
|
||||
{
|
||||
request: {
|
||||
headers,
|
||||
},
|
||||
status: e.status,
|
||||
statusText: e.statusText,
|
||||
}
|
||||
@@ -75,6 +85,9 @@ export const middleware: NextMiddleware = async (request, event) => {
|
||||
return NextResponse.rewrite(
|
||||
new URL(`/${lang}/middleware-error/500`, request.nextUrl),
|
||||
{
|
||||
request: {
|
||||
headers,
|
||||
},
|
||||
status: 500,
|
||||
statusText: "Internal Server Error",
|
||||
}
|
||||
@@ -82,7 +95,11 @@ export const middleware: NextMiddleware = async (request, event) => {
|
||||
}
|
||||
|
||||
// Follow through with normal App router rules.
|
||||
return NextResponse.next()
|
||||
return NextResponse.next({
|
||||
request: {
|
||||
headers,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
// See "Matching Paths" below to learn more
|
||||
|
||||
@@ -38,7 +38,12 @@ export const middleware: NextMiddleware = async (request) => {
|
||||
if (isCurrent) {
|
||||
searchParams.set("uri", pathNameWithoutLang.replace("/preview", ""))
|
||||
return NextResponse.rewrite(
|
||||
new URL(`/${lang}/preview-current?${searchParams.toString()}`, nextUrl)
|
||||
new URL(`/${lang}/preview-current?${searchParams.toString()}`, nextUrl),
|
||||
{
|
||||
request: {
|
||||
headers,
|
||||
},
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -55,6 +55,9 @@ export const middleware: NextMiddleware = async (request) => {
|
||||
headers: {
|
||||
"Set-Cookie": `webviewToken=0; Max-Age=0; Secure; HttpOnly; Path=/; SameSite=Strict;`,
|
||||
},
|
||||
request: {
|
||||
headers,
|
||||
},
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
@@ -23,17 +23,7 @@ export const { createCallerFactory, mergeRouters, router } = t
|
||||
export const publicProcedure = t.procedure
|
||||
export const contentstackBaseProcedure = t.procedure.use(async function (opts) {
|
||||
if (!opts.ctx.lang) {
|
||||
const input = await opts.getRawInput()
|
||||
|
||||
const parsedInput = langInput.safeParse(input)
|
||||
if (!parsedInput.success) {
|
||||
throw badRequestError("Missing Lang in tRPC context")
|
||||
}
|
||||
return opts.next({
|
||||
ctx: {
|
||||
lang: parsedInput.data.lang,
|
||||
},
|
||||
})
|
||||
throw badRequestError("Missing Lang in tRPC context")
|
||||
}
|
||||
|
||||
return opts.next({
|
||||
|
||||
Reference in New Issue
Block a user