taler-ios

iOS apps for GNU Taler (wallet)
Log | Files | Refs | README | LICENSE

commit 94c4ae0e8f81a46fc1d63193a28447e9a35a5918
parent 6ecc15160d54b16aac83c798fe7b7044eef170da
Author: Marc Stibane <marc@taler.net>
Date:   Sat,  6 Sep 2025 07:21:24 +0200

keep balance if it's the only one

Diffstat:
MTalerWallet1/Views/Balances/BalancesListView.swift | 8++++++--
MTalerWallet1/Views/OIM/OIMbalances.swift | 18++++++++++++++++--
2 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/TalerWallet1/Views/Balances/BalancesListView.swift b/TalerWallet1/Views/Balances/BalancesListView.swift @@ -68,7 +68,9 @@ struct BalancesListView: View { DebugViewC.shared.setViewID(VIEW_BALANCES, stack: stack.push("onAppear")) if !controller.oimModeActive { print("🚩BalancesListView.onAppear() reset selectedBalance") - selectedBalance = nil // reset + if controller.balances.count > 1 { + selectedBalance = nil // reset + } } } .listStyle(myListStyle.style).anyView @@ -78,7 +80,9 @@ struct BalancesListView: View { }.onChange(of: controller.oimModeActive) { oimModeActive in if !oimModeActive { print("🚩BalancesListView.onChange(of: oimModeActive) reset selectedBalance") - selectedBalance = nil // reset + if controller.balances.count > 1 { + selectedBalance = nil // reset + } } } #if OIM diff --git a/TalerWallet1/Views/OIM/OIMbalances.swift b/TalerWallet1/Views/OIM/OIMbalances.swift @@ -37,7 +37,7 @@ struct OIMbalances: View { @EnvironmentObject private var controller: Controller @EnvironmentObject private var wrapper: NamespaceWrapper - @StateObject private var cash = OIMcash(OIMeuros) + @StateObject private var cash: OIMcash @State private var availableVal: UInt64 = 0 @State private var tappedVal: UInt64 = 0 // unused, canEdit == false @State private var available: Amount? = nil @@ -45,6 +45,21 @@ struct OIMbalances: View { @State private var closing = false // debounce tap (on open chest to close it) @State private var balanceIndex: Int? = nil + init(stack: CallStack, + selectedBalance: Binding<Balance?>, + qrButtonTapped: Binding<Bool>, + historyTapped: Binding<Int?> + ) { + self.stack = stack + self._selectedBalance = selectedBalance + self._qrButtonTapped = qrButtonTapped + self._historyTapped = historyTapped + + let oimCurrency = oimCurrency(selectedBalance.wrappedValue) // might be nil ==> OIMeuros + let oimCash = OIMcash(oimCurrency) + self._cash = StateObject(wrappedValue: { oimCash }()) + } + func requestTapped() { } @@ -104,7 +119,6 @@ struct OIMbalances: View { selectedBalance = balance balanceIndex = index viewState = .chestIsOpen -// cash.setIndex(index) cash.setCurrency(oimCurrency) available = balance.available availableVal = balance.available.centValue // TODO: centValue factor