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) || {};