@prismicio/next
Version:
Helpers to integrate Prismic into Next.js apps
40 lines (39 loc) • 1.79 kB
JavaScript
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