fix(libs): remove line after drop

This commit is contained in:
LuciNyan
2022-08-12 23:27:27 +08:00
parent 5cec5a363d
commit 67f0a2516b

View File

@@ -4,7 +4,7 @@ import {
PluginHooks, PluginHooks,
Virgo, Virgo,
} from '@toeverything/components/editor-core'; } from '@toeverything/components/editor-core';
import { Point } from '@toeverything/utils'; import { Point, sleep } from '@toeverything/utils';
import { GroupDirection } from '@toeverything/framework/virgo'; import { GroupDirection } from '@toeverything/framework/virgo';
import React, { useCallback, useEffect, useRef, useState } from 'react'; import React, { useCallback, useEffect, useRef, useState } from 'react';
import { DragItem } from './DragItem'; import { DragItem } from './DragItem';
@@ -75,21 +75,6 @@ export const GroupMenu = function ({ editor, hooks }: GroupMenuProps) {
[editor, groupBlock] [editor, groupBlock]
); );
const handleRootDrop = useCallback(
async (e: React.DragEvent<Element>) => {
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 handleRootMouseLeave = useCallback(() => setGroupBlock(null), []);
const handleRootDragEnd = () => { const handleRootDragEnd = () => {
@@ -128,7 +113,6 @@ export const GroupMenu = function ({ editor, hooks }: GroupMenuProps) {
handleRootMouseMove, handleRootMouseMove,
handleRootMouseDown, handleRootMouseDown,
handleRootDragOver, handleRootDragOver,
handleRootDrop,
handleRootMouseLeave, handleRootMouseLeave,
]); ]);
@@ -170,7 +154,10 @@ export const GroupMenu = function ({ editor, hooks }: GroupMenuProps) {
setShowMenu(false); setShowMenu(false);
if (groupBlock) { if (groupBlock) {
const unobserve = groupBlock.onUpdate(() => setGroupBlock(null)); const unobserve = groupBlock.onUpdate(async () => {
await sleep();
setGroupBlock(null);
});
return unobserve; return unobserve;
} }
return undefined; return undefined;