KasztelanKarta/Kasztelan/MainTabView.swift

63 lines
2.1 KiB
Swift

import SwiftUI
struct MainTabView: View {
@EnvironmentObject private var model: AppModel
var body: some View {
ZStack {
AmbientBackground()
TabView(selection: $model.selectedTab) {
NavigationStack {
ZStack {
AmbientBackground()
WalletView()
}
}
.toolbarBackground(.hidden, for: .navigationBar)
.tabItem { Label(model.text("Karta", "Card"), systemImage: "creditcard.fill") }
.tag(0)
NavigationStack {
ZStack {
AmbientBackground()
MessagesView()
}
}
.toolbarBackground(.hidden, for: .navigationBar)
.tabItem { Label(model.text("Wiadomości", "Messages"), systemImage: "envelope.fill") }
.badge(model.messages.count)
.tag(1)
NavigationStack {
ZStack {
AmbientBackground()
ProfileView()
}
}
.toolbarBackground(.hidden, for: .navigationBar)
.tabItem { Label(model.text("Profil", "Profile"), systemImage: "person.crop.circle.fill") }
.tag(2)
}
.background(.clear)
}
.tint(KTheme.orange)
.toolbarBackground(.ultraThinMaterial, for: .tabBar)
.toolbarBackground(.visible, for: .tabBar)
.task { await NotificationService.requestPermission() }
}
}
struct AppToolbar: ToolbarContent {
@EnvironmentObject private var model: AppModel
var body: some ToolbarContent {
ToolbarItem(placement: .principal) {
Image("Logo")
.resizable()
.scaledToFit()
.frame(width: 190, height: 46)
.shadow(color: KTheme.pink.opacity(0.28), radius: 12)
}
ToolbarItem(placement: .topBarTrailing) { LanguageButton() }
}
}