@prismicio/next
Version:
Helpers to integrate Prismic into Next.js apps
32 lines (29 loc) • 860 B
text/typescript
/**
* Ends a Prismic preview session within a Next.js app. This function should be
* used in a Router Handler.
*
* @example
*
* ```typescript
* // src/app/api/exit-preview/route.js
*
* import { exitPreview } from "@prismicio/next";
*
* export async function GET() {
* return await exitPreview();
* }
* ```
*/
export async function exitPreview(): Promise<Response> {
// Need this to avoid the following Next.js build-time error:
// You're importing a component that needs next/headers. That only works
// in a Server Component which is not supported in the pages/ directory.
const { draftMode } = await import("next/headers");
(await draftMode()).disable();
// `Cache-Control` header is used to prevent CDN-level caching.
return new Response(JSON.stringify({ success: true }), {
headers: {
"Cache-Control": "no-store",
},
});
}