frontend: fix regression when pointer leaves document while dragging
ci / docker (backend, backend/Dockerfile, backend) (push) Successful in 20s
ci / docker (frontend, frontend/Dockerfile, frontend) (push) Successful in 46s

This commit is contained in:
2025-10-19 23:26:27 +02:00
parent 9a77e76ff4
commit 5970340a17
+19
View File
@@ -210,6 +210,15 @@ const useDocumentDrag = ({
if (!state || state.pointerId !== pointerId) {
return;
}
const capturedTarget = state.capturedTarget;
if (capturedTarget && typeof capturedTarget.releasePointerCapture === 'function') {
try {
capturedTarget.releasePointerCapture(pointerId);
} catch (
// eslint-disable-next-line no-empty
error
) {}
}
dragStateRef.current = null;
setDraggingId((current) => (current === state.docId ? null : current));
syncLayoutSnapshot();
@@ -246,6 +255,15 @@ const useDocumentDrag = ({
}
bringToFront(docId);
const capturedTarget = event.currentTarget instanceof HTMLElement ? event.currentTarget : null;
if (capturedTarget && typeof capturedTarget.setPointerCapture === 'function') {
try {
capturedTarget.setPointerCapture(event.pointerId);
} catch (
// eslint-disable-next-line no-empty
error
) {}
}
dragStateRef.current = {
docId,
pointerId: event.pointerId,
@@ -259,6 +277,7 @@ const useDocumentDrag = ({
width: docWidth,
height: docHeight,
scale: baseScale,
capturedTarget,
};
setDraggingId(docId);
},