From 869cf72abe2bfd5ad1aa9acecd1116fffaa4c5d3 Mon Sep 17 00:00:00 2001 From: mika kuns Date: Tue, 2 Jun 2026 17:03:04 +0200 Subject: [PATCH] feat(ui): use a 24h TimePicker for prime schedule time entry Replace the free-text time TextBox (which silently reset bad input to 07:00) with Avalonia's TimePicker (24-hour, 5-minute steps), making invalid times impossible. Drops the now-unused TimeSpanToHhmmConverter. Co-Authored-By: Claude Opus 4.7 --- .../Converters/TimeSpanToHhmmConverter.cs | 21 ------------------- .../Views/Modals/SettingsModalView.axaml | 11 ++++------ 2 files changed, 4 insertions(+), 28 deletions(-) delete mode 100644 src/ClaudeDo.Ui/Converters/TimeSpanToHhmmConverter.cs diff --git a/src/ClaudeDo.Ui/Converters/TimeSpanToHhmmConverter.cs b/src/ClaudeDo.Ui/Converters/TimeSpanToHhmmConverter.cs deleted file mode 100644 index d38fa93..0000000 --- a/src/ClaudeDo.Ui/Converters/TimeSpanToHhmmConverter.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.Globalization; -using Avalonia.Data.Converters; - -namespace ClaudeDo.Ui.Converters; - -public sealed class TimeSpanToHhmmConverter : IValueConverter -{ - public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture) => - value is TimeSpan t ? $"{t.Hours:00}:{t.Minutes:00}" : "07:00"; - - public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) - { - if (value is not string s) return new TimeSpan(7, 0, 0); - var parts = s.Split(':'); - if (parts.Length == 2 && - int.TryParse(parts[0], out var h) && h is >= 0 and <= 23 && - int.TryParse(parts[1], out var m) && m is >= 0 and <= 59) - return new TimeSpan(h, m, 0); - return new TimeSpan(7, 0, 0); - } -} diff --git a/src/ClaudeDo.Ui/Views/Modals/SettingsModalView.axaml b/src/ClaudeDo.Ui/Views/Modals/SettingsModalView.axaml index 9887ce3..ed0aa15 100644 --- a/src/ClaudeDo.Ui/Views/Modals/SettingsModalView.axaml +++ b/src/ClaudeDo.Ui/Views/Modals/SettingsModalView.axaml @@ -2,7 +2,6 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:vm="using:ClaudeDo.Ui.ViewModels.Modals" xmlns:settings="using:ClaudeDo.Ui.ViewModels.Modals.Settings" - xmlns:conv="using:ClaudeDo.Ui.Converters" xmlns:ctl="using:ClaudeDo.Ui.Views.Controls" x:Class="ClaudeDo.Ui.Views.Modals.SettingsModalView" x:DataType="vm:SettingsModalViewModel" @@ -19,9 +18,6 @@ - - - @@ -198,9 +194,10 @@ - +