Skip to content

Instantly share code, notes, and snippets.

@zwaldowski
Created June 6, 2023 00:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zwaldowski/ea62eb4d05ab6f6a38df277d28ffa4ac to your computer and use it in GitHub Desktop.
Save zwaldowski/ea62eb4d05ab6f6a38df277d28ffa4ac to your computer and use it in GitHub Desktop.
import SwiftData
import SwiftUI
@main
struct Much_TodoApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
.modelContainer(for: TodoItem.self)
}
}
struct ContentView: View {
@Environment(\.modelContext) private var modelContext
@Query(sort: \.created, order: .reverse) private var items: [TodoItem]
var body: some View {
NavigationStack {
List {
ForEach(items) { (@Bindable item) in
LabeledContent {
Toggle("Completed", isOn: $item.isDone)
.labelsHidden()
} label: {
TextField("Item Title", text: $item.text, prompt: Text("New Item"))
Text(item.created, format: .dateTime.month().day().hour().minute())
}
}
}
.navigationTitle("Much Todo")
.toolbar {
ToolbarItem {
Button {
withAnimation {
modelContext.insert(TodoItem())
}
} label: {
Label("Add Item", systemImage: "plus")
}
}
}
}
}
}
@Model
class TodoItem {
var created: Date = Date.now
var text: String = ""
var isDone: Bool = false
init() {}
}
#Preview {
ContentView()
.modelContainer(for: TodoItem.self, inMemory: true)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment