// ECO-PANNEAU.FR - __react/socle/_socle_modals_preview.jsx const { useState, useEffect } = React; // 1. - Modale de prévisualisation (Mobile et A1) window.pano_PreviewModal = ({ panneau, interactions = [], onClose, showToast, refreshData, isAdmin = false, onValidate, onContactClient, onSuspend, onDelete, onReactivate }) => { const [previewMode, setPreviewMode] = useState('mobile'); const [showAdminMenu, setShowAdminMenu] = useState(false); const { XIcon, CheckCircleIcon, MessageSquareIcon, PowerIcon, Trash2Icon } = window.pano_getIcons(); const { Button, ModalOverlay } = window.pano_getComponents(); const needsValidation = panneau.status === 'Attente validation' || (!panneau.admin_seen && panneau.status === 'Actif'); const handleClose = (e) => { if (e) { e.preventDefault(); e.stopPropagation(); } if (onClose) onClose(); }; const modalContent = (
e.stopPropagation()} >
setPreviewMode('mobile')} className={`px-4 py-2 sm:py-2.5 rounded-xl text-xs sm:text-sm font-bold transition-all duration-200 cursor-pointer ${previewMode === 'mobile' ? 'bg-white text-slate-900 shadow-sm' : 'text-slate-400 hover:text-white hover:bg-white/10'}`} > Mode Smartphone
setPreviewMode('a1')} className={`px-4 py-2 sm:py-2.5 rounded-xl text-xs sm:text-sm font-bold transition-all duration-200 cursor-pointer ${previewMode === 'a1' ? 'bg-white text-slate-900 shadow-sm' : 'text-slate-400 hover:text-white hover:bg-white/10'}`} > Panneau physique (A1)
{previewMode === 'mobile' ? (
e.stopPropagation()} onClick={e => e.stopPropagation()} >
{ e.stopPropagation(); if (isAdmin) setShowAdminMenu(true); }} >
{isAdmin && (
Admin
)}
{showAdminMenu && (
{ e.stopPropagation(); setShowAdminMenu(false); }}>
e.stopPropagation()}>
Actions modérateur
{needsValidation && ( )} {(panneau.status === 'Actif' || panneau.status === 'Attente validation') && ( )} {panneau.status === 'Suspendu' && ( )}
)} {window.pano_RiverainView ? (
) : (
Le module d'aperçu n'a pas pu être chargé.
)}
) : (
e.stopPropagation()} onClick={e => e.stopPropagation()} > {window.pano_PrintA1View ? ( ) : (
Le module de rendu A1 n'a pas pu être chargé.
)}
)}
); return window.ReactDOM ? window.ReactDOM.createPortal(modalContent, document.body) : modalContent; }; /* EOF ========== [__react/socle/_socle_modals_preview.jsx] */