Checkpoint: Modification du comportement par défaut du menu accordéon : seule la section TABLEAU DE BORD est ouverte à l'ouverture, les sections GESTION, CONFIGURATION et ANALYSES sont fermées par défaut. Ajout d'un système de version (MENU_VERSION = 2) pour forcer la réinitialisation du localStorage avec les nouvelles valeurs par défaut.

This commit is contained in:
Manus Sandbox
2025-12-10 04:20:46 -05:00
parent 74d6b58326
commit 8640c17b3b
2 changed files with 284 additions and 13 deletions

View File

@@ -162,20 +162,33 @@ function DashboardLayoutContent({
// État pour gérer les sections ouvertes/fermées (persisté dans localStorage)
const [openSections, setOpenSections] = useState<Record<string, boolean>>(() => {
// Essayer de charger depuis localStorage
const saved = localStorage.getItem('menuSectionsState');
if (saved) {
try {
return JSON.parse(saved);
} catch {
// En cas d'erreur, utiliser les valeurs par défaut
// Version du système de menu (incrémenter pour forcer la réinitialisation)
const MENU_VERSION = 2;
const savedVersion = localStorage.getItem('menuVersion');
// Si la version a changé, ignorer le localStorage existant
if (savedVersion && parseInt(savedVersion) === MENU_VERSION) {
const saved = localStorage.getItem('menuSectionsState');
if (saved) {
try {
return JSON.parse(saved);
} catch {
// En cas d'erreur, utiliser les valeurs par défaut
}
}
}
// Valeurs par défaut : toutes les sections ouvertes
// Valeurs par défaut : seule la section TABLEAU DE BORD est ouverte
const initial: Record<string, boolean> = {};
menuSections.forEach(section => {
initial[section.title] = true;
// Ouvrir uniquement "Tableau de bord", fermer les autres
initial[section.title] = section.title === "Tableau de bord";
});
// Sauvegarder la version et l'état initial
localStorage.setItem('menuVersion', MENU_VERSION.toString());
localStorage.setItem('menuSectionsState', JSON.stringify(initial));
return initial;
});
@@ -277,7 +290,7 @@ function DashboardLayoutContent({
<SidebarContent className="gap-0">
{menuSections.map((section, sectionIndex) => {
const isOpen = openSections[section.title] ?? true;
const isOpen = openSections[section.title] ?? false;
return (
<div key={section.title}>
{sectionIndex > 0 && (