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 <noreply@anthropic.com>
This commit is contained in:
@@ -6,8 +6,6 @@ namespace ClaudeDo.Ui.Converters;
|
|||||||
|
|
||||||
public sealed class BoolToDraftOpacityConverter : IValueConverter
|
public sealed class BoolToDraftOpacityConverter : IValueConverter
|
||||||
{
|
{
|
||||||
public static BoolToDraftOpacityConverter Instance { get; } = new();
|
|
||||||
|
|
||||||
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
|
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
|
||||||
=> value is true ? 0.7 : 1.0;
|
=> value is true ? 0.7 : 1.0;
|
||||||
public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
|
public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
|
||||||
|
|||||||
@@ -7,8 +7,6 @@ namespace ClaudeDo.Ui.Converters;
|
|||||||
|
|
||||||
public sealed class BoolToItalicConverter : IValueConverter
|
public sealed class BoolToItalicConverter : IValueConverter
|
||||||
{
|
{
|
||||||
public static BoolToItalicConverter Instance { get; } = new();
|
|
||||||
|
|
||||||
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
|
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
|
||||||
=> value is true ? FontStyle.Italic : FontStyle.Normal;
|
=> value is true ? FontStyle.Italic : FontStyle.Normal;
|
||||||
public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
|
public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
|
||||||
|
|||||||
@@ -56,6 +56,9 @@ public sealed partial class TaskRowViewModel : ViewModelBase
|
|||||||
_ => null,
|
_ => null,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public bool IsPlanActive => PlanningPhase == PlanningPhase.Active;
|
||||||
|
public bool IsPlanFinalized => PlanningPhase == PlanningPhase.Finalized;
|
||||||
|
|
||||||
public bool HasBranch => !string.IsNullOrWhiteSpace(Branch);
|
public bool HasBranch => !string.IsNullOrWhiteSpace(Branch);
|
||||||
public bool HasDiff => DiffAdditions > 0 || DiffDeletions > 0;
|
public bool HasDiff => DiffAdditions > 0 || DiffDeletions > 0;
|
||||||
public bool HasSteps => StepsCount > 0;
|
public bool HasSteps => StepsCount > 0;
|
||||||
@@ -121,6 +124,8 @@ public sealed partial class TaskRowViewModel : ViewModelBase
|
|||||||
{
|
{
|
||||||
OnPropertyChanged(nameof(IsPlanningParent));
|
OnPropertyChanged(nameof(IsPlanningParent));
|
||||||
OnPropertyChanged(nameof(PlanningBadge));
|
OnPropertyChanged(nameof(PlanningBadge));
|
||||||
|
OnPropertyChanged(nameof(IsPlanActive));
|
||||||
|
OnPropertyChanged(nameof(IsPlanFinalized));
|
||||||
OnPropertyChanged(nameof(CanOpenPlanningSession));
|
OnPropertyChanged(nameof(CanOpenPlanningSession));
|
||||||
OnPropertyChanged(nameof(CanResumeOrDiscardPlanning));
|
OnPropertyChanged(nameof(CanResumeOrDiscardPlanning));
|
||||||
OnPropertyChanged(nameof(CanQueuePlan));
|
OnPropertyChanged(nameof(CanQueuePlan));
|
||||||
|
|||||||
@@ -113,10 +113,13 @@
|
|||||||
<Border Classes="badge draft" IsVisible="{Binding IsDraft}">
|
<Border Classes="badge draft" IsVisible="{Binding IsDraft}">
|
||||||
<TextBlock Text="DRAFT"/>
|
<TextBlock Text="DRAFT"/>
|
||||||
</Border>
|
</Border>
|
||||||
<Border Classes="badge planning" IsVisible="{Binding IsPlanned}">
|
<Border Classes="badge planned" IsVisible="{Binding IsPlanned}">
|
||||||
<TextBlock Text="PLANNED"/>
|
<TextBlock Text="PLANNED"/>
|
||||||
</Border>
|
</Border>
|
||||||
<Border Classes="badge planning" IsVisible="{Binding IsPlanningParent}">
|
<Border Classes="badge"
|
||||||
|
Classes.planning="{Binding IsPlanActive}"
|
||||||
|
Classes.planned="{Binding IsPlanFinalized}"
|
||||||
|
IsVisible="{Binding IsPlanningParent}">
|
||||||
<TextBlock Text="{Binding PlanningBadge}"/>
|
<TextBlock Text="{Binding PlanningBadge}"/>
|
||||||
</Border>
|
</Border>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|||||||
Reference in New Issue
Block a user