Merged in fix/preview-contentstack (pull request #1380)

* fix: preview in contentstack now works again


Approved-by: Joakim Jäderberg
This commit is contained in:
Linus Flood
2025-02-20 08:55:00 +00:00
committed by Joakim Jäderberg
parent e75c714148
commit 21e564934d
5 changed files with 5 additions and 89 deletions

View File

@@ -1,22 +0,0 @@
"use client"
import { env } from "@/env/client"
export default function Error({
error,
}: {
error: Error & { digest?: string }
reset: () => void
}) {
return (
<section>
<pre>Unable to render footer</pre>
{env.NEXT_PUBLIC_NODE_ENV === "development" && (
<div>
<div>{error.message}</div>
<pre>{error.stack}</pre>
</div>
)}
</section>
)
}

View File

@@ -1,16 +0,0 @@
import { env } from "@/env/server"
import CurrentFooter from "@/components/Current/Footer"
import Footer, { preload } from "@/components/Footer"
import type { LangParams, PageArgs } from "@/types/params"
export default function FooterSlot({}: PageArgs<LangParams>) {
if (env.HIDE_FOR_NEXT_RELEASE) {
return <CurrentFooter />
}
preload()
return <Footer />
}

View File

@@ -1,22 +0,0 @@
"use client"
import { env } from "@/env/client"
export default function Error({
error,
}: {
error: Error & { digest?: string }
reset: () => void
}) {
return (
<section>
<pre>Unable to render header</pre>
{env.NEXT_PUBLIC_NODE_ENV === "development" && (
<div>
<div>{error.message}</div>
<pre>{error.stack}</pre>
</div>
)}
</section>
)
}

View File

@@ -1,21 +0,0 @@
import { Suspense } from "react"
import { env } from "@/env/server"
import CurrentHeader from "@/components/Current/Header"
import HeaderFallback from "@/components/Current/Header/HeaderFallback"
import Header from "@/components/Header"
import type { LangParams, PageArgs } from "@/types/params"
export default function HeaderPage({}: PageArgs<LangParams>) {
if (env.HIDE_FOR_NEXT_RELEASE) {
return (
<Suspense fallback={<HeaderFallback />}>
<CurrentHeader />
</Suspense>
)
}
return <Header />
}

View File

@@ -18,17 +18,13 @@ export const middleware: NextMiddleware = async (request) => {
const pathWithoutTrailingSlash = removeTrailingSlash(nextUrl.pathname) const pathWithoutTrailingSlash = removeTrailingSlash(nextUrl.pathname)
const contentTypePathName = pathWithoutTrailingSlash.replace(`/${lang}`, "")
const isPreview = request.nextUrl.pathname.includes("/preview") const isPreview = request.nextUrl.pathname.includes("/preview")
const incomingPathName = isPreview const incomingPathName = isPreview
? contentTypePathName.replace("/preview", "") ? pathWithoutTrailingSlash.replace("/preview", "")
: contentTypePathName : pathWithoutTrailingSlash
let { contentType, uid } = await getUidAndContentTypeByPath( let { contentType, uid } = await getUidAndContentTypeByPath(incomingPathName)
pathWithoutTrailingSlash
)
const searchParams = new URLSearchParams(request.nextUrl.searchParams) const searchParams = new URLSearchParams(request.nextUrl.searchParams)
@@ -62,7 +58,7 @@ export const middleware: NextMiddleware = async (request) => {
if (!contentType || !uid) { if (!contentType || !uid) {
throw notFound( throw notFound(
`Unable to resolve CMS entry for locale "${lang}": ${contentTypePathName}` `Unable to resolve CMS entry for page "${pathWithoutTrailingSlash}"`
) )
} }
const headers = getDefaultRequestHeaders(request) const headers = getDefaultRequestHeaders(request)
@@ -87,6 +83,7 @@ export const middleware: NextMiddleware = async (request) => {
} }
if (isCurrent) { if (isCurrent) {
const contentTypePathName = pathWithoutTrailingSlash.replace(`/${lang}`, "")
searchParams.set("uid", uid) searchParams.set("uid", uid)
searchParams.set("uri", contentTypePathName) searchParams.set("uri", contentTypePathName)
return NextResponse.rewrite( return NextResponse.rewrite(