← All repositories

listless

A simple list app for Apple platforms

git clone https://code.inqk.net/listless.git


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? {