taler-ios

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

commit 58a4e7cec6f2ef23bf97d7ee228702fb7ff0e6f0
parent 1a93064a810860b031ba015d0748a48b0c06383e
Author: Marc Stibane <marc@taler.net>
Date:   Sun, 27 Sep 2026 18:58:45 +0200

error handling

Diffstat:
MTalerCommon/HelperViews/TimeView.swift | 8++++++--
MTalerWallet1/Views/HelperViews/LoadingView.swift | 17+++++++++--------
MTalerWallet1/Views/Main/MainView.swift | 2+-
3 files changed, 16 insertions(+), 11 deletions(-)

diff --git a/TalerCommon/HelperViews/TimeView.swift b/TalerCommon/HelperViews/TimeView.swift @@ -25,10 +25,14 @@ struct TimeView: View { if remaining <= 0 { if isFinished != nil { DispatchQueue.main.async { - isFinished = true + withAnimation { + isFinished = true + } // print("❗️❗️❗️ retrying…") DispatchQueue.main.asyncAfter(deadline: .now() + 1.2) { - isFinished = nil + withAnimation { + isFinished = nil + } // print("❗️❗️❗️ waiting for response…") } } diff --git a/TalerWallet1/Views/HelperViews/LoadingView.swift b/TalerWallet1/Views/HelperViews/LoadingView.swift @@ -27,7 +27,7 @@ struct StalledView: View { } } } - .buttonStyle(TalerButtonStyle(type: .prominent, disabled: disabled)) + .buttonStyle(TalerButtonStyle(type: .bordered, disabled: disabled)) .padding(.horizontal) } @@ -60,24 +60,23 @@ struct StalledView: View { CopyButton(jsonString, title: "Copy Details") .padding(.vertical) } - Spacer() if let lastPhase = controller.lastProgressPhase { if lastPhase.phase == .stalled { if let lastError, let delay = lastError.nextRetryDelay { - if isFinished == false { + ZStack { TimeView("Next retry in:", seconds: Int(delay.toSeconds()), isFinished: $isFinished) .talerFont(.title3) .padding(.vertical) - } else if isFinished == true { + .opacity(isFinished == false ? 1 : 0) Text("Retrying…") .talerFont(.title3) - } else { + .opacity(isFinished == true ? 1 : 0) Text("Waiting for response…") .talerFont(.title3) + .opacity(isFinished == nil ? 1 : 0) } + retryButton(disabled: isFinished ?? false) } - // Spacer() - retryButton(disabled: isFinished ?? false) } } } @@ -85,7 +84,9 @@ struct StalledView: View { .onChange(of: controller.errorConnection) { isError in if isError { // print("❗️❗️❗️ error arrived, idle waiting starts") - isFinished = false + withAnimation { + isFinished = false + } controller.errorConnection = false } } diff --git a/TalerWallet1/Views/Main/MainView.swift b/TalerWallet1/Views/Main/MainView.swift @@ -273,7 +273,7 @@ struct MainView: View { } mainGroup .environmentObject(tabBarModel) -// .animation(.default, value: model.error2 == nil) + .animation(.default, value: model.error2 == nil) #if TALER_NIGHTLY .sheet(item: unlocked($sheetType, locked), onDismiss: sheetDismissed) { sheet in