diff --git a/apps/tauri/src/lib/components/TaskItem.svelte b/apps/tauri/src/lib/components/TaskItem.svelte index 003e63d..9e40f90 100644 --- a/apps/tauri/src/lib/components/TaskItem.svelte +++ b/apps/tauri/src/lib/components/TaskItem.svelte @@ -1,5 +1,6 @@ +
+
@@ -199,3 +228,5 @@
+ + diff --git a/apps/tauri/src/lib/screens/TasksScreen.svelte b/apps/tauri/src/lib/screens/TasksScreen.svelte index 215d731..9380a0c 100644 --- a/apps/tauri/src/lib/screens/TasksScreen.svelte +++ b/apps/tauri/src/lib/screens/TasksScreen.svelte @@ -343,7 +343,7 @@ ondragover={(e) => handleDragOver(e, task.id)} ondragend={handleDragEnd} ondrop={(e) => handleDrop(e, task.id)} - class="transition-all duration-150 {dragId === task.id ? 'opacity-30' : ''} {dragOverId === task.id && dragId !== task.id ? 'border-t-2 border-t-primary' : ''}" + class="{dragId === task.id ? 'opacity-30' : ''} {dragOverId === task.id && dragId !== task.id ? 'border-t-2 border-t-primary' : ''}" > diff --git a/apps/tauri/src/lib/stores/app.svelte.ts b/apps/tauri/src/lib/stores/app.svelte.ts index a5b59bf..2cde27f 100644 --- a/apps/tauri/src/lib/stores/app.svelte.ts +++ b/apps/tauri/src/lib/stores/app.svelte.ts @@ -162,7 +162,13 @@ async function toggleTask(taskId: string) { listId: activeListId, taskId, }); - tasks = tasks.map((t) => (t.id === taskId ? updated : t)); + // Move to top of list locally, then persist order in background + if (updated.status === "backlog") { + tasks = [updated, ...tasks.filter((t) => t.id !== taskId)]; + invoke("reorder_task", { listId: activeListId, taskId, newPosition: 0 }).catch(() => {}); + } else { + tasks = tasks.map((t) => (t.id === taskId ? updated : t)); + } } catch (e) { error = String(e); }