48 lines
1.5 KiB
Swift
48 lines
1.5 KiB
Swift
import SwiftUI
|
|
|
|
struct ListDetailView: View {
|
|
@Environment(ListStore.self) private var store
|
|
let listID: UUID
|
|
@State private var editorItem: TodoItem?
|
|
@State private var moveItem: TodoItem?
|
|
|
|
private var todoList: TodoList? {
|
|
store.lists.first { $0.id == listID }
|
|
}
|
|
|
|
var body: some View {
|
|
Group {
|
|
if let todoList {
|
|
if todoList.sortedItems.isEmpty {
|
|
ContentUnavailableView("Keine Einträge", systemImage: "tray")
|
|
} else {
|
|
List {
|
|
TodoListView(
|
|
items: todoList.sortedItems,
|
|
onToggle: { item in
|
|
store.toggleItemCompleted(item.id, in: listID)
|
|
},
|
|
onTap: { item in
|
|
editorItem = item
|
|
},
|
|
onDelete: { item in
|
|
store.deleteItem(item.id, from: listID)
|
|
},
|
|
onMove: { item in
|
|
moveItem = item
|
|
}
|
|
)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.navigationTitle(todoList?.name ?? "")
|
|
.sheet(item: $editorItem) { item in
|
|
TodoEditorView(listID: listID, item: item)
|
|
}
|
|
.sheet(item: $moveItem) { item in
|
|
MoveToListView(itemID: item.id, currentListID: listID)
|
|
}
|
|
}
|
|
}
|