// Rôle : fournit les modales globales liées aux toolboxes et confirmations. import { useEffect, useState } from "react"; import { Icon } from "./Icon.jsx"; import { lockBodyScroll } from "../utils/bodyScrollLock.js"; function useModalScrollLock() { useEffect(() => lockBodyScroll(), []); } export function ConfirmModal({ title, message, confirmLabel = "Confirmer", cancelLabel = "Annuler", danger = false, onClose }) { useModalScrollLock(); return (
onClose(false)} />

{title}

{message}

); } export function NotificationToast({ message, position = "right", onClose }) { return (
{message}
); } export function CreateToolboxModal({ gameId, initialName = "", onClose }) { useModalScrollLock(); const [name, setName] = useState(initialName); return (
onClose("")} />

{gameId ? "Créer et associer une toolbox" : "Nouvelle toolbox"}

{ event.preventDefault(); if (name.trim()) onClose(name.trim()); }}>
); } export function LinkToolboxModal({ toolboxes, selectedId, onClose }) { useModalScrollLock(); const [toolboxId, setToolboxId] = useState(selectedId); return (
onClose(null)} />
{ event.preventDefault(); onClose(toolboxId); }}>
); }