Checkpoint: Ajout de la page Paramètres : seuils de vétusté (PC fixes et portables) et coûts unitaires configurables via sliders + inputs numériques. Recalcul automatique de tous les budgets à l'enregistrement. Persistance dans localStorage. Navigation sidebar Établissements ↔ Paramètres.

This commit is contained in:
Manus
2026-04-02 13:12:54 -04:00
parent c4dce77ecc
commit b651705e98
5 changed files with 592 additions and 9 deletions

View File

@@ -2,6 +2,7 @@
// Design: Corporate Modernism — Sidebar bleu marine + grille de cards + vue liste
import { useState } from 'react';
import { useLocation } from 'wouter';
import {
Building2,
Monitor,
@@ -17,6 +18,7 @@ import {
ChevronDown,
LayoutGrid,
List,
Settings,
} from 'lucide-react';
import { useBudgetData } from '../hooks/useBudgetData';
import { formatEuros, formatNumber } from '../lib/format';
@@ -42,6 +44,7 @@ export default function Home() {
setFilterType,
} = useBudgetData();
const [, navigate] = useLocation();
const [selectedEtab, setSelectedEtab] = useState<Etablissement | null>(null);
const [sidebarOpen, setSidebarOpen] = useState(true);
const [viewMode, setViewMode] = useState<ViewMode>('grid');
@@ -90,6 +93,13 @@ export default function Home() {
<Building2 className="w-4 h-4 flex-shrink-0" />
{sidebarOpen && <span className="text-sm font-medium">Établissements</span>}
</div>
<button
onClick={() => navigate('/parametres')}
className="w-full flex items-center gap-3 px-3 py-2.5 rounded-lg text-white/60 hover:bg-white/10 hover:text-white transition-colors"
>
<Settings className="w-4 h-4 flex-shrink-0" />
{sidebarOpen && <span className="text-sm font-medium">Paramètres</span>}
</button>
</nav>
{/* Infos calcul */}