feat: Prevent tag transfers on folders

This commit is contained in:
2025-12-09 01:10:20 +01:00
parent ebc7ce67a1
commit aaa4a9b577
@@ -1,4 +1,5 @@
import React, { type DragEvent } from 'react'; import React, { type DragEvent } from 'react';
import { isTagTransferEvent } from '../tagging/tagTransfer';
import type { DocumentViewLogic } from '../../logic/useDocumentViewLogic'; import type { DocumentViewLogic } from '../../logic/useDocumentViewLogic';
import { useDocumentsCommandContext } from '../../context/DocumentsCommandContext'; import { useDocumentsCommandContext } from '../../context/DocumentsCommandContext';
import { useDocumentsViewStateContext } from '../../context/DocumentsViewStateContext'; import { useDocumentsViewStateContext } from '../../context/DocumentsViewStateContext';
@@ -63,9 +64,26 @@ export const useFolderItemLogic = (props: UseFolderItemLogicProps) => {
event.preventDefault(); event.preventDefault();
onFolderSelect?.(folder.id); onFolderSelect?.(folder.id);
}, },
onDragOver: (event: DragEvent<HTMLElement>) => onFolderDragOver?.(event, folder.id), onDragOver: (event: DragEvent<HTMLElement>) => {
if (isTagTransferEvent(event)) {
event.preventDefault();
event.stopPropagation();
if (event.dataTransfer) {
event.dataTransfer.dropEffect = 'none';
}
return;
}
onFolderDragOver?.(event, folder.id);
},
onDragLeave: onFolderDragLeave, onDragLeave: onFolderDragLeave,
onDrop: (event: DragEvent<HTMLElement>) => onFolderDrop?.(event, folder.id), onDrop: (event: DragEvent<HTMLElement>) => {
if (isTagTransferEvent(event)) {
event.preventDefault();
event.stopPropagation();
return;
}
onFolderDrop?.(event, folder.id);
},
onDragStart: (event: DragEvent<HTMLElement>) => { onDragStart: (event: DragEvent<HTMLElement>) => {
if (canDragFolder) { if (canDragFolder) {
onFolderDragStart?.(event, folder.id); onFolderDragStart?.(event, folder.id);