UNPKG

next-sanity

Version:
48 lines 1.61 kB
import { SanityClient } from "@sanity/client"; /** * @public */ interface DefineEnableDraftModeOptions { client: SanityClient; /** * Force secure cookies in development mode. * Enable this when using Next.js --experimental-https flag. * This option has no effect in production (cookies are always secure). * @defaultValue false */ secureDevMode?: boolean; } /** * @public */ interface EnableDraftMode { GET: (request: Request) => Promise<Response>; } /** * Sets up an API route for enabling draft mode, can be paired with the `previewUrl.previewMode.enable` in `sanity/presentation`. * Can also be used with `sanity-plugin-iframe-pane`. * * When the preview loads in a cross-site iframe (Presentation Tool), draft-mode * cookies are set with the CHIPS `Partitioned` attribute so Safari 18.4+ stores * them despite third-party cookie blocking. Top-level / same-site requests keep * unpartitioned cookies so `draftMode().disable()` continues to work. * * @see https://github.com/sanity-io/sanity/issues/12806 * * @example * ```ts * // src/app/api/draft-mode/enable/route.ts * * import { defineEnableDraftMode } from "next-sanity/draft-mode"; * import { client } from "@/sanity/lib/client"; * * export const { GET } = defineEnableDraftMode({ * client: client.withConfig({ token: process.env.SANITY_API_READ_TOKEN }), * }); * ``` * * @public */ declare function defineEnableDraftMode(options: DefineEnableDraftModeOptions): EnableDraftMode; export { DefineEnableDraftModeOptions, EnableDraftMode, defineEnableDraftMode }; //# sourceMappingURL=index.d.ts.map