feat: Prevent tag transfers on folders
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user