diff --git a/packages/design-system/src/components/primitives/dnd/use-drag.ts b/packages/design-system/src/components/primitives/dnd/use-drag.ts index 57c603df27..b469a781df 100644 --- a/packages/design-system/src/components/primitives/dnd/use-drag.ts +++ b/packages/design-system/src/components/primitives/dnd/use-drag.ts @@ -190,6 +190,17 @@ export const useDrag = ( }; }, []); + useEffect( + () => () => { + // A component can be disposed of during dragging + // (e.g., by pressing Escape or closing the components panel while dragging). + if (state.current.status === "dragging") { + end(true); + } + }, + [end] + ); + useEffect(() => { if (rootElement !== null) { rootElement.addEventListener("pointerdown", handlePointerDown);