From 42b208ff285ff496d58fdef51c27ff6d216b1c47 Mon Sep 17 00:00:00 2001 From: mika kuns Date: Thu, 23 Apr 2026 18:58:08 +0200 Subject: [PATCH] feat(ui): TaskRowView hierarchy indentation, chevron, badges, draft italic Co-Authored-By: Claude Sonnet 4.6 --- src/ClaudeDo.App/App.axaml | 4 +- .../Converters/BoolToDraftOpacityConverter.cs | 15 + .../Converters/BoolToItalicConverter.cs | 16 + .../Views/Islands/TaskRowView.axaml | 276 ++++++++++-------- 4 files changed, 193 insertions(+), 118 deletions(-) create mode 100644 src/ClaudeDo.Ui/Converters/BoolToDraftOpacityConverter.cs create mode 100644 src/ClaudeDo.Ui/Converters/BoolToItalicConverter.cs diff --git a/src/ClaudeDo.App/App.axaml b/src/ClaudeDo.App/App.axaml index 0c7445f..e7e3f98 100644 --- a/src/ClaudeDo.App/App.axaml +++ b/src/ClaudeDo.App/App.axaml @@ -17,7 +17,9 @@ - + + + diff --git a/src/ClaudeDo.Ui/Converters/BoolToDraftOpacityConverter.cs b/src/ClaudeDo.Ui/Converters/BoolToDraftOpacityConverter.cs new file mode 100644 index 0000000..e2d8d04 --- /dev/null +++ b/src/ClaudeDo.Ui/Converters/BoolToDraftOpacityConverter.cs @@ -0,0 +1,15 @@ +using System; +using System.Globalization; +using Avalonia.Data.Converters; + +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) + => throw new NotSupportedException(); +} diff --git a/src/ClaudeDo.Ui/Converters/BoolToItalicConverter.cs b/src/ClaudeDo.Ui/Converters/BoolToItalicConverter.cs new file mode 100644 index 0000000..0017101 --- /dev/null +++ b/src/ClaudeDo.Ui/Converters/BoolToItalicConverter.cs @@ -0,0 +1,16 @@ +using System; +using System.Globalization; +using Avalonia.Data.Converters; +using Avalonia.Media; + +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) + => throw new NotSupportedException(); +} diff --git a/src/ClaudeDo.Ui/Views/Islands/TaskRowView.axaml b/src/ClaudeDo.Ui/Views/Islands/TaskRowView.axaml index f7a7ed1..c823226 100644 --- a/src/ClaudeDo.Ui/Views/Islands/TaskRowView.axaml +++ b/src/ClaudeDo.Ui/Views/Islands/TaskRowView.axaml @@ -15,134 +15,176 @@ Background="{DynamicResource MossBrush}" CornerRadius="1" IsVisible="{Binding DropHintAbove}"/> - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + - - - + + + + + + + - - + + + + + + + - - - - + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - +