Files
Thijooree-iOS/Thijooree iOS/Views/Home/HomeView.swift
T

60 lines
1.8 KiB
Swift

import SwiftUI
// Root home container — 5-tab bottom bar matching Android bottom_nav_menu.xml
struct HomeView: View {
@State private var vm = HomeViewModel()
@State private var selectedTab = 0
var body: some View {
TabView(selection: $selectedTab) {
DashboardView()
.tabItem { Label("Dashboard", systemImage: "house.fill") }
.tag(0)
AccountsView()
.tabItem { Label("Accounts", systemImage: "building.columns.fill") }
.tag(1)
ContactsView()
.tabItem { Label("Contacts", systemImage: "person.2.fill") }
.tag(2)
TransferView()
.tabItem { Label("Transfer", systemImage: "arrow.up.right") }
.tag(3)
placeholderTab("More", icon: "ellipsis")
.tabItem { Label("More", systemImage: "ellipsis") }
.tag(4)
}
.environment(vm)
.task { await vm.refreshIfNeeded() }
// When a contact's "Send" button is tapped, jump to the Transfer tab
.onChange(of: vm.pendingTransferContact) { _, contact in
if contact != nil { selectedTab = 3 }
}
}
@ViewBuilder
private func placeholderTab(_ title: String, icon: String) -> some View {
NavigationStack {
VStack(spacing: 16) {
Image(systemName: icon)
.font(.system(size: 44))
.foregroundStyle(.secondary)
Text(title)
.font(.title2.bold())
.foregroundStyle(.secondary)
}
.frame(maxWidth: .infinity, maxHeight: .infinity)
.background(Color(.systemBackground))
.navigationTitle(title)
}
}
}
#Preview {
HomeView()
.environment(AppViewModel())
}