refactor(admin): replace static dashboard stats with dynamic widget registry

This commit is contained in:
2026-04-15 20:43:10 -04:00
parent 371a69c499
commit 41edccc1a3
11 changed files with 198 additions and 69 deletions
@@ -0,0 +1,30 @@
'use client';
/**
* Dashboard Client Registry — API générique
*
* Les features s'enregistrent ici via registerClientWidget().
* Ce fichier ne doit jamais importer une feature directement.
* Les features dépendent de ce fichier, pas l'inverse.
*/
const widgets = [];
/**
* Enregistre un composant React pour le tableau de bord.
* Appelé en side effect par chaque feature (ex: auth/dashboard.widget.js).
* @param {string} id - Identifiant unique de la feature (doit correspondre à l'id serveur)
* @param {React.ComponentType} Component - Composant avec props { data, loading }
* @param {number} order - Ordre d'affichage (croissant). Utiliser des intervalles de 10.
*/
export function registerClientWidget(id, Component, order) {
widgets.push({ id, Component, order });
}
/**
* Retourne tous les widgets enregistrés, triés par order croissant.
* @returns {Array<{ id: string, Component: React.ComponentType, order: number }>}
*/
export function getClientWidgets() {
return [...widgets].sort((a, b) => a.order - b.order);
}