'use client'; import { useState } from 'react'; import { Button } from '@/components/ui/button'; import { Alert, AlertDescription } from '@/components/ui/alert'; import { AlertTriangle, Trash2 } from 'lucide-react'; import { BaseModal } from './base/BaseModal'; import { ErrorDisplay } from './base/ErrorDisplay'; interface ClearAllPropositionsModalProps { isOpen: boolean; onClose: () => void; onConfirm: () => Promise; campaignTitle?: string; propositionCount: number; } export default function ClearAllPropositionsModal({ isOpen, onClose, onConfirm, campaignTitle, propositionCount }: ClearAllPropositionsModalProps) { const [loading, setLoading] = useState(false); const [error, setError] = useState(''); const handleConfirm = async () => { setLoading(true); setError(''); try { await onConfirm(); onClose(); } catch (error) { console.error('Erreur lors de la suppression des propositions:', error); setError('Erreur lors de la suppression des propositions.'); } finally { setLoading(false); } }; const handleClose = () => { if (!loading) { setError(''); onClose(); } }; const footer = ( <> ); return ( Attention : Cette action est irréversible. {propositionCount > 0 && ( <> {' '}Vous êtes sur le point de supprimer {propositionCount} proposition{propositionCount > 1 ? 's' : ''}. )}

Que sera supprimé :

  • • Toutes les propositions de la campagne
  • • Les titres et descriptions des propositions
  • • Les informations des auteurs (noms, emails)
  • • Toutes les données associées

Ce qui sera conservé :

  • • La campagne elle-même
  • • Les participants
  • • Les votes déjà effectués
  • • Les paramètres de la campagne
); }