taler-ios

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

commit 652e4e9ded54e8b0fc997e3c410138f3efb58a0e
parent b9605ff8e811f4df5493f91e4f936301291e5602
Author: Marc Stibane <marc@taler.net>
Date:   Sun,  6 Oct 2024 09:33:27 +0200

fix deleteExchange

Diffstat:
MTalerWallet1/Views/Banking/ExchangeSectionView.swift | 16+++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/TalerWallet1/Views/Banking/ExchangeSectionView.swift b/TalerWallet1/Views/Banking/ExchangeSectionView.swift @@ -31,6 +31,7 @@ struct ExchangeSectionView: View { @State private var currencySymbol: String = UNKNOWN @State private var didDelete: Bool = false @State private var disabled: Bool = false + @State private var showAlert: Bool = false @State private var purge: Bool = false func amountAvailable(_ exchange: Exchange?, currency: String?) -> Amount? { @@ -52,16 +53,17 @@ struct ExchangeSectionView: View { private func deleteExchange() { disabled = true // don't try this more than once - let doPurge = purge Task { // runs on MainActor let baseUrl = exchange.exchangeBaseUrl - if let _ = try? await model.deleteExchange(url: baseUrl, purge: doPurge, viewHandles: !doPurge) { + if let _ = try? await model.deleteExchange(url: baseUrl, purge: purge, viewHandles: !purge) { + purge = false symLog.log("deleted \(baseUrl.trimURL)") didDelete = true // change button text NotificationCenter.default.post(name: .ExchangeDeleted, object: nil, userInfo: nil) NotificationCenter.default.post(name: .BalanceChange, object: nil, userInfo: nil) } else { purge = true + showAlert = true disabled = false } } @@ -114,13 +116,13 @@ struct ExchangeSectionView: View { disabled: $disabled, action: deleteExchange) .padding(.top) - .alert(warningText2, isPresented: $purge, actions: { + .alert(warningText2, isPresented: $showAlert, actions: { Button("Cancel", role: .cancel) { - purge = false + showAlert = false } Button(buttonTitle) { deleteExchange() - purge = false + showAlert = false } }, message: { Text("You will loose all \(currency) of this payment provider") } ) @@ -137,6 +139,10 @@ struct ExchangeSectionView: View { currencyName = currencyInfo.scope.currency currencySymbol = currencyInfo.altUnitSymbol ?? currencyName } + .onDisappear() { + disabled = false + purge = false + } } } // MARK: -