import SwiftUI struct ContentView: View { @State var root: RootFlow = DefaultTokenStore().jwt == nil ? .auth : .main @State var selectedTab: MainTab = .home private let tokenStore: TokenStore = DefaultTokenStore() @State var appState = AppState() var body: some View { Group { switch root { case .auth: AuthFlowView(root: $root, selectedTab: $selectedTab, tokenStore: tokenStore, appState: $appState) case .main: MainTabView(selectedTab: $selectedTab, root: $root, tokenStore: tokenStore, appState: $appState) } } .sheet(item: $appState.activeModal) { modal in switch modal { case .addressPicker: AddressPickerModalView() case .filters: FiltersModalView() } } } } struct AddressPickerModalView: View { var body: some View { NavigationStack { VStack(spacing: 12) { Text("Selecionar endereco") .font(AppTypography.heading2) Text("Fluxo de endereco sera implementado na etapa de checkout/perfil.") .font(AppTypography.body) .multilineTextAlignment(.center) .foregroundStyle(AppColors.textMuted) } .padding(24) .frame(maxWidth: .infinity, maxHeight: .infinity) .background(AppColors.backgroundLight) } } } struct FiltersModalView: View { var body: some View { NavigationStack { VStack(spacing: 12) { Text("Filtros") .font(AppTypography.heading2) Text("Filtros de busca serao ligados na integracao real da Home com API.") .font(AppTypography.body) .multilineTextAlignment(.center) .foregroundStyle(AppColors.textMuted) } .padding(24) .frame(maxWidth: .infinity, maxHeight: .infinity) .background(AppColors.backgroundLight) } } }