diff --git a/libs/components/editor-core/src/editor/commands/block-commands.ts b/libs/components/editor-core/src/editor/commands/block-commands.ts index f156bd627a..bb6ba6eadf 100644 --- a/libs/components/editor-core/src/editor/commands/block-commands.ts +++ b/libs/components/editor-core/src/editor/commands/block-commands.ts @@ -46,12 +46,14 @@ export class BlockCommands { * * remove block by block id * @param {string} blockId + * @param onDelete Delete Block's LeftMenuDraggable * @memberof BlockCommands */ - public async removeBlock(blockId: string) { + public async removeBlock(blockId: string, onDelete?: () => void) { const block = await this._editor.getBlockById(blockId); if (block) { - block.remove(); + onDelete(); + await block.remove(); } } diff --git a/libs/components/editor-plugins/src/menu/left-menu/LeftMenu.tsx b/libs/components/editor-plugins/src/menu/left-menu/LeftMenu.tsx index 731b6ea42e..c951d7600f 100644 --- a/libs/components/editor-plugins/src/menu/left-menu/LeftMenu.tsx +++ b/libs/components/editor-plugins/src/menu/left-menu/LeftMenu.tsx @@ -18,17 +18,21 @@ interface LeftMenuProps { editor?: Virgo; hooks: PluginHooks; blockId: string; + onDelete: () => void; } export function LeftMenu(props: LeftMenuProps) { - const { editor, anchorEl, hooks, blockId, onClose } = props; + const { editor, anchorEl, hooks, blockId, onClose, onDelete } = props; const { t } = useTranslation(); const menu: CascaderItemProps[] = useMemo( () => [ { title: t('Delete'), - callback: () => { - editor.commands.blockCommands.removeBlock(blockId); + callback: async () => { + await editor.commands.blockCommands.removeBlock( + blockId, + onDelete + ); }, shortcut: 'Del', icon: , diff --git a/libs/components/editor-plugins/src/menu/left-menu/LeftMenuDraggable.tsx b/libs/components/editor-plugins/src/menu/left-menu/LeftMenuDraggable.tsx index 71e11e4679..4701c6c312 100644 --- a/libs/components/editor-plugins/src/menu/left-menu/LeftMenuDraggable.tsx +++ b/libs/components/editor-plugins/src/menu/left-menu/LeftMenuDraggable.tsx @@ -165,6 +165,10 @@ export const LeftMenuDraggable = (props: LeftMenuProps) => { setAnchorEl(currentTarget); }; + const onDelete = useCallback(() => { + setBlock(undefined); + }, []); + const onClose = useCallback(() => setAnchorEl(undefined), [setAnchorEl]); useEffect(() => { @@ -241,6 +245,7 @@ export const LeftMenuDraggable = (props: LeftMenuProps) => { editor={props.editor} hooks={props.hooks} onClose={onClose} + onDelete={onDelete} blockId={block.block.id} >