diff --git a/src/components/client/TaskStatusIndicator.tsx b/src/components/client/TaskStatusIndicator.tsx index 0924c92..bdc86f4 100644 --- a/src/components/client/TaskStatusIndicator.tsx +++ b/src/components/client/TaskStatusIndicator.tsx @@ -172,11 +172,16 @@ export function TaskStatusPill({ status }: { status: TaskStatus }) { * disciplina introdotta insieme allo stato "in revisione", dopo che due liste * fisse avevano già fatto sparire task dal portale senza un errore. */ -export function TaskStatusLegend() { +export function TaskStatusLegend({ showCancelled = false }: { showCancelled?: boolean }) { + // "Cancellata" è l'unica voce condizionata: nella maggior parte dei progetti non + // ce n'è nessuna, e spiegare a tutti uno stato che non vedranno mai è rumore. + // La condizione guarda i task veri: se una cancellata c'è, la legenda la spiega. + const statuses = TASK_STATUSES.filter((s) => s !== "cancelled" || showCancelled); + return (
); } diff --git a/src/components/client/kanban/PhaseViewToggle.tsx b/src/components/client/kanban/PhaseViewToggle.tsx index 638e1f2..8452bac 100644 --- a/src/components/client/kanban/PhaseViewToggle.tsx +++ b/src/components/client/kanban/PhaseViewToggle.tsx @@ -15,6 +15,7 @@ export function PhaseViewToggle({ token: string; }) { const [view, setView] = useState<"timeline" | "kanban">("timeline"); + const hasCancelled = phases.some((p) => p.tasks.some((t) => t.status === "cancelled")); return (
@@ -41,7 +42,7 @@ export function PhaseViewToggle({
{/* Fuori dallo switch: gli stati sono gli stessi in entrambe le viste */} - + {view === "timeline" ? timelineView : }