From 5d5a583af04321ef9cda68704b27364f7dccc1aa Mon Sep 17 00:00:00 2001 From: Mika Kuns Date: Mon, 13 Apr 2026 15:11:34 +0200 Subject: [PATCH] fix(ui): context menu operates on right-clicked item and gates new-task on list selection - Add PointerPressed handlers on list/task item templates that set SelectedList/SelectedTask on right-click before the ContextFlyout opens - Add CanAddTask guard and NotifyCanExecuteChangedFor on CurrentListId so Add Task menu item is disabled when no list is selected Co-Authored-By: Claude Sonnet 4.6 --- src/ClaudeDo.Ui/ViewModels/TaskListViewModel.cs | 6 ++++-- src/ClaudeDo.Ui/Views/MainWindow.axaml | 2 +- src/ClaudeDo.Ui/Views/MainWindow.axaml.cs | 10 ++++++++++ src/ClaudeDo.Ui/Views/TaskListView.axaml | 2 +- src/ClaudeDo.Ui/Views/TaskListView.axaml.cs | 10 ++++++++++ 5 files changed, 26 insertions(+), 4 deletions(-) diff --git a/src/ClaudeDo.Ui/ViewModels/TaskListViewModel.cs b/src/ClaudeDo.Ui/ViewModels/TaskListViewModel.cs index 9b89662..822fff0 100644 --- a/src/ClaudeDo.Ui/ViewModels/TaskListViewModel.cs +++ b/src/ClaudeDo.Ui/ViewModels/TaskListViewModel.cs @@ -24,7 +24,7 @@ public partial class TaskListViewModel : ViewModelBase public ObservableCollection Tasks { get; } = new(); [ObservableProperty] private TaskItemViewModel? _selectedTask; - [ObservableProperty] private string? _currentListId; + [ObservableProperty, NotifyCanExecuteChangedFor(nameof(AddTaskCommand))] private string? _currentListId; public event Action? SelectedTaskChanged; @@ -69,7 +69,9 @@ public partial class TaskListViewModel : ViewModelBase } } - [RelayCommand] + private bool CanAddTask() => CurrentListId is not null; + + [RelayCommand(CanExecute = nameof(CanAddTask))] private async Task AddTask() { if (CurrentListId is null) return; diff --git a/src/ClaudeDo.Ui/Views/MainWindow.axaml b/src/ClaudeDo.Ui/Views/MainWindow.axaml index b1723e0..884ee4a 100644 --- a/src/ClaudeDo.Ui/Views/MainWindow.axaml +++ b/src/ClaudeDo.Ui/Views/MainWindow.axaml @@ -31,7 +31,7 @@ Margin="4"> - + - +