@prismicio/next
Version:
Helpers to integrate Prismic into Next.js apps
39 lines (38 loc) • 1.71 kB
JavaScript
const require_runtime = require("./_virtual/_rolldown/runtime.cjs");
const require_resolveDefaultExport = require("./lib/resolveDefaultExport.cjs");
const require_PrismicPreviewClient = require("./PrismicPreviewClient.cjs");
let _prismicio_client = require("@prismicio/client");
let next_script_js = require("next/script.js");
next_script_js = require_runtime.__toESM(next_script_js);
let react_jsx_runtime = require("react/jsx-runtime");
//#region src/PrismicPreview.tsx
/**
* React component that sets up Prismic Previews using the Prismic Toolbar. When the Prismic Toolbar
* send events to the browser, such as on preview updates and exiting, this component will
* automatically refresh the page with the changes.
*
* This component can be wrapped around your app or added anywhere in your app's tree. It must be
* rendered on every page.
*/
const PrismicPreview = async (props) => {
const { repositoryName, children, ...otherProps } = props;
const { draftMode } = await import("next/headers.js");
const toolbarSrc = (0, _prismicio_client.getToolbarSrc)(repositoryName);
const isDraftMode = (await draftMode()).isEnabled;
const ResolvedScript = require_resolveDefaultExport.resolveDefaultExport(next_script_js.default);
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
children,
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_PrismicPreviewClient.PrismicPreviewClient, {
repositoryName,
isDraftMode,
...otherProps
}),
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(ResolvedScript, {
src: toolbarSrc,
strategy: "lazyOnload"
})
] });
};
//#endregion
exports.PrismicPreview = PrismicPreview;
//# sourceMappingURL=PrismicPreview.cjs.map