import React, { useState } from 'react'; import { Button } from '@mui/material'; import DeleteForeverIcon from '@mui/icons-material/DeleteForever'; import Swal from 'sweetalert2'; import { useNavigate } from 'react-router-dom'; /** * Delete group button with confirmation dialog * Standalone component for group deletion */ function DeleteGroupButton({ token, groupName = 'diese Gruppe' }) { const [deleting, setDeleting] = useState(false); const navigate = useNavigate(); const handleDelete = async () => { const result = await Swal.fire({ title: 'Gruppe komplett löschen?', html: `Achtung: Diese Aktion kann nicht rückgängig gemacht werden!

Alle Bilder und Daten von "${groupName}" werden unwiderruflich gelöscht.`, icon: 'warning', showCancelButton: true, confirmButtonColor: '#d33', cancelButtonColor: '#3085d6', confirmButtonText: 'Ja, alles löschen', cancelButtonText: 'Abbrechen', input: 'checkbox', inputPlaceholder: 'Ich verstehe, dass diese Aktion unwiderruflich ist' }); if (!result.isConfirmed || !result.value) { if (result.isConfirmed && !result.value) { Swal.fire({ icon: 'info', title: 'Bestätigung erforderlich', text: 'Bitte bestätigen Sie das Kontrollkästchen, um fortzufahren.' }); } return; } try { setDeleting(true); const res = await fetch(`/api/manage/${token}`, { method: 'DELETE' }); if (!res.ok) { const body = await res.json().catch(() => ({})); throw new Error(body.error || 'Fehler beim Löschen'); } await Swal.fire({ icon: 'success', title: 'Gruppe gelöscht', text: 'Die Gruppe und alle Bilder wurden erfolgreich gelöscht.', timer: 2000, showConfirmButton: false }); navigate('/'); } catch (error) { console.error('Error deleting group:', error); Swal.fire({ icon: 'error', title: 'Fehler', text: error.message || 'Gruppe konnte nicht gelöscht werden' }); setDeleting(false); } }; return ( ); } export default DeleteGroupButton;