From f9ddda8e056520414a6f0f1166a85bcfba6ea8cf Mon Sep 17 00:00:00 2001 From: curo1305 Date: Tue, 16 Jun 2026 08:23:36 +0200 Subject: [PATCH] feat(10-11): add click-after-drag guard + teleport folder picker to StorageBrowser - Guard file-row click: draggingFile ? null : emit('file-open', file) - Add onFileDragEnd() with nextTick reset to prevent click-after-drag navigation - Update onDropDocOnFolder to defer draggingFile reset via await nextTick() - Replace absolute folder picker with Teleport to body + getBoundingClientRect positioning - Add scroll/resize listeners to reposition picker on window scroll - All 6 UX-11 dragmove tests now pass --- .../src/components/storage/StorageBrowser.vue | 119 ++++++++++++++---- 1 file changed, 93 insertions(+), 26 deletions(-) diff --git a/frontend/src/components/storage/StorageBrowser.vue b/frontend/src/components/storage/StorageBrowser.vue index f3fb4cf..d22cc7d 100644 --- a/frontend/src/components/storage/StorageBrowser.vue +++ b/frontend/src/components/storage/StorageBrowser.vue @@ -141,9 +141,9 @@ :draggable="mode === 'local'" class="px-4 py-2.5 grid grid-cols-[2rem_1fr_6rem_8rem_6rem] gap-3 items-center hover:bg-gray-50 group cursor-pointer transition-colors select-none" :class="{ 'opacity-50': draggingFile?.id === file.id }" - @click="$emit('file-open', file)" + @click="draggingFile ? null : $emit('file-open', file)" @dragstart="mode === 'local' ? onFileDragStart(file, $event) : null" - @dragend="draggingFile = null; dragOverFolderId = null" + @dragend="onFileDragEnd" >
@@ -185,7 +185,7 @@
-
- - -

No folders yet

-
+ + + +
+ + +

No folders yet

+
+