// // ContentView.swift // OnCuePresenter Watch App // // Created by Pradyun Setti on 22/06/2024. // import SwiftUI import SwiftData struct MainViewPresenter: View { @Environment(\.modelContext) private var modelContext @Query private var items: [OCProject] @State private var newProjectName = "" @State private var addNewProject = false var body: some View { NavigationView { List { ForEach(items) { project in NavigationLink { CueCardViewPresenter(project: project) } label: { ProjectCard(project: project) } .padding(.vertical, 3) } } .navigationTitle("Projects") } } } #Preview { let config = ModelConfiguration(isStoredInMemoryOnly: true) let container = try! ModelContainer(for: OCProject.self, configurations: config) container.mainContext.insert(PreviewData.project) return MainViewPresenter() .modelContainer(container) } struct ProjectCard: View { @AppStorage(Preferences.themeColour) var themeColor = Color.blue.toHex()! let project: OCProject var body: some View { VStack(alignment: .leading) { if (project.color == Color.clear.toHex()!) { Text("\(project.name)") .bold() .font(.title2) .foregroundStyle(Color(hex: themeColor) ?? .blue) } else { Text("\(project.name)") .bold() .font(.title2) .foregroundStyle(Color(hex: project.color) ?? .white) } Text("\(project.cards?.count ?? 0) \(project.cards?.count ?? 0 == 1 ? "Card" : "Cards")") } } }