diff --git a/frontend/src/app/AppLayout.jsx b/frontend/src/app/AppLayout.jsx index 3ce165c..b968060 100644 --- a/frontend/src/app/AppLayout.jsx +++ b/frontend/src/app/AppLayout.jsx @@ -5045,7 +5045,7 @@ const AppLayout = () => { detailPanelOpen, onCloseDetailPanel: handleDetailPanelClose, resolveThumbnailUrl: resolveThumbnailUrlForDoc, - onAssignTagToDocument: handleDocumentTagAttach, + onAssignTagToDocument: handleDocumentTagDrop, onRemoveTagFromDocument: handleTagRemove, ensureAssetUrl, getDocumentAsset, @@ -5089,7 +5089,7 @@ const AppLayout = () => { handleDetailPanelClose, handleDeskDocumentOpen, resolveThumbnailUrlForDoc, - handleDocumentTagAttach, + handleDocumentTagDrop, handleTagRemove, ensureAssetUrl, getDocumentAsset, @@ -5124,7 +5124,7 @@ const AppLayout = () => { refreshTags, handleTagUpdate, handleTagDelete, - handleDocumentTagAttach, + handleDocumentTagDrop, correspondents, refreshCorrespondents, handleCorrespondentUpdate, @@ -5174,7 +5174,7 @@ const AppLayout = () => { refreshTags, handleTagUpdate, handleTagDelete, - handleDocumentTagAttach, + handleDocumentTagDrop, correspondents, refreshCorrespondents, handleCorrespondentUpdate, diff --git a/frontend/src/desktop/DesktopDocumentCard.jsx b/frontend/src/desktop/DesktopDocumentCard.jsx index 8051b88..8919c87 100644 --- a/frontend/src/desktop/DesktopDocumentCard.jsx +++ b/frontend/src/desktop/DesktopDocumentCard.jsx @@ -105,7 +105,11 @@ const DesktopDocumentCard = ({ style={colorStyle || undefined} title={tag.label} draggable - onPointerDown={(event) => onDocTagPointerDown(event, doc, tag)} + data-desk-tag-chip="true" + onPointerDownCapture={(event) => { + event.stopPropagation(); + onDocTagPointerDown(event, doc, tag); + }} onDragStart={(event) => onDocTagDragStart(event, doc, tag)} onDrag={onDocTagDrag} onDragEnd={(event) => onDocTagDragEnd(event)} diff --git a/frontend/src/desktop/DesktopWorkspace.jsx b/frontend/src/desktop/DesktopWorkspace.jsx index 06d65cf..86b952a 100644 --- a/frontend/src/desktop/DesktopWorkspace.jsx +++ b/frontend/src/desktop/DesktopWorkspace.jsx @@ -1157,7 +1157,11 @@ export const createDesktopSurface = ({ breadcrumbs: workspaceProps?.breadcrumbs || null, selectionLabel: null, floatingActions, - content: , + content: ( + + ), detail, }); diff --git a/frontend/src/desktop/pointer/useDeskPointer.js b/frontend/src/desktop/pointer/useDeskPointer.js index c1abb25..0206a1c 100644 --- a/frontend/src/desktop/pointer/useDeskPointer.js +++ b/frontend/src/desktop/pointer/useDeskPointer.js @@ -46,7 +46,6 @@ export const useDeskPointer = ({ const pointerMovedRef = useRef(false); const longPressTimerRef = useRef(null); const longPressActiveRef = useRef(false); - const resetLongPressState = useCallback(() => { if (longPressTimerRef.current) { clearTimeout(longPressTimerRef.current); diff --git a/frontend/src/desktop/tags/useDeskTagInteractions.js b/frontend/src/desktop/tags/useDeskTagInteractions.js index 9a2750d..f412b3e 100644 --- a/frontend/src/desktop/tags/useDeskTagInteractions.js +++ b/frontend/src/desktop/tags/useDeskTagInteractions.js @@ -45,6 +45,7 @@ export const useDeskTagInteractions = ({ onRemoveTagFromDocument, requestCanvasFocus, }) => { + const draggingTagRef = useRef(null); const pendingDocTagDragRef = useRef(null); const removalCursorActiveRef = useRef(false); @@ -237,10 +238,10 @@ export const useDeskTagInteractions = ({ engine.setPendingTagDocId(null); const payload = parseTagTransferPayload(event); - if (!payload) { + if (!payload || !payload.id) { return; } - markActiveTagDropHandled(payload.tagId, payload.sourceDocId); + markActiveTagDropHandled(payload.id, payload.sourceDocId); if (payload.sourceDocId === doc.id) { return; @@ -248,7 +249,11 @@ export const useDeskTagInteractions = ({ requestCanvasFocus?.(); - void safeInvoke(onAssignTagToDocument, doc.id, payload.tagId, { sourceDocId: payload.sourceDocId }); + void safeInvoke(onAssignTagToDocument, doc.id, { + id: payload.id, + label: payload.label || '', + sourceDocId: payload.sourceDocId ?? null, + }); }, [engine, isTagTransfer, markActiveTagDropHandled, onAssignTagToDocument, requestCanvasFocus], ); @@ -260,7 +265,7 @@ export const useDeskTagInteractions = ({ } event.stopPropagation(); event.dataTransfer.effectAllowed = 'move'; - writeTagTransferData(event.dataTransfer, { docId: doc.id, tagId: tag.id }); + writeTagTransferData(event.dataTransfer, tag, doc.id); const { x: pointerX, y: pointerY } = getPointerPosition(event, { fallbackToPage: false }); const { clone, offsetX, offsetY } = createDragPreview(event.currentTarget, pointerX, pointerY) || {};