listless

A simple list app for Apple platforms
Log | Files | Refs | README | LICENSE

commit b56a533c2d4dcc3b519c5c5c5140d43d9e13d69b
parent a5380544b4dde2f6c13902202e05af99cb38611e
Author: Michael Camilleri <[email protected]>
Date:   Thu, 26 Feb 2026 06:39:59 +0900

Fix crash caused by deleted tasks in active/completed task lists

Co-Authored-By: Codex GPT 5.3 <[email protected]>

Diffstat:
MListless/Extensions/TaskListView+Logic.swift | 4++--
MListlessMac/Views/TaskListView.swift | 8++++----
2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/Listless/Extensions/TaskListView+Logic.swift b/Listless/Extensions/TaskListView+Logic.swift @@ -5,7 +5,7 @@ extension TaskListView { // MARK: - Computed Properties var activeTasks: [TaskItem] { - Array(tasks.filter { !$0.isCompleted }) + Array(tasks.filter { !$0.isDeleted && !$0.isCompleted }) .sorted { $0.sortOrder < $1.sortOrder } } @@ -20,7 +20,7 @@ extension TaskListView { } var completedTasks: [TaskItem] { - Array(tasks.filter { $0.isCompleted }) + Array(tasks.filter { !$0.isDeleted && $0.isCompleted }) .sorted { $0.updatedAt > $1.updatedAt } } diff --git a/ListlessMac/Views/TaskListView.swift b/ListlessMac/Views/TaskListView.swift @@ -223,7 +223,7 @@ struct TaskListView: View { .zIndex(isRowLifted(taskID) ? 1 : 0) .animation(.spring(response: 0.3, dampingFraction: 0.8), value: isRowLifted(taskID)) .overlay { - if draggedTaskID != nil && draggedTaskID != task.id { + if draggedTaskID != nil && draggedTaskID != taskID { VStack(spacing: 0) { // Top 1/6 - insert BEFORE Color.clear @@ -232,7 +232,7 @@ struct TaskListView: View { .onDrop( of: [UTType.text], delegate: TaskReorderDropDelegate( - onTargeted: { updateVisualOrder(insertBefore: task.id) }, + onTargeted: { updateVisualOrder(insertBefore: taskID) }, onPerform: { commitCurrentDrag() } ) ) @@ -244,7 +244,7 @@ struct TaskListView: View { .onDrop( of: [UTType.text], delegate: TaskReorderDropDelegate( - onTargeted: { updateVisualOrderSmart(relativeTo: task.id) }, + onTargeted: { updateVisualOrderSmart(relativeTo: taskID) }, onPerform: { commitCurrentDrag() } ) ) @@ -256,7 +256,7 @@ struct TaskListView: View { .onDrop( of: [UTType.text], delegate: TaskReorderDropDelegate( - onTargeted: { updateVisualOrder(insertAfter: task.id) }, + onTargeted: { updateVisualOrder(insertAfter: taskID) }, onPerform: { commitCurrentDrag() } ) )