From 96aebb8d61837013a19b42e12e9afe07c497a1c2 Mon Sep 17 00:00:00 2001 From: sagit <36596628+Sagit-chu@users.noreply.github.com> Date: Wed, 4 Mar 2026 16:49:03 +0800 Subject: [PATCH] fix: handle drag-and-drop order correctly in compact mode (#264) --- vite-frontend/src/pages/forward.tsx | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/vite-frontend/src/pages/forward.tsx b/vite-frontend/src/pages/forward.tsx index a662c70..fbcb6af 100644 --- a/vite-frontend/src/pages/forward.tsx +++ b/vite-frontend/src/pages/forward.tsx @@ -2187,15 +2187,27 @@ export default function ForwardPage() { } } - const oldIndex = forwardOrder.indexOf(activeId); - const newIndex = forwardOrder.indexOf(overId); + let oldIndex: number; + let newIndex: number; + let currentOrder: number[]; + + if (compactMode) { + currentOrder = sortedForwards.map((f) => f.id); + oldIndex = currentOrder.indexOf(activeId); + newIndex = currentOrder.indexOf(overId); + } else { + currentOrder = forwardOrder; + oldIndex = forwardOrder.indexOf(activeId); + newIndex = forwardOrder.indexOf(overId); + } if (oldIndex !== -1 && newIndex !== -1 && oldIndex !== newIndex) { - const newOrder = arrayMove(forwardOrder, oldIndex, newIndex); + const newOrder = arrayMove(currentOrder, oldIndex, newIndex); - setForwardOrder(newOrder); - - saveOrder(FORWARD_ORDER_KEY, newOrder); + if (!compactMode) { + setForwardOrder(newOrder); + saveOrder(FORWARD_ORDER_KEY, newOrder); + } // 持久化到数据库 try {