tag drop works
This commit is contained in:
@@ -5045,7 +5045,7 @@ const AppLayout = () => {
|
|||||||
detailPanelOpen,
|
detailPanelOpen,
|
||||||
onCloseDetailPanel: handleDetailPanelClose,
|
onCloseDetailPanel: handleDetailPanelClose,
|
||||||
resolveThumbnailUrl: resolveThumbnailUrlForDoc,
|
resolveThumbnailUrl: resolveThumbnailUrlForDoc,
|
||||||
onAssignTagToDocument: handleDocumentTagAttach,
|
onAssignTagToDocument: handleDocumentTagDrop,
|
||||||
onRemoveTagFromDocument: handleTagRemove,
|
onRemoveTagFromDocument: handleTagRemove,
|
||||||
ensureAssetUrl,
|
ensureAssetUrl,
|
||||||
getDocumentAsset,
|
getDocumentAsset,
|
||||||
@@ -5089,7 +5089,7 @@ const AppLayout = () => {
|
|||||||
handleDetailPanelClose,
|
handleDetailPanelClose,
|
||||||
handleDeskDocumentOpen,
|
handleDeskDocumentOpen,
|
||||||
resolveThumbnailUrlForDoc,
|
resolveThumbnailUrlForDoc,
|
||||||
handleDocumentTagAttach,
|
handleDocumentTagDrop,
|
||||||
handleTagRemove,
|
handleTagRemove,
|
||||||
ensureAssetUrl,
|
ensureAssetUrl,
|
||||||
getDocumentAsset,
|
getDocumentAsset,
|
||||||
@@ -5124,7 +5124,7 @@ const AppLayout = () => {
|
|||||||
refreshTags,
|
refreshTags,
|
||||||
handleTagUpdate,
|
handleTagUpdate,
|
||||||
handleTagDelete,
|
handleTagDelete,
|
||||||
handleDocumentTagAttach,
|
handleDocumentTagDrop,
|
||||||
correspondents,
|
correspondents,
|
||||||
refreshCorrespondents,
|
refreshCorrespondents,
|
||||||
handleCorrespondentUpdate,
|
handleCorrespondentUpdate,
|
||||||
@@ -5174,7 +5174,7 @@ const AppLayout = () => {
|
|||||||
refreshTags,
|
refreshTags,
|
||||||
handleTagUpdate,
|
handleTagUpdate,
|
||||||
handleTagDelete,
|
handleTagDelete,
|
||||||
handleDocumentTagAttach,
|
handleDocumentTagDrop,
|
||||||
correspondents,
|
correspondents,
|
||||||
refreshCorrespondents,
|
refreshCorrespondents,
|
||||||
handleCorrespondentUpdate,
|
handleCorrespondentUpdate,
|
||||||
|
|||||||
@@ -105,7 +105,11 @@ const DesktopDocumentCard = ({
|
|||||||
style={colorStyle || undefined}
|
style={colorStyle || undefined}
|
||||||
title={tag.label}
|
title={tag.label}
|
||||||
draggable
|
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)}
|
onDragStart={(event) => onDocTagDragStart(event, doc, tag)}
|
||||||
onDrag={onDocTagDrag}
|
onDrag={onDocTagDrag}
|
||||||
onDragEnd={(event) => onDocTagDragEnd(event)}
|
onDragEnd={(event) => onDocTagDragEnd(event)}
|
||||||
|
|||||||
@@ -1157,7 +1157,11 @@ export const createDesktopSurface = ({
|
|||||||
breadcrumbs: workspaceProps?.breadcrumbs || null,
|
breadcrumbs: workspaceProps?.breadcrumbs || null,
|
||||||
selectionLabel: null,
|
selectionLabel: null,
|
||||||
floatingActions,
|
floatingActions,
|
||||||
content: <DesktopWorkspace {...workspaceProps} />,
|
content: (
|
||||||
|
<DesktopWorkspace
|
||||||
|
{...workspaceProps}
|
||||||
|
/>
|
||||||
|
),
|
||||||
detail,
|
detail,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -46,7 +46,6 @@ export const useDeskPointer = ({
|
|||||||
const pointerMovedRef = useRef(false);
|
const pointerMovedRef = useRef(false);
|
||||||
const longPressTimerRef = useRef(null);
|
const longPressTimerRef = useRef(null);
|
||||||
const longPressActiveRef = useRef(false);
|
const longPressActiveRef = useRef(false);
|
||||||
|
|
||||||
const resetLongPressState = useCallback(() => {
|
const resetLongPressState = useCallback(() => {
|
||||||
if (longPressTimerRef.current) {
|
if (longPressTimerRef.current) {
|
||||||
clearTimeout(longPressTimerRef.current);
|
clearTimeout(longPressTimerRef.current);
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ export const useDeskTagInteractions = ({
|
|||||||
onRemoveTagFromDocument,
|
onRemoveTagFromDocument,
|
||||||
requestCanvasFocus,
|
requestCanvasFocus,
|
||||||
}) => {
|
}) => {
|
||||||
|
|
||||||
const draggingTagRef = useRef(null);
|
const draggingTagRef = useRef(null);
|
||||||
const pendingDocTagDragRef = useRef(null);
|
const pendingDocTagDragRef = useRef(null);
|
||||||
const removalCursorActiveRef = useRef(false);
|
const removalCursorActiveRef = useRef(false);
|
||||||
@@ -237,10 +238,10 @@ export const useDeskTagInteractions = ({
|
|||||||
engine.setPendingTagDocId(null);
|
engine.setPendingTagDocId(null);
|
||||||
|
|
||||||
const payload = parseTagTransferPayload(event);
|
const payload = parseTagTransferPayload(event);
|
||||||
if (!payload) {
|
if (!payload || !payload.id) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
markActiveTagDropHandled(payload.tagId, payload.sourceDocId);
|
markActiveTagDropHandled(payload.id, payload.sourceDocId);
|
||||||
|
|
||||||
if (payload.sourceDocId === doc.id) {
|
if (payload.sourceDocId === doc.id) {
|
||||||
return;
|
return;
|
||||||
@@ -248,7 +249,11 @@ export const useDeskTagInteractions = ({
|
|||||||
|
|
||||||
requestCanvasFocus?.();
|
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],
|
[engine, isTagTransfer, markActiveTagDropHandled, onAssignTagToDocument, requestCanvasFocus],
|
||||||
);
|
);
|
||||||
@@ -260,7 +265,7 @@ export const useDeskTagInteractions = ({
|
|||||||
}
|
}
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
event.dataTransfer.effectAllowed = 'move';
|
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 { x: pointerX, y: pointerY } = getPointerPosition(event, { fallbackToPage: false });
|
||||||
const { clone, offsetX, offsetY } = createDragPreview(event.currentTarget, pointerX, pointerY) || {};
|
const { clone, offsetX, offsetY } = createDragPreview(event.currentTarget, pointerX, pointerY) || {};
|
||||||
|
|||||||
Reference in New Issue
Block a user