/** * ========================================================================= * PLATEFORME ECO-PANNEAU.FR - VERSION 1.0.0 * Composant : Modale d'envoi Info riverains (Client B2B) * ========================================================================= */ const { useState } = React; window.pano_ClientNewsletterModal = ({ managingPanneau, onClose, showToast }) => { const { MailIcon, UsersIcon, SendIcon, AlertTriangleIcon, LoaderIcon, CheckCircleIcon } = window.pano_getIcons(); const Modal = window.pano_Modal || (() => null); const Button = window.pano_Button || (() => null); const FormInput = window.pano_FormInput || (() => null); const FormTextarea = window.pano_FormTextarea || (() => null); const [isSending, setIsSending] = useState(false); const [isSent, setIsSent] = useState(false); const [newsletterData, setNewsletterData] = useState({ subject: '', message: '' }); const subscriberCount = managingPanneau?.newsletterSubscribers || 0; const handleSendNewsletter = async (e) => { e.preventDefault(); if (!newsletterData.subject.trim() || !newsletterData.message.trim()) { showToast("Veuillez remplir tous les champs.", "error"); return; } const d = await window.pano_apiFetch('newsletter/send', { body: { panneau_id: managingPanneau.id, subject: newsletterData.subject, message: newsletterData.message }, setLoading: setIsSending, successMessage: "Information envoyée avec succès !" }); if (d) { setIsSent(true); setTimeout(() => { onClose(); }, 3000); } }; return (

Riverains abonnés

Personnes souhaitant être tenues informées de l'avancée de ce chantier.

{subscriberCount}
{isSent ? (

Message envoyé !

Votre actualité a bien été transmise aux {subscriberCount} abonné(s).

) : subscriberCount === 0 ? (

Aucun abonné pour le moment

Les riverains peuvent s'inscrire directement depuis la page publique de votre panneau en scannant le QR Code.

) : (

Rédiger votre message

{FormInput && ( setNewsletterData({...newsletterData, subject: e.target.value})} placeholder="Ex: Fermeture temporaire de la rue..." required disabled={isSending} /> )} {FormTextarea && ( setNewsletterData({...newsletterData, message: e.target.value})} placeholder="Bonjour, nous vous informons que les travaux de terrassement débuteront ce lundi..." rows={6} required disabled={isSending} hint="Un lien de désinscription sera automatiquement ajouté en bas de cet e-mail pour respecter le RGPD." /> )}

Ce message sera envoyé par e-mail à tous les riverains inscrits à ce jour ({subscriberCount} personne{subscriberCount > 1 ? 's' : ''}). Veillez à relire votre message avant envoi.

)}
); }; /* EOF ========== [_react/_clients_modals_newsletter.jsx] */