From 7a88e8a848f86e367987a5a47defcc93c94e089e Mon Sep 17 00:00:00 2001 From: mika kuns Date: Sat, 30 May 2026 09:39:04 +0200 Subject: [PATCH] fix(ui): apply blue PLANNED badge for finalized planning, drop dead converter statics Bind the planning-parent badge to IsPlanActive/IsPlanFinalized so a finalized plan shows the blue "planned" style instead of staying amber. Remove the unused Instance statics on BoolToItalicConverter and BoolToDraftOpacityConverter (registered via the App.axaml resource dictionary). Co-Authored-By: Claude Opus 4.7 --- src/ClaudeDo.Ui/Converters/BoolToDraftOpacityConverter.cs | 2 -- src/ClaudeDo.Ui/Converters/BoolToItalicConverter.cs | 2 -- src/ClaudeDo.Ui/ViewModels/Islands/TaskRowViewModel.cs | 5 +++++ src/ClaudeDo.Ui/Views/Islands/TaskRowView.axaml | 7 +++++-- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/ClaudeDo.Ui/Converters/BoolToDraftOpacityConverter.cs b/src/ClaudeDo.Ui/Converters/BoolToDraftOpacityConverter.cs index e2d8d04..3c582d7 100644 --- a/src/ClaudeDo.Ui/Converters/BoolToDraftOpacityConverter.cs +++ b/src/ClaudeDo.Ui/Converters/BoolToDraftOpacityConverter.cs @@ -6,8 +6,6 @@ namespace ClaudeDo.Ui.Converters; public sealed class BoolToDraftOpacityConverter : IValueConverter { - public static BoolToDraftOpacityConverter Instance { get; } = new(); - public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture) => value is true ? 0.7 : 1.0; public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) diff --git a/src/ClaudeDo.Ui/Converters/BoolToItalicConverter.cs b/src/ClaudeDo.Ui/Converters/BoolToItalicConverter.cs index 0017101..558c03f 100644 --- a/src/ClaudeDo.Ui/Converters/BoolToItalicConverter.cs +++ b/src/ClaudeDo.Ui/Converters/BoolToItalicConverter.cs @@ -7,8 +7,6 @@ namespace ClaudeDo.Ui.Converters; public sealed class BoolToItalicConverter : IValueConverter { - public static BoolToItalicConverter Instance { get; } = new(); - public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture) => value is true ? FontStyle.Italic : FontStyle.Normal; public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) diff --git a/src/ClaudeDo.Ui/ViewModels/Islands/TaskRowViewModel.cs b/src/ClaudeDo.Ui/ViewModels/Islands/TaskRowViewModel.cs index c4e9bb2..3178035 100644 --- a/src/ClaudeDo.Ui/ViewModels/Islands/TaskRowViewModel.cs +++ b/src/ClaudeDo.Ui/ViewModels/Islands/TaskRowViewModel.cs @@ -56,6 +56,9 @@ public sealed partial class TaskRowViewModel : ViewModelBase _ => null, }; + public bool IsPlanActive => PlanningPhase == PlanningPhase.Active; + public bool IsPlanFinalized => PlanningPhase == PlanningPhase.Finalized; + public bool HasBranch => !string.IsNullOrWhiteSpace(Branch); public bool HasDiff => DiffAdditions > 0 || DiffDeletions > 0; public bool HasSteps => StepsCount > 0; @@ -121,6 +124,8 @@ public sealed partial class TaskRowViewModel : ViewModelBase { OnPropertyChanged(nameof(IsPlanningParent)); OnPropertyChanged(nameof(PlanningBadge)); + OnPropertyChanged(nameof(IsPlanActive)); + OnPropertyChanged(nameof(IsPlanFinalized)); OnPropertyChanged(nameof(CanOpenPlanningSession)); OnPropertyChanged(nameof(CanResumeOrDiscardPlanning)); OnPropertyChanged(nameof(CanQueuePlan)); diff --git a/src/ClaudeDo.Ui/Views/Islands/TaskRowView.axaml b/src/ClaudeDo.Ui/Views/Islands/TaskRowView.axaml index 53a3119..0817b79 100644 --- a/src/ClaudeDo.Ui/Views/Islands/TaskRowView.axaml +++ b/src/ClaudeDo.Ui/Views/Islands/TaskRowView.axaml @@ -113,10 +113,13 @@ - + - +