UNPKG

@prismicio/next

Version:

Helpers to integrate Prismic into Next.js apps

40 lines (39 loc) 1.79 kB
require("../_virtual/_rolldown/runtime.cjs"); const require_SliceSimulatorWrapper = require("../SliceSimulatorWrapper.cjs"); let react = require("react"); let react_jsx_runtime = require("react/jsx-runtime"); let _prismicio_simulator_kit = require("@prismicio/simulator/kit"); //#region src/pages/SliceSimulator.tsx const simulatorManager = new _prismicio_simulator_kit.SimulatorManager(); /** * Simulate slices in isolation. The slice simulator enables live slice development in Slice Machine * and live previews in the Page Builder. */ const SliceSimulator = ({ background, zIndex, className, sliceZone: SliceZoneComp }) => { const [slices, setSlices] = (0, react.useState)(() => (0, _prismicio_simulator_kit.getDefaultSlices)()); const [message, setMessage] = (0, react.useState)(() => (0, _prismicio_simulator_kit.getDefaultMessage)()); (0, react.useEffect)(() => { simulatorManager.state.on(_prismicio_simulator_kit.StateEventType.Slices, (_slices) => { setSlices(_slices); }, "simulator-slices"); simulatorManager.state.on(_prismicio_simulator_kit.StateEventType.Message, (_message) => { setMessage(_message); }, "simulator-message"); simulatorManager.init(); return () => { simulatorManager.state.off(_prismicio_simulator_kit.StateEventType.Slices, "simulator-slices"); simulatorManager.state.off(_prismicio_simulator_kit.StateEventType.Message, "simulator-message"); }; }, []); return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_SliceSimulatorWrapper.SliceSimulatorWrapper, { message, hasSlices: slices.length > 0, background, zIndex, className, children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SliceZoneComp, { slices }) }); }; //#endregion exports.SliceSimulator = SliceSimulator; //# sourceMappingURL=SliceSimulator.cjs.map