From 0c86b70fe9a99c78de13f4c9d1130d06effc532d Mon Sep 17 00:00:00 2001 From: Tunglies <77394545+Tunglies@users.noreply.github.com> Date: Sat, 11 Jul 2026 18:58:31 +0800 Subject: [PATCH] refactor(frontend): reuse sortable arrayMove --- .../profile/groups-editor-viewer.tsx | 20 +++++++------------ .../profile/proxies-editor-viewer.tsx | 20 +++++++------------ 2 files changed, 14 insertions(+), 26 deletions(-) diff --git a/src/components/profile/groups-editor-viewer.tsx b/src/components/profile/groups-editor-viewer.tsx index 666ee0e97..1b2e1adbb 100644 --- a/src/components/profile/groups-editor-viewer.tsx +++ b/src/components/profile/groups-editor-viewer.tsx @@ -7,7 +7,11 @@ import { useSensor, useSensors, } from '@dnd-kit/core' -import { SortableContext, sortableKeyboardCoordinates } from '@dnd-kit/sortable' +import { + arrayMove, + SortableContext, + sortableKeyboardCoordinates, +} from '@dnd-kit/sortable' import { VerticalAlignBottomRounded, VerticalAlignTopRounded, @@ -285,16 +289,6 @@ export const GroupsEditorViewer = (props: Props) => { coordinateGetter: sortableKeyboardCoordinates, }), ) - const reorder = ( - list: IProxyGroupConfig[], - startIndex: number, - endIndex: number, - ) => { - const result = Array.from(list) - const [removed] = result.splice(startIndex, 1) - result.splice(endIndex, 0, removed) - return result - } const onPrependDragEnd = async (event: DragEndEvent) => { const { active, over } = event if (over) { @@ -310,7 +304,7 @@ export const GroupsEditorViewer = (props: Props) => { } }) - setPrependSeq(reorder(prependSeq, activeIndex, overIndex)) + setPrependSeq(arrayMove(prependSeq, activeIndex, overIndex)) } } } @@ -328,7 +322,7 @@ export const GroupsEditorViewer = (props: Props) => { overIndex = index } }) - setAppendSeq(reorder(appendSeq, activeIndex, overIndex)) + setAppendSeq(arrayMove(appendSeq, activeIndex, overIndex)) } } } diff --git a/src/components/profile/proxies-editor-viewer.tsx b/src/components/profile/proxies-editor-viewer.tsx index 27b5380e3..a74f2c282 100644 --- a/src/components/profile/proxies-editor-viewer.tsx +++ b/src/components/profile/proxies-editor-viewer.tsx @@ -7,7 +7,11 @@ import { useSensor, useSensors, } from '@dnd-kit/core' -import { SortableContext, sortableKeyboardCoordinates } from '@dnd-kit/sortable' +import { + arrayMove, + SortableContext, + sortableKeyboardCoordinates, +} from '@dnd-kit/sortable' import { VerticalAlignBottomRounded, VerticalAlignTopRounded, @@ -176,16 +180,6 @@ export const ProxiesEditorViewer = (props: Props) => { coordinateGetter: sortableKeyboardCoordinates, }), ) - const reorder = ( - list: IProxyConfig[], - startIndex: number, - endIndex: number, - ) => { - const result = Array.from(list) - const [removed] = result.splice(startIndex, 1) - result.splice(endIndex, 0, removed) - return result - } const onPrependDragEnd = async (event: DragEndEvent) => { const { active, over } = event if (over) { @@ -201,7 +195,7 @@ export const ProxiesEditorViewer = (props: Props) => { } }) - setPrependSeq(reorder(prependSeq, activeIndex, overIndex)) + setPrependSeq(arrayMove(prependSeq, activeIndex, overIndex)) } } } @@ -219,7 +213,7 @@ export const ProxiesEditorViewer = (props: Props) => { overIndex = index } }) - setAppendSeq(reorder(appendSeq, activeIndex, overIndex)) + setAppendSeq(arrayMove(appendSeq, activeIndex, overIndex)) } } }