commit 390e3d070936a629b7dd41c29522b3fc881785cf
parent 8e4acf1cdf0c7cc7ff29b19edc25fbc49f1c2d3d
Author: Marc Stibane <marc@taler.net>
Date: Thu, 20 Aug 2026 15:51:02 +0200
Copy payto
Diffstat:
3 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/TalerWallet1/Views/Transactions/KYCauth.swift b/TalerWallet1/Views/Transactions/KYCauth.swift
@@ -12,6 +12,7 @@ import taler_swift
struct KycData {
let debitIBAN: String
let depositStr: (String, String)
+ let debitPayto: String
}
// pretty much the same as ManualDetailsV
struct KYCauth: View {
@@ -31,7 +32,8 @@ struct KYCauth: View {
if let validDetails = accountDetails.validDetails {
if let scope: ScopeInfo = common.scopes.first {
let depositStr = common.amountRaw.formatted(scope, isNegative: false)
- let kycData = KycData(debitIBAN: debitIban, depositStr: depositStr)
+ let kycData = KycData(debitIBAN: debitIban, depositStr: depositStr,
+ debitPayto: info.debitPaytoUri)
WireTransferView(stack: stack.push(),
title: title(depositStr.0),
titleA11y: title(depositStr.1),
diff --git a/TalerWallet1/Views/Transactions/ManualDetailsV.swift b/TalerWallet1/Views/Transactions/ManualDetailsV.swift
@@ -122,6 +122,8 @@ struct WireTransferView: View {
let wireDetails = ManualDetailsWireV(stack: stack.push(),
reservePub: reservePub,
payto: payto,
+ paytoStr: paytoUri,
+ kycPaytoStr: kycData?.debitPayto,
restrictions: account.creditRestrictions,
amountValue: amountValue,
amountStr: amountStr,
diff --git a/TalerWallet1/Views/Transactions/ManualDetailsWireV.swift b/TalerWallet1/Views/Transactions/ManualDetailsWireV.swift
@@ -258,6 +258,8 @@ struct ManualDetailsWireV: View {
let stack: CallStack
let reservePub: String
let payto: PayTo
+ let paytoStr: String
+ let kycPaytoStr: String?
let restrictions: [AccountRestriction]? // only if restrictions apply
// let iban: String? // TODO: BBAN
@@ -267,6 +269,9 @@ struct ManualDetailsWireV: View {
let debitIBAN: String? // only for deposit auth
@AppStorage("minimalistic") var minimalistic: Bool = false
+ @State var isCopied1: Bool? = false
+ @State var isCopied2: Bool? = false
+
let navTitle = String(localized: "Wire transfer", comment: "ViewTitle of wire-transfer instructions")
private func step3(_ amountS: String) -> String {
@@ -320,7 +325,7 @@ struct ManualDetailsWireV: View {
var body: some View {
if let receiverStr = payto.receiver {
- List {
+ let list = List {
let warningIcon = Image(systemName: WARNING)
let note = Text("**Note: Don't forget to copy and paste the code in Step 2.**")
let manda = debitIBAN == nil ? String(localized: "This is mandatory, otherwise your money will not arrive in this wallet.")
@@ -391,6 +396,19 @@ struct ManualDetailsWireV: View {
// symLog.log("onAppear")
DebugViewC.shared.setViewID(VIEW_WITHDRAW_INSTRUCTIONS, stack: stack.push())
}
+
+ if #available(iOS 16.0, *) {
+ list.toolbar {
+ ToolbarTitleMenu {
+ CopyButton(paytoStr, isCopied: $isCopied1, title: "Copy destination payto")
+ if let kycPaytoStr {
+ CopyButton(kycPaytoStr, isCopied: $isCopied2, title: "Copy validation payto")
+ }
+ }
+ }
+ } else {
+ list
+ }
} // if receiverStr
}
}