tag drop works
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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)}
|
||||
|
||||
@@ -1157,7 +1157,11 @@ export const createDesktopSurface = ({
|
||||
breadcrumbs: workspaceProps?.breadcrumbs || null,
|
||||
selectionLabel: null,
|
||||
floatingActions,
|
||||
content: <DesktopWorkspace {...workspaceProps} />,
|
||||
content: (
|
||||
<DesktopWorkspace
|
||||
{...workspaceProps}
|
||||
/>
|
||||
),
|
||||
detail,
|
||||
});
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) || {};
|
||||
|
||||
Reference in New Issue
Block a user