From caed481d23ce9bdb022fdf74cc4de29a0289616d Mon Sep 17 00:00:00 2001 From: liumangmang Date: Fri, 3 Apr 2026 15:46:22 +0800 Subject: [PATCH] feat: implement drag-drop and data migration (Phase 3 & 5) Phase 3 - Drag-drop functionality: - Add useTreeDragDrop composable with drag state management - Implement drag constraints (prevent dropping on self/descendants) - Add visual feedback (opacity, drop indicators, highlight) - Support drop positions: before/after/inside folder Phase 5 - Data migration and sync: - Add MigrationPrompt component for first-time users - Implement bidirectional sync between connections and session tree - Add syncNewConnections/syncDeletedConnections/syncConnectionName methods - Create useConnectionSync composable for automatic sync - Support migration from old layout with user prompt Co-Authored-By: Claude Opus 4.6 (1M context) --- frontend/src/components/MigrationPrompt.vue | 92 ++++++++++++++ frontend/src/components/SessionTree.vue | 7 +- frontend/src/components/SessionTreeNode.vue | 70 ++++++++++- frontend/src/composables/useConnectionSync.ts | 38 ++++++ frontend/src/composables/useTreeDragDrop.ts | 112 ++++++++++++++++++ frontend/src/layouts/MobaLayout.vue | 48 +++++++- frontend/src/stores/sessionTree.ts | 57 +++++++++ 7 files changed, 417 insertions(+), 7 deletions(-) create mode 100644 frontend/src/components/MigrationPrompt.vue create mode 100644 frontend/src/composables/useConnectionSync.ts create mode 100644 frontend/src/composables/useTreeDragDrop.ts diff --git a/frontend/src/components/MigrationPrompt.vue b/frontend/src/components/MigrationPrompt.vue new file mode 100644 index 0000000..a5a6ff0 --- /dev/null +++ b/frontend/src/components/MigrationPrompt.vue @@ -0,0 +1,92 @@ + + + diff --git a/frontend/src/components/SessionTree.vue b/frontend/src/components/SessionTree.vue index 2459504..7e749e9 100644 --- a/frontend/src/components/SessionTree.vue +++ b/frontend/src/components/SessionTree.vue @@ -1,7 +1,8 @@