From d3b349cc31b066b870293542022c6ee54e2fff74 Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 21 Feb 2026 19:02:44 +0100 Subject: [PATCH] feat(grid): make gamme filters dynamic based on available data and support Aucune state --- src/features/grid/components/gamme-select.tsx | 17 ++++---- .../grid/components/grid-filter-bar.tsx | 41 +++++++++++++++---- src/types/grid.ts | 4 +- 3 files changed, 44 insertions(+), 18 deletions(-) diff --git a/src/features/grid/components/gamme-select.tsx b/src/features/grid/components/gamme-select.tsx index dd98f29..6d77503 100644 --- a/src/features/grid/components/gamme-select.tsx +++ b/src/features/grid/components/gamme-select.tsx @@ -5,32 +5,35 @@ import { cn } from "@/lib/utils"; interface GammeSelectProps { value: GammeCode | null; - isDraft: boolean; + isDraft?: boolean; onChange: (gamme: GammeCode) => void; } -const GAMME_STYLES: Record = { +const GAMME_STYLES: Record = { A: "border-[1px] border-emerald-500/30 bg-emerald-500/10 text-emerald-700 dark:border-emerald-500/30 dark:bg-emerald-500/20 dark:text-emerald-400", B: "border-[1px] border-blue-500/30 bg-blue-500/10 text-blue-700 dark:border-blue-500/30 dark:bg-blue-500/20 dark:text-blue-400", C: "border-[1px] border-amber-500/30 bg-amber-500/10 text-amber-700 dark:border-amber-500/30 dark:bg-amber-500/20 dark:text-amber-400", Z: "border-[1px] border-rose-500/30 bg-rose-500/10 text-rose-700 dark:border-rose-500/30 dark:bg-rose-500/20 dark:text-rose-400", + Aucune: "border-[1px] border-slate-500/30 bg-slate-500/10 text-slate-700 dark:border-slate-500/30 dark:bg-slate-500/20 dark:text-slate-400", }; export function GammeSelect({ value, isDraft, onChange }: GammeSelectProps) { + const displayValue = (!value || value.trim() === "") ? "Aucune" : value; + return (