commit 83807230f6918ae47c17d1a495ded0f026763116
parent 4edb583bccd5c7273407e6823403d8ec6d0d57c7
Author: Marc Stibane <marc@taler.net>
Date: Sun, 16 Feb 2025 15:57:35 +0100
TabBarModel
Diffstat:
6 files changed, 59 insertions(+), 59 deletions(-)
diff --git a/TalerWallet.xcodeproj/project.pbxproj b/TalerWallet.xcodeproj/project.pbxproj
@@ -312,8 +312,8 @@
4EEC157A29F9427F00D46A03 /* QRSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EEC157929F9427F00D46A03 /* QRSheet.swift */; };
4EEC3A712B2285A200D05F9D /* WithdrawExchangeV.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EEC3A702B2285A200D05F9D /* WithdrawExchangeV.swift */; };
4EEC3A722B2285A200D05F9D /* WithdrawExchangeV.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EEC3A702B2285A200D05F9D /* WithdrawExchangeV.swift */; };
- 4EED38552D140C1400F6C038 /* NavigationModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EED38542D140C1400F6C038 /* NavigationModel.swift */; };
- 4EED38562D140C1400F6C038 /* NavigationModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EED38542D140C1400F6C038 /* NavigationModel.swift */; };
+ 4EED38552D140C1400F6C038 /* TabBarModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EED38542D140C1400F6C038 /* TabBarModel.swift */; };
+ 4EED38562D140C1400F6C038 /* TabBarModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EED38542D140C1400F6C038 /* TabBarModel.swift */; };
4EED38582D1485AB00F6C038 /* ForEachWithIndex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EED38572D1485AB00F6C038 /* ForEachWithIndex.swift */; };
4EED38592D1485AB00F6C038 /* ForEachWithIndex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EED38572D1485AB00F6C038 /* ForEachWithIndex.swift */; };
4EF840A72A0B85F400EE0D47 /* CopyShare.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EF840A62A0B85F400EE0D47 /* CopyShare.swift */; };
@@ -524,7 +524,7 @@
4EEC157729F9032900D46A03 /* Sheet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Sheet.swift; sourceTree = "<group>"; };
4EEC157929F9427F00D46A03 /* QRSheet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QRSheet.swift; sourceTree = "<group>"; };
4EEC3A702B2285A200D05F9D /* WithdrawExchangeV.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WithdrawExchangeV.swift; sourceTree = "<group>"; };
- 4EED38542D140C1400F6C038 /* NavigationModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationModel.swift; sourceTree = "<group>"; };
+ 4EED38542D140C1400F6C038 /* TabBarModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabBarModel.swift; sourceTree = "<group>"; };
4EED38572D1485AB00F6C038 /* ForEachWithIndex.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ForEachWithIndex.swift; sourceTree = "<group>"; };
4EF840A62A0B85F400EE0D47 /* CopyShare.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CopyShare.swift; sourceTree = "<group>"; };
4EFA395F2AA7946B00742548 /* ToSButtonView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToSButtonView.swift; sourceTree = "<group>"; };
@@ -867,7 +867,7 @@
isa = PBXGroup;
children = (
4EB095442989CBFE0043A8A1 /* MainView.swift */,
- 4EED38542D140C1400F6C038 /* NavigationModel.swift */,
+ 4EED38542D140C1400F6C038 /* TabBarModel.swift */,
4EB095452989CBFE0043A8A1 /* ErrorView.swift */,
4EB095392989CBFE0043A8A1 /* WalletEmptyView.swift */,
);
@@ -1343,7 +1343,7 @@
4E3EAE5F2A990778009F1BE8 /* QRSheet.swift in Sources */,
4E3EAE602A990778009F1BE8 /* P2pReceiveURIView.swift in Sources */,
4E3EAE612A990778009F1BE8 /* ListStyle.swift in Sources */,
- 4EED38552D140C1400F6C038 /* NavigationModel.swift in Sources */,
+ 4EED38552D140C1400F6C038 /* TabBarModel.swift in Sources */,
4E3EAE622A990778009F1BE8 /* TransactionSummaryV.swift in Sources */,
4E3EAE632A990778009F1BE8 /* WalletCore.swift in Sources */,
4E3EAE642A990778009F1BE8 /* LaunchAnimationView.swift in Sources */,
@@ -1484,7 +1484,7 @@
4EEC157A29F9427F00D46A03 /* QRSheet.swift in Sources */,
4E3B4BC12A41E6C200CC88B8 /* P2pReceiveURIView.swift in Sources */,
4E6EDD872A363D8D0031D520 /* ListStyle.swift in Sources */,
- 4EED38562D140C1400F6C038 /* NavigationModel.swift in Sources */,
+ 4EED38562D140C1400F6C038 /* TabBarModel.swift in Sources */,
4EB095582989CBFE0043A8A1 /* TransactionSummaryV.swift in Sources */,
4EB095202989CBCB0043A8A1 /* WalletCore.swift in Sources */,
4EB095672989CBFE0043A8A1 /* LaunchAnimationView.swift in Sources */,
diff --git a/TalerWallet1/Views/HelperViews/View+NavLink.swift b/TalerWallet1/Views/HelperViews/View+NavLink.swift
@@ -48,7 +48,7 @@ struct NavLink <Content : View> : View {
}
var body: some View {
- if tag != 0 { // actions: $navModel.actionSelected will hide the tabBar
+ if tag != 0 { // actions: $tabBarModel.actionSelected will hide the tabBar
NavigationLink(destination: content, tag: tag, selection: $selection)
{ EmptyView() }.frame(width: 0).opacity(0).hidden()
} else { // shortcuts, AddButton
diff --git a/TalerWallet1/Views/Main/MainView.swift b/TalerWallet1/Views/Main/MainView.swift
@@ -236,7 +236,7 @@ extension MainView {
@EnvironmentObject private var viewState: ViewState // popToRootView()
@EnvironmentObject private var viewState2: ViewState2 // popToRootView()
- @StateObject var navModel = NavigationModel()
+ @StateObject var tabBarModel = TabBarModel()
@State private var shouldReloadBalances = 0
@State private var shouldReloadTransactions = 0
@@ -292,8 +292,8 @@ extension MainView {
}
private var isBalances: Bool { self.selectedTab == .balances}
private func triggerAction(_ action: Int) {
- navModel.actionSelected = isBalances ? action // 1..4
- : action + 4 // 5..8
+ tabBarModel.actionSelected = isBalances ? action // 1..4
+ : action + 4 // 5..8
}
private static func className() -> String {"\(self)"}
@@ -334,16 +334,16 @@ extension MainView {
isSheet: false)
/// each NavigationView needs its own NavLinks
let balanceActions = Group { // actionSelected will hide the tabBar
- NavLink(1, $navModel.actionSelected) { sendDest }
- NavLink(2, $navModel.actionSelected) { requestDest }
- NavLink(3, $navModel.actionSelected) { depositDest }
- NavLink(4, $navModel.actionSelected) { manualWithdrawDest }
+ NavLink(1, $tabBarModel.actionSelected) { sendDest }
+ NavLink(2, $tabBarModel.actionSelected) { requestDest }
+ NavLink(3, $tabBarModel.actionSelected) { depositDest }
+ NavLink(4, $tabBarModel.actionSelected) { manualWithdrawDest }
}
let settingsActions = Group {
- NavLink(5, $navModel.actionSelected) { sendDest }
- NavLink(6, $navModel.actionSelected) { requestDest }
- NavLink(7, $navModel.actionSelected) { depositDest }
- NavLink(8, $navModel.actionSelected) { manualWithdrawDest }
+ NavLink(5, $tabBarModel.actionSelected) { sendDest }
+ NavLink(6, $tabBarModel.actionSelected) { requestDest }
+ NavLink(7, $tabBarModel.actionSelected) { depositDest }
+ NavLink(8, $tabBarModel.actionSelected) { manualWithdrawDest }
}
/// tab titles, and invisible tabItems which are only used for a11y
let balancesTitle = Tab.balances.title // "Balances"
@@ -370,7 +370,7 @@ extension MainView {
.background(settingsActions)
}.navigationViewStyle(.stack)
/// our custom tabBar with the Actions button in the middle
- let tabBarView = TabBarView(selection: tabSelection(), userAction: $userAction, hidden: $navModel.tabBarHidden) {
+ let tabBarView = TabBarView(selection: tabSelection(), userAction: $userAction, hidden: $tabBarModel.tabBarHidden) {
logger.log("onActionTab")
showActionSheet = true
} onActionDrag: {
@@ -395,7 +395,7 @@ extension MainView {
.ignoresSafeArea(.keyboard, edges: .bottom)
.accessibilityHidden(true) // for a11y we use the original tabBar, not our custom one
} // ZStack
- .environmentObject(navModel)
+ .environmentObject(tabBarModel)
.frame(maxWidth: .infinity, maxHeight: .infinity)
.onNotification(.SendAction) { triggerAction(1) }
.onNotification(.RequestAction) { triggerAction(2) }
diff --git a/TalerWallet1/Views/Main/NavigationModel.swift b/TalerWallet1/Views/Main/NavigationModel.swift
@@ -1,35 +0,0 @@
-/*
- * This file is part of GNU Taler, ©2022-24 Taler Systems S.A.
- * See LICENSE.md
- */
-/**
- * Controller
- *
- * @author Marc Stibane
- */
-import Foundation
-import SwiftUI
-
-class NavigationModel: ObservableObject {
- @Published var tabBarHidden = 0
-
- @Published var tosView: Int? = nil {
- didSet {
- if tosView != nil {
- tabBarHidden += 1
- } else if actionSelected == nil {
- tabBarHidden = 0
- }
- }
- }
-
- @Published var actionSelected: Int? = nil {
- didSet {
- if actionSelected != nil {
- tabBarHidden += 1
- } else if tosView == nil {
- tabBarHidden = 0
- }
- }
- }
-}
diff --git a/TalerWallet1/Views/Main/TabBarModel.swift b/TalerWallet1/Views/Main/TabBarModel.swift
@@ -0,0 +1,35 @@
+/*
+ * This file is part of GNU Taler, ©2022-24 Taler Systems S.A.
+ * See LICENSE.md
+ */
+/**
+ * Controller
+ *
+ * @author Marc Stibane
+ */
+import Foundation
+import SwiftUI
+
+class TabBarModel: ObservableObject {
+ @Published var tabBarHidden = 0
+
+ @Published var tosView: Int? = nil {
+ didSet {
+ if tosView != nil {
+ tabBarHidden += 1
+ } else if actionSelected == nil {
+ tabBarHidden = 0
+ }
+ }
+ }
+
+ @Published var actionSelected: Int? = nil {
+ didSet {
+ if actionSelected != nil {
+ tabBarHidden += 1
+ } else if tosView == nil {
+ tabBarHidden = 0
+ }
+ }
+ }
+}
diff --git a/TalerWallet1/Views/Settings/Exchange/ExchangeRowView.swift b/TalerWallet1/Views/Settings/Exchange/ExchangeRowView.swift
@@ -18,7 +18,7 @@ struct ExchangeRowView: View {
@Environment(\.sizeCategory) var sizeCategory
@EnvironmentObject private var controller: Controller
@EnvironmentObject private var model: WalletModel
- @EnvironmentObject private var navModel: NavigationModel
+ @EnvironmentObject private var tabBarModel: TabBarModel
@AppStorage("minimalistic") var minimalistic: Bool = false
var body: some View {
@@ -52,7 +52,7 @@ struct ExchangeRowView: View {
viewID: VIEW_WITHDRAW_TOS,
acceptAction: nil) // pop back to here
let actions = Group {
- NavLink(index, $navModel.tosView) { showToS }
+ NavLink(index, $tabBarModel.tosView) { showToS }
}
Group {
@@ -60,10 +60,10 @@ struct ExchangeRowView: View {
cellView
.background(actions)
.onTapGesture {
- navModel.tosView = index
+ tabBarModel.tosView = index
}
// .task {
-// navModel.tosView = false
+// tabBarModel.tosView = false
// }
}.listRowSeparator(.hidden)
}