From 66907d24c9a505e52b0f4ed6d38bdcfbd2cf107c Mon Sep 17 00:00:00 2001 From: Mika Kuns Date: Thu, 25 Jun 2026 13:48:16 +0200 Subject: [PATCH] fix(settings): persist Online Inbox tab on settings save --- .../Settings/OnlineInboxSettingsViewModel.cs | 16 ++++++++++------ .../ViewModels/Modals/SettingsModalViewModel.cs | 1 + 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/ClaudeDo.Ui/ViewModels/Modals/Settings/OnlineInboxSettingsViewModel.cs b/src/ClaudeDo.Ui/ViewModels/Modals/Settings/OnlineInboxSettingsViewModel.cs index abb2e97..2036f5d 100644 --- a/src/ClaudeDo.Ui/ViewModels/Modals/Settings/OnlineInboxSettingsViewModel.cs +++ b/src/ClaudeDo.Ui/ViewModels/Modals/Settings/OnlineInboxSettingsViewModel.cs @@ -52,8 +52,9 @@ public sealed partial class OnlineInboxSettingsViewModel : ViewModelBase finally { IsBusy = false; } } - [RelayCommand] - private async Task Save() + // Persists the Online Inbox config. Exceptions propagate so callers (the modal's Apply) + // can surface and halt; the per-tab Save button wraps this and shows its own message. + public async Task SaveAsync() { IsBusy = true; StatusMessage = ""; @@ -69,13 +70,16 @@ public sealed partial class OnlineInboxSettingsViewModel : ViewModelBase RedirectUri)); StatusMessage = Loc.T("vm.onlineInbox.saved"); } - catch (Exception ex) - { - StatusMessage = Loc.T("vm.onlineInbox.saveFailed", ex.Message); - } finally { IsBusy = false; } } + [RelayCommand] + private async Task Save() + { + try { await SaveAsync(); } + catch (Exception ex) { StatusMessage = Loc.T("vm.onlineInbox.saveFailed", ex.Message); } + } + [RelayCommand] private async Task SignIn() { diff --git a/src/ClaudeDo.Ui/ViewModels/Modals/SettingsModalViewModel.cs b/src/ClaudeDo.Ui/ViewModels/Modals/SettingsModalViewModel.cs index c016fbc..b0cf601 100644 --- a/src/ClaudeDo.Ui/ViewModels/Modals/SettingsModalViewModel.cs +++ b/src/ClaudeDo.Ui/ViewModels/Modals/SettingsModalViewModel.cs @@ -100,6 +100,7 @@ public sealed partial class SettingsModalViewModel : ViewModelBase Prime.DailyPrepMaxTasks); await _worker.UpdateAppSettingsAsync(dto); await Prime.SaveAsync(); + await OnlineInbox.SaveAsync(); CloseAction?.Invoke(); } catch (Exception ex) { StatusMessage = Loc.T("vm.settingsModal.saveFailed", ex.Message); }