diff options
Diffstat (limited to 'DomainDig/RootTabView.swift')
| -rw-r--r-- | DomainDig/RootTabView.swift | 42 |
1 files changed, 26 insertions, 16 deletions
diff --git a/DomainDig/RootTabView.swift b/DomainDig/RootTabView.swift index 06a9352..cba1062 100644 --- a/DomainDig/RootTabView.swift +++ b/DomainDig/RootTabView.swift @@ -1,31 +1,28 @@ import SwiftUI +private enum RootTab: Hashable { + case dashboard + case history + case inspect + case settings +} + struct RootTabView: View { @Bindable var viewModel: DomainViewModel @State private var purchaseService = PurchaseService.shared + @State private var selectedTab: RootTab = FeatureAccessService.currentTier == .free ? .inspect : .dashboard var body: some View { let _ = purchaseService.currentTier - TabView { - ContentView(viewModel: viewModel) - .tabItem { - Label("Inspect", systemImage: "magnifyingglass") - } - + TabView(selection: $selectedTab) { NavigationStack { - WatchlistView(viewModel: viewModel) + DashboardView(viewModel: viewModel) } .tabItem { - Label("Watchlist", systemImage: "eye") - } - - NavigationStack { - MonitoringView(viewModel: viewModel) - } - .tabItem { - Label("Monitoring", systemImage: "waveform.path.ecg") + Label("Dashboard", systemImage: "square.grid.2x2") } + .tag(RootTab.dashboard) NavigationStack { HistoryView(viewModel: viewModel) @@ -33,13 +30,21 @@ struct RootTabView: View { .tabItem { Label("History", systemImage: "clock.arrow.trianglehead.counterclockwise.rotate.90") } + .tag(RootTab.history) + + ContentView(viewModel: viewModel) + .tabItem { + Label("Inspect", systemImage: "magnifyingglass") + } + .tag(RootTab.inspect) NavigationStack { SettingsView(viewModel: viewModel) } .tabItem { - Label("More", systemImage: "ellipsis.circle") + Label("Settings", systemImage: "gearshape") } + .tag(RootTab.settings) } .sheet(isPresented: Binding( get: { viewModel.isPaywallPresented }, @@ -63,5 +68,10 @@ struct RootTabView: View { } ) } + .onChange(of: purchaseService.currentTier) { _, newValue in + if newValue != .free, selectedTab == .inspect, viewModel.trackedDomains.isEmpty == false { + selectedTab = .dashboard + } + } } } |
