commit 9e1c7b8f7dfcf7acbf46c42052e6eaeb927c5cec
parent 4246c7d026046524c17de63bc6ac9066413b6ee5
Author: Marc Stibane <marc@taler.net>
Date: Sun, 14 Jun 2026 22:06:35 +0200
Currency info in summary section
Diffstat:
3 files changed, 18 insertions(+), 7 deletions(-)
diff --git a/TalerWallet1/Views/Sheets/Payment/PaymentView.swift b/TalerWallet1/Views/Sheets/Payment/PaymentView.swift
@@ -59,7 +59,7 @@ struct PaymentView: View, Sendable {
if let payResponse = try? await model.preparePayForUri(url.absoluteString) {
txId = payResponse.transactionId
// let raw = payResponse.amountRaw
-// controller.updateAmount(raw, forSaved: url)
+// controller.updateAmount(raw, forSaved: url) // TODO: update scanned URL
}
}
}
@@ -209,7 +209,6 @@ struct PaySafeArea: View, Sendable {
let symLog: SymLogV?
let stack: CallStack
let terms: MerchantContractTerms
- @Binding var currencyInfo: CurrencyInfo
let amountString: String
let amountA11y: String
@Binding var payNow: Bool
@@ -256,7 +255,6 @@ struct PaySafeArea: View, Sendable {
}
var body: some View {
- let currency = currencyInfo.currency
let timeToPay = timeToPay(terms)
let showTime = timeToPay > 0 && timeToPay < 300
let view = VStack {
@@ -266,9 +264,6 @@ struct PaySafeArea: View, Sendable {
} else {
let _ = symLog?.log("\(timeToPay) not shown")
}
- Text("Payment is made in \(currency)")
- .talerFont(.callout)
- .padding(.top, 4)
Button("Pay \(amountString) now") { payNow = true }
.accessibilityLabel(Text("Pay \(amountA11y) now", comment: "a11y"))
.buttonStyle(TalerButtonStyle(type: .prominent))
diff --git a/TalerWallet1/Views/Transactions/ThreeAmountsSection.swift b/TalerWallet1/Views/Transactions/ThreeAmountsSection.swift
@@ -113,11 +113,13 @@ struct ThreeAmountsSection: View {
let summary: String?
let products: [Product]?
+ @EnvironmentObject private var controller: Controller
@Environment(\.colorScheme) private var colorScheme
@Environment(\.colorSchemeContrast) private var colorSchemeContrast
@AppStorage("minimalistic") var minimalistic: Bool = false
@State private var productImages: [ProductImage] = []
+ @State private var currencyInfo: CurrencyInfo = CurrencyInfo.zero(UNKNOWN)
@MainActor
private func viewDidLoad() async {
@@ -131,6 +133,9 @@ struct ThreeAmountsSection: View {
}
}
productImages = temp
+ if let scope {
+ currencyInfo = controller.info(for: scope) ?? CurrencyInfo.zero(UNKNOWN)
+ }
}
@ViewBuilder
@@ -159,6 +164,7 @@ struct ThreeAmountsSection: View {
}
var body: some View {
+ let currency = currencyInfo.currency
let labelColor = WalletColors().labelColor
let foreColor = pending ? WalletColors().pendingColor(incoming)
: WalletColors().transactionColor(incoming)
@@ -172,6 +178,12 @@ struct ThreeAmountsSection: View {
.padding(.bottom)
}
}
+
+ Text(pending ? "Payment will be made in \(currency)"
+ : "Payment was made in \(currency)")
+ .talerFont(.callout)
+ .padding(.top, 4)
+
AmountRowV(stack: stack.push(),
title: minimalistic ? topAbbrev : topTitle,
amount: topAmount,
@@ -231,6 +243,11 @@ struct ThreeAmountsSection: View {
}
}
.task { await viewDidLoad() }
+ .onChange(of: scope) { newVal in
+ if let newVal {
+ currencyInfo = controller.info(for: newVal) ?? CurrencyInfo.zero(UNKNOWN)
+ }
+ }
}
}
// MARK: -
diff --git a/TalerWallet1/Views/Transactions/TransactionSummaryList.swift b/TalerWallet1/Views/Transactions/TransactionSummaryList.swift
@@ -285,7 +285,6 @@ struct TransactionSummaryList: View {
PaySafeArea(symLog: symLog,
stack: stack.push(),
terms: terms,
- currencyInfo: $currencyInfo,
amountString: formatted.0,
amountA11y: formatted.1,
payNow: $payNow)