listless

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

commit 31bdb1189bf5ddd08ac1d0b4438e27b2c831ced2
parent 6c7c77263f9df4a13383f96b34bed9d4f29d6674
Author: Michael Camilleri <[email protected]>
Date:   Sat,  7 Feb 2026 16:18:08 +0900

Move completed items below completed items

Co-Authored-By: Claude 4.5 Sonnet <[email protected]>

Diffstat:
MListless/Views/TaskListView.swift | 49++++++++++++++++++-------------------------------
1 file changed, 18 insertions(+), 31 deletions(-)

diff --git a/Listless/Views/TaskListView.swift b/Listless/Views/TaskListView.swift @@ -29,36 +29,6 @@ struct TaskListView: View { var body: some View { ScrollView { VStack(alignment: .leading, spacing: 0) { - if !completedTasks.isEmpty { - Text("Completed") - .font(.caption) - .foregroundStyle(.secondary) - .padding(.leading, 16) - .padding(.bottom, 6) - } - - ForEach(completedTasks) { task in - let taskID = task.id - TaskRowView( - task: task, - taskID: taskID, - isSelected: selectedTaskID == taskID, - isEditing: editingTaskID == taskID, - focusedField: $focusedField, - onToggle: toggleCompletion(_:), - onTitleChange: updateTitle(_:_:), - onDelete: deleteTask(_:), - onSelect: selectTask(_:), - onStartEdit: startEditing(_:), - onEndEdit: endEditing(_:shouldCreateNewTask:) - ) - } - - if !activeTasks.isEmpty && !completedTasks.isEmpty { - Divider() - .padding(.vertical, 8) - } - ForEach(displayActiveTasks) { task in let taskID = task.id TaskRowView( @@ -126,6 +96,23 @@ struct TaskListView: View { } }) } + + ForEach(completedTasks) { task in + let taskID = task.id + TaskRowView( + task: task, + taskID: taskID, + isSelected: selectedTaskID == taskID, + isEditing: editingTaskID == taskID, + focusedField: $focusedField, + onToggle: toggleCompletion(_:), + onTitleChange: updateTitle(_:_:), + onDelete: deleteTask(_:), + onSelect: selectTask(_:), + onStartEdit: startEditing(_:), + onEndEdit: endEditing(_:shouldCreateNewTask:) + ) + } } .frame(maxWidth: .infinity, alignment: .topLeading) .dropDestination(for: String.self) { items, location in @@ -190,7 +177,7 @@ struct TaskListView: View { } private var allTasksInDisplayOrder: [TaskItem] { - completedTasks + displayActiveTasks + displayActiveTasks + completedTasks } private var editingTaskID: UUID? {