From ee5f55bc8e64616915aa8c58ca52f5f56f5ffdb1 Mon Sep 17 00:00:00 2001 From: NPS Agent Date: Wed, 13 May 2026 10:04:18 +0930 Subject: [PATCH] Fixed issue where when a task was dropped outside of a task list it would dissappear, now it just returns to where it was picked up from --- PROGRESS.md | 1 + dashy.db | Bin 98304 -> 98304 bytes screens.jsx | 9 +++++---- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/PROGRESS.md b/PROGRESS.md index ce46470..f856b48 100644 --- a/PROGRESS.md +++ b/PROGRESS.md @@ -69,6 +69,7 @@ 23. **Keyboard Shortcuts:** Added global support for keyboard navigation: - **`Escape`**: Instantly close any open modal (Task Detail, Add Task, Settings, or Audit Logs). - **`n`**: Open the "Add Task" modal from the main dashboard (disabled while typing in inputs). +24. **Drag-and-Drop Stability:** Fixed a bug where tasks would "disappear" if dropped in an invalid area. Tasks now remain visible at their original position if a drop is cancelled. ### Phase 3: Advanced Features - **Real-time Notifications:** Explore WebSockets for task assignments. diff --git a/dashy.db b/dashy.db index 7123f479358c3aff1d2fa2237820b0b5eb36f18d..f7842e7d93f712288d441cd60c5565476c46c51d 100644 GIT binary patch delta 577 zcmZo@U~6b#n;^}2Z=#GdLd#I<1S$ zx{O}a*#j5@xtMyHY#3iN&SvzQIPrzLUt=x1qOq`|v0`GpxkZY3N=jOak%5t!u7Rnp zp|OI2ft9hbm66fphkvD~FJNR8P;IOMt2YFyH#SH$H#0Rb$53xL`N3bA=^q#w`GDqE z!_7A_vrMu~v@pa}Zw51;U(K(v3a%kJ4QRZnu?dC-1E2*;2Jwl>$w?+A2Bz+fl@L9` ziSec;#zu*ThKZ>$(FxL`rU@N4_D3dSsU0B8iFN&o-= delta 256 zcmV+b0ssDhfChko29O&8)R7!R0o1Wzr*8oWlL&Ae2o8V*au5ba^2a%u>moQ@i2DhAe G0b~a$>QMRs diff --git a/screens.jsx b/screens.jsx index 457b3fe..2c5583e 100644 --- a/screens.jsx +++ b/screens.jsx @@ -224,8 +224,9 @@ function OverviewScreen({ tasks, onOpen, onAddFor, density, onMoveTask, dbUsers !draggingTask || t.id !== draggingTask.id)} + // Do not filter out the dragging task; TaskCard handles its own visibility via the 'dragging' prop. + // This ensures the element stays mounted and onDragEnd fires reliably. + tasks={byUser[u.id]} onOpen={onOpen} onAdd={() => onAddFor(u.id)} density={density} @@ -435,7 +436,7 @@ function UserScreen({ user, tasks, onOpen, onAddFor, density, onMoveTask }) {
!draggingTask || t.id !== draggingTask.id)} + tasks={flagged} onOpen={onOpen} density={density} dragOver={dragOverCol === 'flagged'} onDragOver={setDragOverCol} @@ -451,7 +452,7 @@ function UserScreen({ user, tasks, onOpen, onAddFor, density, onMoveTask }) { /> !draggingTask || t.id !== draggingTask.id)} + tasks={open} onOpen={onOpen} density={density} dragOver={dragOverCol === 'open'} onDragOver={setDragOverCol}