import type { FrameBlockModel } from '@blocksuite/affine-model'; import { BlockSuiteError } from '@blocksuite/global/exceptions'; import type { BlockComponent } from '@blocksuite/std'; import { GfxControllerIdentifier } from '@blocksuite/std/gfx'; import { EdgelessFrameTitleEditor } from './edgeless-frame-title-editor'; export function mountFrameTitleEditor( frame: FrameBlockModel, edgeless: BlockComponent ) { const mountElm = edgeless.querySelector('.edgeless-mount-point'); if (!mountElm) { throw new BlockSuiteError( BlockSuiteError.ErrorCode.ValueNotExists, "edgeless block's mount point does not exist" ); } const gfx = edgeless.std.get(GfxControllerIdentifier); // @ts-expect-error TODO: refactor gfx tool gfx.tool.setTool('default'); gfx.selection.set({ elements: [frame.id], editing: true, }); const frameEditor = new EdgelessFrameTitleEditor(); frameEditor.frameModel = frame; frameEditor.edgeless = edgeless; mountElm.append(frameEditor); }