From bec7e039d7968fea2b289e24c2536b0f50818726 Mon Sep 17 00:00:00 2001 From: Simone Cavalli Date: Sat, 22 Aug 2026 14:54:31 +0200 Subject: [PATCH] fix(portale): la legenda spiega "Cancellata" solo a chi ne ha una MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Due sostituzioni del commit precedente non avevano agganciato — il testo cercato aveva un a capo diverso — e la frase che spiega lo stato non è mai finita nel file. Rifatte con verifica. Nel rimetterla, condizionata: la voce «Cancellata» e la sua riga di spiegazione compaiono solo se quel progetto ha davvero un task cancellato. Nella maggior parte dei casi non ce n'è nessuno, e raccontare a tutti uno stato che non vedranno mai è rumore in un riquadro che serve a togliere dubbi. La condizione guarda i task veri, mai una preferenza: se una cancellata c'è, la legenda la spiega. Co-Authored-By: Claude Opus 5 --- src/components/client/TaskStatusIndicator.tsx | 16 ++++++++++++++-- src/components/client/kanban/PhaseViewToggle.tsx | 3 ++- 2 files changed, 16 insertions(+), 3 deletions(-) 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 (
    - {TASK_STATUSES.map((status) => ( + {statuses.map((status) => (
); } 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 : }