commit a292ae9564ce0522145010f11e62071a662d7e94
parent 3127c2cbc2c521e6ea6d304218b69eafe6e1c090
Author: Marc Stibane <marc@taler.net>
Date: Mon, 21 Jul 2025 19:00:58 +0200
selectedChestIndex
Diffstat:
7 files changed, 39 insertions(+), 39 deletions(-)
diff --git a/TalerWallet1/Views/Actions/Peer2peer/RequestPayment.swift b/TalerWallet1/Views/Actions/Peer2peer/RequestPayment.swift
@@ -30,7 +30,7 @@ struct RequestPayment: View {
init(stack: CallStack,
selectedBalance: Balance?,
- selectedIndex: Int?,
+ selectedChestIndex: Int?, // OIM TODO: use balance
amountLastUsed: Binding<Amount>,
summary: Binding<String>,
iconID: Binding<String?>
@@ -43,10 +43,8 @@ struct RequestPayment: View {
self._amountLastUsed = amountLastUsed
self._summary = summary
self._iconID = iconID
-//#if OIM
- let oimCash = OIMcash(selectedIndex)
+ let oimCash = OIMcash(selectedChestIndex)
self._cash = StateObject(wrappedValue: { oimCash }())
-//#endif
}
@MainActor
diff --git a/TalerWallet1/Views/Actions/Peer2peer/SendAmountV.swift b/TalerWallet1/Views/Actions/Peer2peer/SendAmountV.swift
@@ -32,7 +32,7 @@ struct SendAmountV: View {
init(stack: CallStack,
selectedBalance: Balance?,
- selectedIndex: Int?,
+ selectedChestIndex: Int?, // OIM TODO: use balance
amountLastUsed: Binding<Amount>,
summary: Binding<String>,
iconID: Binding<String?>
@@ -45,10 +45,8 @@ struct SendAmountV: View {
self._amountLastUsed = amountLastUsed
self._summary = summary
self._iconID = iconID
-//#if OIM
- let oimCash = OIMcash(selectedIndex)
+ let oimCash = OIMcash(selectedChestIndex)
self._cash = StateObject(wrappedValue: { oimCash }())
-//#endif
}
@MainActor
@@ -115,7 +113,7 @@ struct SendAmountV: View {
SendAmountView(stack: stack.push(),
cash: cash,
balance: balance,
- buttonSelected: $buttonSelected,
+ buttonSelected: $buttonSelected, // call P2PSubjectV
amountLastUsed: $amountLastUsed,
amountToTransfer: $amountToTransfer,
amountAvailable: $amountAvailable,
@@ -147,7 +145,7 @@ struct SendAmountV: View {
amountToTransfer: $amountToTransfer,
available: available,
useAvailable: true, // cannot send more than we have
- fwdButtonTapped: $buttonSelected)
+ fwdButtonTapped: $buttonSelected) // call P2PSubjectV
.environmentObject(NamespaceWrapper(namespace)) // keep OIMviews apart
}
} }
@@ -188,7 +186,7 @@ fileprivate struct Preview_Content: View {
flags: [])
SendAmountV(stack: CallStack("Preview"),
selectedBalance: noBalance,
- selectedIndex: nil,
+ selectedChestIndex: nil, // preview
amountLastUsed: $amountToPreview,
summary: $summary,
iconID: $iconID)
diff --git a/TalerWallet1/Views/Balances/BalancesListView.swift b/TalerWallet1/Views/Balances/BalancesListView.swift
@@ -15,7 +15,7 @@ struct BalancesListView: View {
private let symLog = SymLogV(0)
let stack: CallStack
@Binding var selectedBalance: Balance? // pass down to TransactionsListView
- @Binding var selectedIndex: Int?
+ @Binding var selectedChestIndex: Int? // OIM TODO: use balance
@Binding var reloadTransactions: Int
@Binding var qrButtonTapped: Bool
@@ -56,6 +56,7 @@ struct BalancesListView: View {
BalancesSectionView(stack: stack.push("\(balance.scopeInfo.currency)"),
balance: balance, // this is the currency to be used
selectedBalance: $selectedBalance, // set in TransactionsListView
+ selectedChestIndex: selectedChestIndex,
sectionCount: count,
amountToTransfer: $amountToTransfer, // does still have the wrong currency
summary: $summary,
@@ -75,7 +76,7 @@ struct BalancesListView: View {
if controller.oimModeActive {
OIMbalances(stack: stack.push(),
selectedBalance: $selectedBalance, // set to user choice
- selectedIndex: $selectedIndex,
+ selectedChestIndex: $selectedChestIndex, // OIM TODO: use balance
qrButtonTapped: $qrButtonTapped)
.environmentObject(NamespaceWrapper(namespace)) // keep OIMviews apart
}
diff --git a/TalerWallet1/Views/Balances/BalancesPendingRowV.swift b/TalerWallet1/Views/Balances/BalancesPendingRowV.swift
@@ -14,6 +14,7 @@ struct BalancesPendingRowV: View {
let stack: CallStack
let balance: Balance
@Binding var selectedBalance: Balance? // <- return here the balance when we go to Transactions
+ let selectedChestIndex: Int?
@Binding var pendingTransactions: [TalerTransaction]
let reloadPending: (_ stack: CallStack) async -> ()
@@ -93,6 +94,7 @@ fileprivate struct BalancesPendingRowV_Previews: PreviewProvider {
stack: CallStack("Preview"),
balance: balance,
selectedBalance: $selectedPreviewBalance,
+ selectedChestIndex: nil, // preview
pendingTransactions: $previewTransactions,
reloadPending: {stack in })
}
diff --git a/TalerWallet1/Views/Balances/BalancesSectionView.swift b/TalerWallet1/Views/Balances/BalancesSectionView.swift
@@ -20,6 +20,7 @@ struct BalancesSectionView {
let stack: CallStack
let balance: Balance // this is the currency to be used
@Binding var selectedBalance: Balance? // <- return here the balance when we go to Transactions
+ let selectedChestIndex: Int?
let sectionCount: Int
@Binding var amountToTransfer: Amount // does still have the wrong currency
@Binding var summary: String
@@ -118,6 +119,7 @@ extension BalancesSectionView: View {
stack: stack.push(),
balance: balance,
selectedBalance: $selectedBalance,
+ selectedChestIndex: selectedChestIndex,
pendingTransactions: $pendingTransactions,
reloadPending: loadPending)
.padding(.leading, ICONLEADING)
diff --git a/TalerWallet1/Views/Main/MainView.swift b/TalerWallet1/Views/Main/MainView.swift
@@ -33,8 +33,8 @@ struct MainView: View {
@AppStorage("useAuthentication") var useAuthentication: Bool = false
@StateObject private var tabBarModel = TabBarModel()
- @State private var selectedBalance: Balance? = nil // gets set in TransactionsListView
- @State private var selectedIndex: Int? = nil // user selects savings box in OIMview
+ @State private var selectedBalance: Balance? = nil // for sheets, gets set in TransactionsListView
+ @State private var selectedChestIndex: Int? = nil // select in OIMbalances TODO: use balance
@State private var urlToOpen: URL? = nil
@State private var showUrlSheet = false
@State private var showActionSheet = false
@@ -73,7 +73,7 @@ struct MainView: View {
let mainContent = ZStack {
MainContent(logger: logger, stack: stack.push("Content"),
selectedBalance: $selectedBalance,
- selectedIndex: $selectedIndex, // user selects savings box in OIMview
+ selectedChestIndex: $selectedChestIndex, // OIM TODO: use balance
talerFontIndex: $talerFontIndex,
showActionSheet: $showActionSheet,
showScanner: $showScanner,
@@ -327,7 +327,7 @@ extension MainView {
let logger: Logger
let stack: CallStack
@Binding var selectedBalance: Balance?
- @Binding var selectedIndex: Int? // user selects savings box in OIMview
+ @Binding var selectedChestIndex: Int? // OIM TODO: use balance
@Binding var talerFontIndex: Int
@Binding var showActionSheet: Bool
@Binding var showScanner: Bool
@@ -411,13 +411,13 @@ extension MainView {
/// Destinations for the 4 actions
let sendDest = SendAmountV(stack: stack.push(Self.name),
selectedBalance: selectedBalance, // if nil shows currency picker
- selectedIndex: selectedIndex, // selected savings box from OIMview
+ selectedChestIndex: selectedChestIndex, // OIM TODO: use balance
amountLastUsed: $amountLastUsed, // currency needs to be updated!
summary: $summary,
iconID: $iconID)
let requestDest = RequestPayment(stack: stack.push(Self.name),
selectedBalance: selectedBalance,
- selectedIndex: selectedIndex, // selected savings box from OIMview
+ selectedChestIndex: selectedChestIndex, // OIM TODO: use balance
amountLastUsed: $amountLastUsed, // currency needs to be updated!
summary: $summary,
iconID: $iconID)
@@ -457,8 +457,8 @@ extension MainView {
/// NavigationViews for Balances & Settings
let balancesStack = NavigationView {
BalancesListView(stack: stack.push(balancesTitle),
- selectedBalance: $selectedBalance, // <= gets set in TransactionsListView
- selectedIndex: $selectedIndex, // user selects savings box in OIMview
+ selectedBalance: $selectedBalance, // for sheets, pass down to TransactionsListView
+ selectedChestIndex: $selectedChestIndex, // OIM TODO: use balance
// shouldReloadPending: $shouldReloadPending,
reloadTransactions: $shouldReloadTransactions,
qrButtonTapped: $qrButtonTapped)
diff --git a/TalerWallet1/Views/OIM/OIMbalances.swift b/TalerWallet1/Views/OIM/OIMbalances.swift
@@ -8,8 +8,7 @@
import SwiftUI
import taler_swift
-
-enum OIMViewState {
+enum OIMbalancesState {
case chestsClosed
case chestClosing
case chestOpenTapped
@@ -30,8 +29,8 @@ enum OIMViewState {
struct OIMbalances: View {
let stack: CallStack
// let decimal: Int // 0 for ¥,HUF; 2 for $,€,£; 3 for ﷼,₯ (arabic)
- @Binding var selectedBalance: Balance? // return user's choice
- @Binding var selectedIndex: Int?
+ @Binding var selectedBalance: Balance? // return user's choice
+ @Binding var selectedChestIndex: Int? // OIM TODO: use balance
@Binding var qrButtonTapped: Bool
@EnvironmentObject private var controller: Controller
@@ -42,7 +41,7 @@ struct OIMbalances: View {
@State private var tappedVal: UInt64 = 0
@State private var available: Amount? = nil
@State private var chestOpen: Int? = nil
- @State private var viewState: OIMViewState = .chestsClosed
+ @State private var viewState: OIMbalancesState = .chestsClosed
// @State private var showingActions = false // set true after user opened a chest, set false when choosing an action
// @State private var sending = false // after user tapped on Send or on the money
@State private var closing = false // after user tapped on the open chest
@@ -86,7 +85,7 @@ struct OIMbalances: View {
withAnimation(.basic1) {
chestOpen = nil
selectedBalance = nil
- selectedIndex = nil
+ selectedChestIndex = nil
available = nil
// showingActions = false
viewState = .chestsClosed
@@ -112,10 +111,10 @@ struct OIMbalances: View {
viewState = .chestOpenTapped
withAnimation(.basic1) {
chestOpen = index
+ selectedBalance = balance
+ selectedChestIndex = index
viewState = .chestIsOpen
- selectedIndex = index
cash.setIndex(index)
- selectedBalance = balance
available = balance.available
availableVal = balance.available.centValue
cash.update2(availableVal, state: .chestOpening, duration, initial) // set cash to available
@@ -156,7 +155,7 @@ struct OIMbalances: View {
!available.isZero
} else { false }
let topButtons = HStack(alignment: .top) {
- if chestOpen == nil {
+ if selectedChestIndex == nil {
let showQR = viewState == .chestsClosed
QRButton(hideTitle: true) {
qrButtonTapped = true
@@ -197,7 +196,7 @@ struct OIMbalances: View {
history: viewState == .historyShown,
secondAmount: nil)
Spacer()
- let isOpen = chestOpen != nil
+ let isOpen = selectedChestIndex != nil
ZStack {
sidePosition
// let scaleMoney = viewState == .chestIsOpen
@@ -225,17 +224,17 @@ struct OIMbalances: View {
// two savings chests (Euro and Sierra Leone)
Spacer()
HStack(spacing: 30) {
+ let balance = controller.balances[0]
// ForEach(controller.balances, id: \.self) { balance in
// OIMbalanceButton(isOpen: selectedBalance == balance) {
- let chests = ["EUR", "SLE", "CdI"]
- let balance = controller.balances[0]
- ForEach(0...2, id: \.self) { index in
- let itsMe = chestOpen == index
- let isClosed = chestOpen == nil
+ ForEach(0..<OIMcurrencies.count, id: \.self) { index in
+ let oimCurrency = OIMcurrencies[index]
+ let itsMe = selectedChestIndex == index
+ let isClosed = selectedChestIndex == nil
let size = isClosed ? 160.0 : OIMbuttonSize
ZStack {
- OIMbalanceButton(isOpen: itsMe, chest: chests[index], isFinal: false) {
+ OIMbalanceButton(isOpen: itsMe, chest: oimCurrency.chest, isFinal: false) {
if itsMe {
closeChest()
} else {
@@ -276,7 +275,7 @@ struct OIMbalances: View {
}
.onAppear {
// showingActions = false
- if (chestOpen != nil) {
+ if (selectedChestIndex != nil) {
let balance = controller.balances[0]
available = balance.available
availableVal = available?.centValue ?? 0
@@ -291,7 +290,7 @@ struct OIMbalances: View {
.onDisappear {
cash.moveBack()
// sending = false
- viewState = (chestOpen != nil) ? .chestIsOpen : .chestsClosed
+ viewState = (selectedChestIndex != nil) ? .chestIsOpen : .chestsClosed
}
}
}