From 7b0387541c1db15e3a2970374f43a032147d94fa Mon Sep 17 00:00:00 2001 From: pengx17 Date: Mon, 16 Dec 2024 10:23:31 +0000 Subject: [PATCH] fix(core): redudant drop target register (#9177) fix the following issue. root cause is that options.element is being reused when cleaning up, but if its value comes from a ref, it might be null at that point. ![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/T2klNLEk0wxLh4NRDzhk/1739c4e0-9ba8-4e27-8944-c6022644b40d.png) --- packages/frontend/component/src/ui/dnd/drop-target.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/frontend/component/src/ui/dnd/drop-target.ts b/packages/frontend/component/src/ui/dnd/drop-target.ts index daf0efd6c9..6b758ab114 100644 --- a/packages/frontend/component/src/ui/dnd/drop-target.ts +++ b/packages/frontend/component/src/ui/dnd/drop-target.ts @@ -231,9 +231,13 @@ export const useDropTarget = ( const dropTargetOptions = useMemo(() => { const wrappedCanDrop = dropTargetGet(options.canDrop, options); + let _element: HTMLElement | null = null; return { get element() { - return dropTargetRef.current; + if (!_element) { + _element = dropTargetRef.current; + } + return _element; }, canDrop: wrappedCanDrop ? (args: DropTargetGetFeedback) => {