// Rôle : monte les vrais overlays et textes éditoriaux sous StrictMode pour tester leur cycle de vie. import { createElement, StrictMode } from "react"; import { createRoot } from "react-dom/client"; import { flushSync } from "react-dom"; import { ConfirmModal, CreateToolboxModal, NotificationToast } from "../../website/src/components/ToolboxModals.jsx"; import { RichText } from "../../website/src/components/RichText.jsx"; export function mountShellProbe(element) { const root = createRoot(element); const closed = []; const onClose = (value) => closed.push(value); function render({ confirm = false, create = false, toast = null, text = "" } = {}) { flushSync(() => root.render(createElement(StrictMode, null, confirm && createElement(ConfirmModal, { key: "confirm", title: "Confirmation test", message: "Continuer ?", onClose }), create && createElement(CreateToolboxModal, { key: "create", onClose }), toast && createElement(NotificationToast, { key: "toast", ...toast, onClose }), createElement("div", { id: "editorial-text", key: "text" }, createElement(RichText, { text })) ))); } return { render, closed, unmount: () => root.unmount() }; }