mirror of
https://github.com/open-webui/open-webui.git
synced 2026-07-23 09:10:55 -05:00
fix(chat): prevent sortable sidebar drags from triggering file upload overlay (#25675)
Add a custom MIME type (application/x-open-webui-drag) to intentional chat and folder drag sources. The onDragOver handler in MessageInput now checks for this type instead of the generic text/plain, which SortableJS also sets during reorder operations for pinned menu items (Notes, Workspace) and pinned Models.
This commit is contained in:
@@ -857,8 +857,13 @@
|
||||
const onDragOver = (e: DragEvent) => {
|
||||
e.preventDefault();
|
||||
|
||||
// Check if a file or a sidebar chat item is being dragged.
|
||||
if (e.dataTransfer?.types?.includes('Files') || e.dataTransfer?.types?.includes('text/plain')) {
|
||||
// Check if a file or a sidebar chat/folder item is being dragged.
|
||||
// Use a custom MIME type to distinguish intentional drags from SortableJS reorder drags
|
||||
// (e.g. Notes, Workspace, pinned Models), which also set 'text/plain'.
|
||||
if (
|
||||
e.dataTransfer?.types?.includes('Files') ||
|
||||
e.dataTransfer?.types?.includes('application/x-open-webui-drag')
|
||||
) {
|
||||
dragged = true;
|
||||
} else {
|
||||
dragged = false;
|
||||
|
||||
@@ -88,6 +88,10 @@
|
||||
} finally {
|
||||
draggedOver = false;
|
||||
}
|
||||
|
||||
// Only process the first non-file item; all share the same
|
||||
// text/plain payload, so continuing would duplicate the drop.
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -266,6 +266,7 @@
|
||||
id: id
|
||||
})
|
||||
);
|
||||
event.dataTransfer.setData('application/x-open-webui-drag', '');
|
||||
|
||||
dragged = true;
|
||||
itemElement.style.opacity = '0.5'; // Optional: Visual cue to show it's being dragged
|
||||
|
||||
@@ -206,6 +206,10 @@
|
||||
} catch (error) {
|
||||
console.log('Error parsing dataTransfer:', error);
|
||||
}
|
||||
|
||||
// Only process the first non-file item; all share the same
|
||||
// text/plain payload, so continuing would duplicate the move.
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -243,6 +247,7 @@
|
||||
id: folderId
|
||||
})
|
||||
);
|
||||
event.dataTransfer.setData('application/x-open-webui-drag', '');
|
||||
|
||||
dragged = true;
|
||||
folderElement.style.opacity = '0.5'; // Optional: Visual cue to show it's being dragged
|
||||
|
||||
Reference in New Issue
Block a user