'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); }