diff --git a/libs/components/editor-plugins/src/menu/group-menu/GropuMenu.tsx b/libs/components/editor-plugins/src/menu/group-menu/GropuMenu.tsx index 781c2c3a25..118600aaa5 100644 --- a/libs/components/editor-plugins/src/menu/group-menu/GropuMenu.tsx +++ b/libs/components/editor-plugins/src/menu/group-menu/GropuMenu.tsx @@ -4,7 +4,7 @@ import { PluginHooks, Virgo, } from '@toeverything/components/editor-core'; -import { Point } from '@toeverything/utils'; +import { Point, sleep } from '@toeverything/utils'; import { GroupDirection } from '@toeverything/framework/virgo'; import React, { useCallback, useEffect, useRef, useState } from 'react'; import { DragItem } from './DragItem'; @@ -75,21 +75,6 @@ export const GroupMenu = function ({ editor, hooks }: GroupMenuProps) { [editor, groupBlock] ); - const handleRootDrop = useCallback( - async (e: React.DragEvent) => { - let groupBlockOnDrop = null; - if (editor.dragDropManager.isDragGroup(e)) { - groupBlockOnDrop = await editor.getGroupBlockByPoint( - new Point(e.clientX, e.clientY) - ); - if (groupBlockOnDrop?.id === groupBlock?.id) { - groupBlockOnDrop = null; - } - } - }, - [editor, groupBlock] - ); - const handleRootMouseLeave = useCallback(() => setGroupBlock(null), []); const handleRootDragEnd = () => { @@ -128,7 +113,6 @@ export const GroupMenu = function ({ editor, hooks }: GroupMenuProps) { handleRootMouseMove, handleRootMouseDown, handleRootDragOver, - handleRootDrop, handleRootMouseLeave, ]); @@ -170,7 +154,10 @@ export const GroupMenu = function ({ editor, hooks }: GroupMenuProps) { setShowMenu(false); if (groupBlock) { - const unobserve = groupBlock.onUpdate(() => setGroupBlock(null)); + const unobserve = groupBlock.onUpdate(async () => { + await sleep(); + setGroupBlock(null); + }); return unobserve; } return undefined;