diff --git a/damus/Features/Wallet/Models/WalletModel.swift b/damus/Features/Wallet/Models/WalletModel.swift index 23f72ea4..4111705e 100644 --- a/damus/Features/Wallet/Models/WalletModel.swift +++ b/damus/Features/Wallet/Models/WalletModel.swift @@ -87,6 +87,10 @@ class WalletModel: ObservableObject { notify(.attached_wallet(nwc)) self.connect_state = .existing(nwc) self.previous_state = .existing(nwc) + // Reset cached wallet information so the view does not show stale + // data from a previously connected wallet while fresh data is loading. + self.balance = nil + self.transactions = nil } /// Handles an NWC response event and updates the model. diff --git a/damus/Features/Wallet/Views/WalletView.swift b/damus/Features/Wallet/Views/WalletView.swift index ae052567..e154d0c0 100644 --- a/damus/Features/Wallet/Views/WalletView.swift +++ b/damus/Features/Wallet/Views/WalletView.swift @@ -106,6 +106,11 @@ struct WalletView: View { .task { await self.refreshWalletInformation() } + .onReceive(handle_notify(.attached_wallet)) { _ in + Task { + await self.refreshWalletInformation() + } + } .refreshable { await self.refreshWalletInformation() }