From 2558e02ba3357bc093d576ef6566f8646099e9f2 Mon Sep 17 00:00:00 2001 From: mika kuns Date: Wed, 30 Sep 2026 08:13:26 +0200 Subject: [PATCH] fix(ui): stop row buttons flashing disabled while a row command runs Shared AsyncRelayCommands disabled every row's button during execution. --- .../ViewModels/Islands/TasksIslandViewModel.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ClaudeDo.Ui/ViewModels/Islands/TasksIslandViewModel.cs b/src/ClaudeDo.Ui/ViewModels/Islands/TasksIslandViewModel.cs index c604eed9..bff9fef9 100644 --- a/src/ClaudeDo.Ui/ViewModels/Islands/TasksIslandViewModel.cs +++ b/src/ClaudeDo.Ui/ViewModels/Islands/TasksIslandViewModel.cs @@ -1173,7 +1173,7 @@ public sealed partial class TasksIslandViewModel : ViewModelBase, IDisposable TasksChanged?.Invoke(this, EventArgs.Empty); } - [RelayCommand] + [RelayCommand(AllowConcurrentExecutions = true)] private async Task ToggleDoneAsync(TaskRowViewModel row) { if (_worker is null) return; @@ -1237,7 +1237,7 @@ public sealed partial class TasksIslandViewModel : ViewModelBase, IDisposable TasksChanged?.Invoke(this, EventArgs.Empty); } - [RelayCommand] + [RelayCommand(AllowConcurrentExecutions = true)] private async Task ToggleStarAsync(TaskRowViewModel row) { row.IsStarred = !row.IsStarred; @@ -1403,7 +1403,7 @@ public sealed partial class TasksIslandViewModel : ViewModelBase, IDisposable catch (Exception ex) { ErrorReported?.Invoke(Loc.T("vm.tasksIsland.sendToQueueFailed", ex.Message)); } } - [RelayCommand] + [RelayCommand(AllowConcurrentExecutions = true)] private async Task RemoveFromQueueAsync(TaskRowViewModel? row) { if (row is null || _worker is null) return; @@ -1700,7 +1700,7 @@ public sealed partial class TasksIslandViewModel : ViewModelBase, IDisposable Regroup(); } - [RelayCommand] + [RelayCommand(AllowConcurrentExecutions = true)] private async Task RefineTask(TaskRowViewModel row) { if (row is null || !row.CanRefine) return;