From 69282b73f8e568768d8a8afb971c7bc3de4b3f7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ng=C3=B4=20Qu=E1=BB=91c=20=C4=90=E1=BA=A1t?= Date: Tue, 31 Mar 2026 14:33:26 +0700 Subject: [PATCH] fix: remove redundant async dispatch in RightPanelState, guard switchDatabase result --- TablePro/Core/Database/DatabaseManager.swift | 8 ++++++-- TablePro/Models/UI/RightPanelState.swift | 6 ++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/TablePro/Core/Database/DatabaseManager.swift b/TablePro/Core/Database/DatabaseManager.swift index 693a4a212..f9bb5bdd2 100644 --- a/TablePro/Core/Database/DatabaseManager.swift +++ b/TablePro/Core/Database/DatabaseManager.swift @@ -184,8 +184,12 @@ final class DatabaseManager { if resolvedConnection.database.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty, let adapter = driver as? PluginDriverAdapter, let savedDb = AppSettingsStorage.shared.loadLastDatabase(for: connection.id) { - try? await adapter.switchDatabase(to: savedDb) - activeSessions[connection.id]?.currentDatabase = savedDb + do { + try await adapter.switchDatabase(to: savedDb) + activeSessions[connection.id]?.currentDatabase = savedDb + } catch { + Self.logger.warning("Failed to restore saved database '\(savedDb, privacy: .public)' for \(connection.id): \(error.localizedDescription, privacy: .public)") + } } case .selectDatabaseFromConnectionField(let fieldId): // Select database from a connection field (e.g. Redis database index). diff --git a/TablePro/Models/UI/RightPanelState.swift b/TablePro/Models/UI/RightPanelState.swift index 4c0888168..ba4616988 100644 --- a/TablePro/Models/UI/RightPanelState.swift +++ b/TablePro/Models/UI/RightPanelState.swift @@ -24,10 +24,8 @@ import os var isPresented: Bool { didSet { guard !isSyncing else { return } - DispatchQueue.main.async { [self] in - UserDefaults.standard.set(self.isPresented, forKey: Self.isPresentedKey) - NotificationCenter.default.post(name: Self.isPresentedChangedNotification, object: self) - } + UserDefaults.standard.set(isPresented, forKey: Self.isPresentedKey) + NotificationCenter.default.post(name: Self.isPresentedChangedNotification, object: self) } }