OnCue/OnCuePresenter Watch App/View/MainViewPresenter.swift
2024-06-22 20:04:39 +12:00

60 lines
1.8 KiB
Swift

//
// 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 {
NavigationSplitView {
List {
ForEach(items) { project in
NavigationLink {
CueCardViewPresenter(project: project)
} label: {
VStack(alignment: .leading) {
Text("\(project.name)")
.bold()
.font(.title2)
.foregroundStyle(Color(hex: project.color) ?? .white)
Text("\(project.cards.count) \(project.cards.count == 1 ? "Card" : "Cards")")
}
}
.padding(.vertical, 3)
}
}
.toolbar {
ToolbarItem {
Button(action: { modelContext.insert(PreviewData.project); try! modelContext.save() }) {
Label("Add Item", systemImage: "plus")
}
}
}
.navigationTitle("Projects")
} detail: {
Text("Select an item")
}
}
}
#Preview {
let config = ModelConfiguration(isStoredInMemoryOnly: true)
let container = try! ModelContainer(for: OCProject.self, configurations: config)
container.mainContext.insert(PreviewData.project)
return MainViewPresenter()
.modelContainer(container)
}