summaryrefslogtreecommitdiff
path: root/DomainDig/RootTabView.swift
diff options
context:
space:
mode:
Diffstat (limited to 'DomainDig/RootTabView.swift')
-rw-r--r--DomainDig/RootTabView.swift42
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
+ }
+ }
}
}