// Parcours 3 — Admin établissement const AdminShell = ({ active, children }) => { const nav = [ { id: 'dashboard', label: 'Vue d\'ensemble', icon: 'home', route: '#/admin' }, { id: 'campus', label: 'Campus & groupes', icon: 'building', route: '#/admin/campus' }, { id: 'teachers', label: 'Enseignants', icon: 'users', route: '#/admin/teachers' }, { id: 'evals', label: 'Évaluations', icon: 'files', route: '#/admin' }, { id: 'ai', label: 'Crédits IA', icon: 'sparkles', route: '#/admin' }, { id: 'settings', label: 'Paramètres', icon: 'settings', route: '#/admin' }, ]; const D = window.STUDYHUB_DATA; return (
); }; // 3.1 — Dashboard admin multi-campus const AdminDashboard = () => { const D = window.STUDYHUB_DATA; const kpis = [ { label: 'Étudiants inscrits', val: '8 640', delta: '+124 ce mois', color: '#6366F1', icon: 'users' }, { label: 'Enseignants actifs', val: '403', delta: '97% activation', color: '#8B5CF6', icon: 'users' }, { label: 'Évaluations du mois', val: '1 248', delta: '+18% vs N-1', color: '#F59E0B', icon: 'files' }, { label: 'Crédits IA utilisés', val: '72%', delta: '28% restants', color: '#10B981', icon: 'sparkles' }, ]; const barMax = Math.max(...D.campuses.map(c => c.students)); return (| {h} | ))}||||
|---|---|---|---|---|
|
{c.name}
|
{c.students.toLocaleString('fr-FR')} | {c.teachers} | {c.evals} | Actif |
| {h} | ))}||||||
|---|---|---|---|---|---|---|
|
|
{t.email} | {t.campus} | {t.role} | {statusBadge(t.status)} | {t.last} |
{t.status === 'invited' && }
|