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 (
{/* Filtres */}
{[ { key: 'ouvertes', label: 'Ouvertes' }, { key: 'toutes', label: 'Toutes' }, ].map((f) => ( ))}
{/* Liste */}
{loading ? (

Chargement...

) : decisions.length === 0 ? (

📌

Aucune décision {filtre === 'ouvertes' ? 'ouverte' : ''}

) : ( decisions.map((d) => (

{d.sujet}

{d.description && (

{d.description}

)}
{d.responsable_prenom && ( → {d.responsable_prenom} )} {d.date_decision}
{d.proposeur && (

Proposé par {d.proposeur}{d.secondeur ? `, secondé par ${d.secondeur}` : ''}

)}
)) )}
); }