commit e2a3f82b4f4a6ea7516e4a69edd5650243040c29
parent 747785810ebb06d66725719612576845883ea186
Author: Marc Stibane <marc@taler.net>
Date: Sun, 13 Apr 2025 13:23:43 +0200
CallStack
Diffstat:
4 files changed, 15 insertions(+), 7 deletions(-)
diff --git a/TalerWallet1/Views/OIM/OIMView.swift b/TalerWallet1/Views/OIM/OIMView.swift
@@ -189,7 +189,7 @@ struct OIMEditView: View {
availableVal = intValue(available) - intValue(amount)
}
Spacer()
- OIMcurrencyScroller(currency: currency,
+ OIMcurrencyScroller(stack: stack.push(),
availableVal: $availableVal,
amountVal: $amountVal,
tappedVal: $tappedVal,
diff --git a/TalerWallet1/Views/OIM/OIMcoinStackV.swift b/TalerWallet1/Views/OIM/OIMcoinStackV.swift
@@ -89,7 +89,7 @@ struct OIMcoinStackV1: View {
let shakeOffset: CGFloat = shake && !match ? .random(in: 5...10)
: .zero
let direction = value < tappedVal
- OIMcurrencyButton(//stack: stack.push(),
+ OIMcurrencyButton(stack: stack.push(),
value: value,
currency: currency,
availableVal: value,
@@ -150,7 +150,7 @@ struct OIMcoinStackV2: View {
let shakeOffset: CGFloat = (cash.shake != 0) && !match ? .random(in: 5...10)
: .zero
let direction = value < tappedVal
- OIMcurrencyButton(//stack: stack.push(),
+ OIMcurrencyButton(stack: stack.push(),
value: value,
currency: cash.currency,
availableVal: value,
diff --git a/TalerWallet1/Views/OIM/OIMcurrencyScroller.swift b/TalerWallet1/Views/OIM/OIMcurrencyScroller.swift
@@ -10,13 +10,14 @@ import taler_swift
// renders all banknotes and coins in 1 horizontal scrollview
struct OIMcurrencyScroller: View {
- let currency: OIMcurrency
+ let stack: CallStack
@Binding var availableVal: UInt64
@Binding var amountVal: UInt64
@Binding var tappedVal: UInt64
@Binding var flying: UInt64
@Binding var shake: Bool
+ @EnvironmentObject private var cash: OIMcash
@EnvironmentObject private var wrapper: NamespaceWrapper
func tap(value: UInt64, _ delay: Int = 250) {
@@ -50,13 +51,16 @@ struct OIMcurrencyScroller: View {
}
}
var body: some View {
+ let currency = cash.currency
ScrollView(.horizontal) {
HStack(alignment: .bottom, spacing: 10) {
ForEach(currency.bankNotes, id: \.self) { value in
- OIMcurrencyButton(value: value,
+ OIMcurrencyButton(stack: stack.push(),
+ value: value,
currency: currency,
availableVal: availableVal,
canEdit: true,
+// isFlipped: false,
pct: 0.0,
action: { tap(value: value) }
)
@@ -64,10 +68,12 @@ struct OIMcurrencyScroller: View {
.matchedGeometryEffect(id: String(value), in: wrapper.namespace, isSource: true)
}
ForEach(currency.bankCoins, id: \.self) { value in
- OIMcurrencyButton(value: value,
+ OIMcurrencyButton(stack: stack.push(),
+ value: value,
currency: currency,
availableVal: availableVal,
canEdit: true,
+// isFlipped: false,
pct: 0.0,
action: { tap(value: value) }
)
diff --git a/TalerWallet1/Views/OIM/OIMcurrencyViews2.swift b/TalerWallet1/Views/OIM/OIMcurrencyViews2.swift
@@ -41,10 +41,12 @@ struct OIMnoteStackV: View {
: .zero
let direction = value < tappedVal
// let _ = print("id \(id), flying \(flying), shaking \(shakeOffset)")
- OIMcurrencyButton(value: value,
+ OIMcurrencyButton(stack: stack.push(),
+ value: value,
currency: currency,
availableVal: value,
canEdit: canEdit,
+// isFlipped: false, // TODO: Flip coin
pct: match ? 0.0 : 1.0,
action: action)
.offset(x: xOffset + (direction ? shakeOffset : -shakeOffset),