From 09e8b1f10b716ff453c8020a1652a4cdfde6ff0e Mon Sep 17 00:00:00 2001 From: mika kuns Date: Fri, 17 Apr 2026 14:32:46 +0200 Subject: [PATCH] fix(ui): init editor TCS before dialog can complete Co-Authored-By: Claude Sonnet 4.6 --- src/ClaudeDo.Ui/ViewModels/ListEditorViewModel.cs | 8 +++----- src/ClaudeDo.Ui/ViewModels/TaskEditorViewModel.cs | 9 ++++----- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/ClaudeDo.Ui/ViewModels/ListEditorViewModel.cs b/src/ClaudeDo.Ui/ViewModels/ListEditorViewModel.cs index 2898aad..520f95f 100644 --- a/src/ClaudeDo.Ui/ViewModels/ListEditorViewModel.cs +++ b/src/ClaudeDo.Ui/ViewModels/ListEditorViewModel.cs @@ -54,6 +54,7 @@ public partial class ListEditorViewModel : ViewModelBase public void InitForCreate() { + _tcs = new TaskCompletionSource(); _editId = null; _createdAt = DateTime.UtcNow; WindowTitle = "New List"; @@ -61,6 +62,7 @@ public partial class ListEditorViewModel : ViewModelBase public void InitForEdit(ListEntity entity, ListConfigEntity? config) { + _tcs = new TaskCompletionSource(); _editId = entity.Id; _createdAt = entity.CreatedAt; Name = entity.Name; @@ -119,9 +121,5 @@ public partial class ListEditorViewModel : ViewModelBase _tcs.TrySetResult(null); } - public Task ShowAndWaitAsync() - { - _tcs = new TaskCompletionSource(); - return _tcs.Task; - } + public Task ShowAndWaitAsync() => _tcs.Task; } diff --git a/src/ClaudeDo.Ui/ViewModels/TaskEditorViewModel.cs b/src/ClaudeDo.Ui/ViewModels/TaskEditorViewModel.cs index d5673e0..4e39151 100644 --- a/src/ClaudeDo.Ui/ViewModels/TaskEditorViewModel.cs +++ b/src/ClaudeDo.Ui/ViewModels/TaskEditorViewModel.cs @@ -71,6 +71,7 @@ public partial class TaskEditorViewModel : ViewModelBase public void InitForCreate(string listId, string defaultCommitType = "chore") { + _tcs = new TaskCompletionSource(); _editId = null; _listId = listId; _createdAt = DateTime.UtcNow; @@ -81,6 +82,7 @@ public partial class TaskEditorViewModel : ViewModelBase public async Task InitForEditAsync(TaskEntity entity, IReadOnlyList taskTags, CancellationToken ct = default) { + _tcs = new TaskCompletionSource(); _editId = entity.Id; _listId = entity.ListId; _createdAt = entity.CreatedAt; @@ -128,6 +130,7 @@ public partial class TaskEditorViewModel : ViewModelBase // Keep old sync overload for callers that haven't loaded agents yet public void InitForEdit(TaskEntity entity, IReadOnlyList taskTags) { + _tcs = new TaskCompletionSource(); _editId = entity.Id; _listId = entity.ListId; _createdAt = entity.CreatedAt; @@ -257,9 +260,5 @@ public partial class TaskEditorViewModel : ViewModelBase _tcs.TrySetResult(null); } - public Task ShowAndWaitAsync() - { - _tcs = new TaskCompletionSource(); - return _tcs.Task; - } + public Task ShowAndWaitAsync() => _tcs.Task; }