import React, { useState, useEffect } from 'react'; import { api } from '../stores/api'; import PageHeader from '../components/PageHeader'; const STATUTS = { en_attente: { label: 'En attente', bg: 'bg-yellow-100', text: 'text-yellow-800', emoji: '⏳' }, en_cours: { label: 'En cours', bg: 'bg-blue-100', text: 'text-blue-800', emoji: '🔄' }, complete: { label: 'Complété', bg: 'bg-green-100', text: 'text-green-800', emoji: '✓' }, }; function Badge({ statut }) { const s = STATUTS[statut] || STATUTS.en_attente; return ( {s.emoji} {s.label} ); } export default function Decisions() { const [decisions, setDecisions] = useState([]); const [filtre, setFiltre] = useState('ouvertes'); // ouvertes | toutes const [loading, setLoading] = useState(true); const charger = async () => { setLoading(true); try { let url = '/decisions/'; if (filtre === 'ouvertes') { // Charger en_attente et en_cours const [att, enc] = await Promise.all([ api.get('/decisions/?statut=en_attente'), api.get('/decisions/?statut=en_cours'), ]); setDecisions([...enc, ...att]); } else { const data = await api.get(url); setDecisions(data); } } catch (e) { console.error(e); } setLoading(false); }; useEffect(() => { charger(); }, [filtre]); return (
Chargement...
) : decisions.length === 0 ? (📌
Aucune décision {filtre === 'ouvertes' ? 'ouverte' : ''}
{d.sujet}
{d.description && ({d.description}
)}Proposé par {d.proposeur}{d.secondeur ? `, secondé par ${d.secondeur}` : ''}
)}