import React, { useState, useEffect } from 'react'; import { api } from '../stores/api'; import PageHeader from '../components/PageHeader'; export default function GererMembres() { const [membres, setMembres] = useState([]); const [loading, setLoading] = useState(true); const [detail, setDetail] = useState(null); const [confirmAction, setConfirmAction] = useState(null); const [msg, setMsg] = useState(''); const charger = async () => { setLoading(true); try { const data = await api.get('/membres/'); setMembres(data); } catch {} setLoading(false); }; useEffect(() => { charger(); }, []); const desactiver = async (id) => { try { const res = await api.patch(`/membres/${id}/desactiver`); setMsg(res.message); setConfirmAction(null); setDetail(null); charger(); setTimeout(() => setMsg(''), 3000); } catch (e) { alert(e.message); } }; const droitOubli = async (id) => { try { const res = await api.request('DELETE', `/membres/${id}/oubli`); setMsg(res.message); setConfirmAction(null); setDetail(null); charger(); setTimeout(() => setMsg(''), 3000); } catch (e) { alert(e.message); } }; // Vue détail d'un membre if (detail) { return (
Prénom
{detail.prenom}
Nom
{detail.nom}
Téléphone
{detail.telephone || '—'}
Courriel
{detail.courriel || '—'}
Date d'abstinence
{detail.date_abstinence || '—'}
Statut
{detail.actif ? 'Actif' : 'Inactif'}Désactiver {detail.prenom} ? Le membre ne pourra plus se connecter.
⚠️ Cette action est irréversible. Toutes les données personnelles de {detail.prenom} seront anonymisées.
Chargement...
) : ( membres.map((m) => ( )) )}