diff --git a/Gem/Scenes/RootScene.swift b/Gem/Scenes/RootScene.swift index 60cfbfbef..b36bbacc0 100644 --- a/Gem/Scenes/RootScene.swift +++ b/Gem/Scenes/RootScene.swift @@ -21,7 +21,6 @@ struct RootScene: View { VStack { if let currentWallet = model.currentWallet { MainTabView(model: .init(wallet: currentWallet)) - .id(currentWallet.walletId) .alertSheet($model.updateVersionAlertMessage) } else { OnboardingScene( diff --git a/Gem/ViewModels/MainTabViewModel.swift b/Gem/ViewModels/MainTabViewModel.swift index adb9de14c..6b21912a8 100644 --- a/Gem/ViewModels/MainTabViewModel.swift +++ b/Gem/ViewModels/MainTabViewModel.swift @@ -10,7 +10,7 @@ import Components @Observable @MainActor final class MainTabViewModel { - let wallet: Wallet + var wallet: Wallet let transactionsQuery: ObservableQuery var transactions: Int { transactionsQuery.value } @@ -23,6 +23,12 @@ final class MainTabViewModel { var walletId: WalletId { wallet.walletId } + func onChangeWallet(_ _: Wallet?, _ newWallet: Wallet?) { + guard let newWallet else { return } + wallet = newWallet + transactionsQuery.request.walletId = newWallet.walletId + } + var isMarketEnabled: Bool { false //TODO: Disabled. Preferences.standard.isDeveloperEnabled && wallet.type == .multicoin } diff --git a/Gem/Views/MainTabView.swift b/Gem/Views/MainTabView.swift index ef489f394..18d4fdbc5 100644 --- a/Gem/Views/MainTabView.swift +++ b/Gem/Views/MainTabView.swift @@ -123,6 +123,7 @@ struct MainTabView: View { } .toast(message: $model.isPresentingToastMessage) .bindQuery(model.transactionsQuery) + .onChange(of: walletService.currentWallet, model.onChangeWallet) } } diff --git a/Packages/Store/Sources/Requests/TransactionsCountRequest.swift b/Packages/Store/Sources/Requests/TransactionsCountRequest.swift index c27829dde..2b528ec5e 100644 --- a/Packages/Store/Sources/Requests/TransactionsCountRequest.swift +++ b/Packages/Store/Sources/Requests/TransactionsCountRequest.swift @@ -6,7 +6,7 @@ import Primitives public struct TransactionsCountRequest: DatabaseQueryable { - private let walletId: WalletId + public var walletId: WalletId private let state: TransactionState public init(