commit e18bc100d5a2d903093585176b0fd5e2136df038
parent 1afc225066b511d4ba2358493697edbcd4821b5d
Author: Marc Stibane <marc@taler.net>
Date: Sun, 12 Nov 2023 18:16:39 +0100
amountToTransfer Send
Diffstat:
3 files changed, 16 insertions(+), 25 deletions(-)
diff --git a/TalerWallet1/Views/HelperViews/CurrencyField.swift b/TalerWallet1/Views/HelperViews/CurrencyField.swift
@@ -21,6 +21,7 @@
*/
import SwiftUI
import UIKit
+import taler_swift
@MainActor
public struct CurrencyField: View {
diff --git a/TalerWallet1/Views/Peer2peer/SendAmount.swift b/TalerWallet1/Views/Peer2peer/SendAmount.swift
@@ -12,7 +12,7 @@ struct SendAmount: View {
let stack: CallStack
let amountAvailable: Amount // TODO: GetMaxPeerPushAmount
- @Binding var centsToTransfer: UInt64
+ @Binding var amountToTransfer: Amount
@Binding var summary: String
@EnvironmentObject private var model: WalletModel
@@ -38,12 +38,11 @@ struct SendAmount: View {
#endif
let currency = amountAvailable.currencyStr
let navTitle = String(localized: "Send \(currency)", comment: "Send currency, Dialog Title")
- let currencyField = CurrencyField(value: $centsToTransfer, currency: currency)
-
+ let currencyField = CurrencyField(amount: $amountToTransfer)
let fee = fee(ppCheck: peerPushCheck)
ScrollView {
VStack(alignment: .trailing) {
- let available = amountAvailable.readableDescription
+ let available = amountAvailable.readableDescription // TODO: formatter
Text("Available: \(available)")
.accessibilityFont(.title3)
.padding(.bottom, 2)
@@ -54,12 +53,12 @@ struct SendAmount: View {
.foregroundColor(.red)
.padding(4)
- let disabled = centsToTransfer == 0 // TODO: check amountAvailable
+ let disabled = amountToTransfer.isZero // TODO: check amountAvailable
NavigationLink(destination: LazyView {
SendPurpose(stack: stack.push(),
amountAvailable: amountAvailable,
- centsToTransfer: centsToTransfer,
+ amountToTransfer: amountToTransfer,
fee: fee,
summary: $summary,
expireDays: $expireDays)
@@ -81,11 +80,10 @@ struct SendAmount: View {
.onDisappear {
symLog.log("❗️Yikes SendAmount onDisappear")
}
- .task(id: centsToTransfer) {
- if centsToTransfer > 0 {
- let amount = Amount.amountFromCents(currency, centsToTransfer)
+ .task(id: amountToTransfer.value) {
+ if !amountToTransfer.isZero {
do {
- let ppCheck = try await model.checkPeerPushDebitM(amount)
+ let ppCheck = try await model.checkPeerPushDebitM(amountToTransfer)
peerPushCheck = ppCheck
// TODO: set from exchange
// agePicker.setAges(ages: peerPushCheck?.ageRestrictionOptions)
@@ -100,14 +98,14 @@ struct SendAmount: View {
// MARK: -
#if DEBUG
struct SendAmount_Container : View {
- @State private var centsToTransfer: UInt64 = 510
+ @State private var amountToTransfer = Amount(currency: DEMOCURRENCY, cent: 510)
@State private var summary: String = ""
var body: some View {
let amount = Amount(currency: LONGCURRENCY, integer: 10, fraction: 0)
SendAmount(stack: CallStack("Preview"),
amountAvailable: amount,
- centsToTransfer: $centsToTransfer,
+ amountToTransfer: $amountToTransfer,
summary: $summary)
}
}
diff --git a/TalerWallet1/Views/Peer2peer/SendPurpose.swift b/TalerWallet1/Views/Peer2peer/SendPurpose.swift
@@ -11,7 +11,7 @@ struct SendPurpose: View {
let stack: CallStack
let amountAvailable: Amount
- let centsToTransfer: UInt64
+ let amountToTransfer: Amount
let fee: String
@Binding var summary: String
@Binding var expireDays: UInt
@@ -19,19 +19,11 @@ struct SendPurpose: View {
let navTitle = String(localized: "NavTitle_Send_Subject", defaultValue: "Subject", comment: "NavTitle for entering the subject for Send-Money")
@State private var transactionStarted: Bool = false
-
- private var value: String {
-// let mag = pow(10, formatter.maximumFractionDigits)
-// return formatter.string(for: Decimal(centsToTransfer) / mag) ?? ""
- return String(centsToTransfer / 100) // TODO: based on currency
- }
@FocusState private var isFocused: Bool
var body: some View {
- let amount = Amount.amountFromCents(amountAvailable.currencyStr, centsToTransfer)
-
VStack (spacing: 6) {
- Text(amount.readableDescription)
+ Text(amountToTransfer.readableDescription) // TODO: curreny formatter
Text("+ \(fee) payment fee")
.accessibilityFont(.body)
.foregroundColor(.red)
@@ -84,13 +76,13 @@ struct SendPurpose: View {
let disabled = (expireDays == 0) || (summary.count < 1) // TODO: check amountAvailable
NavigationLink(destination: LazyView {
SendDoneV(stack: stack.push(),
- amountToSend: amount,
+ amountToSend: amountToTransfer,
amountToReceive: nil,
summary: summary,
expireDays: expireDays,
transactionStarted: $transactionStarted)
}) {
- Text("Send \(value) \(amountAvailable.currencyStr) now", comment: "first is value, second currencyString") // TODO: currency formatter
+ Text("Send \(amountToTransfer.readableDescription) now", comment: "amountToTransfer") // TODO: currency formatter
}
.buttonStyle(TalerButtonStyle(type: .prominent))
.disabled(disabled)
@@ -130,7 +122,7 @@ struct SendPurpose: View {
// @State var expireDays: UInt = 0
// let amount = Amount(currency: LONGCURRENCY, integer: 10, fraction: 0)
// SendPurpose(amountAvailable: amount,
-// centsToTransfer: 543,
+// amountToTransfer: 543,
// fee: "0,43",
// summary: $summary,
// expireDays: $expireDays)