41 lines
1.2 KiB
Swift
41 lines
1.2 KiB
Swift
import SwiftUI
|
|
|
|
struct TodoListView: View {
|
|
let items: [TodoItem]
|
|
var showListName: Bool = false
|
|
var onToggle: (TodoItem) -> Void
|
|
var onTap: (TodoItem) -> Void
|
|
var onDelete: ((TodoItem) -> Void)?
|
|
var onMove: ((TodoItem) -> Void)?
|
|
|
|
var body: some View {
|
|
ForEach(items) { item in
|
|
TodoRowView(
|
|
item: item,
|
|
onToggle: { onToggle(item) },
|
|
subtitle: showListName ? item.list?.name : nil,
|
|
onTap: { onTap(item) }
|
|
)
|
|
.swipeActions(edge: .leading) {
|
|
if let onMove {
|
|
Button {
|
|
onMove(item)
|
|
} label: {
|
|
Label("Verschieben", systemImage: "folder")
|
|
}
|
|
.tint(.blue)
|
|
}
|
|
}
|
|
.swipeActions(edge: .trailing) {
|
|
if let onDelete {
|
|
Button(role: .destructive) {
|
|
onDelete(item)
|
|
} label: {
|
|
Label("Löschen", systemImage: "trash")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|