feat: extract reusable TodoListView and add tappable filter screens

This commit is contained in:
2026-02-12 22:30:47 +01:00
parent f642c502a0
commit 29719b7499
9 changed files with 199 additions and 31 deletions

View File

@@ -0,0 +1,40 @@
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")
}
}
}
}
}
}