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:
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() }
)
)