commit 58a4e7cec6f2ef23bf97d7ee228702fb7ff0e6f0
parent 1a93064a810860b031ba015d0748a48b0c06383e
Author: Marc Stibane <marc@taler.net>
Date: Sun, 27 Sep 2026 18:58:45 +0200
error handling
Diffstat:
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