48 lines
1.7 KiB
Swift
48 lines
1.7 KiB
Swift
import SwiftUI
|
|
|
|
struct MainTabView: View {
|
|
@EnvironmentObject private var model: AppModel
|
|
|
|
var body: some View {
|
|
ZStack {
|
|
AmbientBackground()
|
|
|
|
TabView(selection: $model.selectedTab) {
|
|
NavigationStack { WalletView() }
|
|
.toolbarBackground(.hidden, for: .navigationBar)
|
|
.tabItem { Label(model.text("Karta", "Card"), systemImage: "creditcard.fill") }
|
|
.tag(0)
|
|
NavigationStack { MessagesView() }
|
|
.toolbarBackground(.hidden, for: .navigationBar)
|
|
.tabItem { Label(model.text("Wiadomości", "Messages"), systemImage: "envelope.fill") }
|
|
.badge(model.messages.count)
|
|
.tag(1)
|
|
NavigationStack { 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: 170, height: 44)
|
|
.shadow(color: KTheme.pink.opacity(0.28), radius: 12)
|
|
}
|
|
ToolbarItem(placement: .topBarTrailing) { LanguageButton() }
|
|
}
|
|
}
|