Initial commit

This commit is contained in:
Olivier CROGUENNEC
2026-06-13 14:57:15 +02:00
commit 48ed7fe65e
209 changed files with 49979 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
/* ── Helpers partagés Admin ───────────────────────────────────── */
export function fmt(iso) {
if (!iso) return '—';
const utc = iso.includes('T') || iso.endsWith('Z')
? iso
: iso.replace(' ', 'T') + 'Z';
return new Date(utc).toLocaleString('fr-FR', {
day: '2-digit', month: '2-digit', year: 'numeric',
hour: '2-digit', minute: '2-digit',
});
}
export function Badge({ role }) {
const isAdmin = role === 'admin';
return (
<span style={{
display: 'inline-block', padding: '2px 10px', borderRadius: 12,
fontSize: 11, fontWeight: 700, letterSpacing: '.04em',
background: isAdmin ? 'rgba(234,179,8,.15)' : 'rgba(100,116,139,.15)',
color: isAdmin ? '#ca8a04' : '#64748b',
border: `1px solid ${isAdmin ? 'rgba(234,179,8,.35)' : 'rgba(100,116,139,.25)'}`,
}}>
{isAdmin ? 'Admin' : 'Utilisateur'}
</span>
);
}
export function StatusBadge({ status }) {
const ok = status === 'ok';
return (
<span style={{
display: 'inline-block', padding: '2px 10px', borderRadius: 12,
fontSize: 11, fontWeight: 700,
background: ok ? 'rgba(34,197,94,.12)' : 'rgba(239,68,68,.12)',
color: ok ? '#16a34a' : '#dc2626',
border: `1px solid ${ok ? 'rgba(34,197,94,.3)' : 'rgba(239,68,68,.3)'}`,
}}>
{ok ? 'OK' : 'Erreur'}
</span>
);
}