Files
AFFiNE-Mirror/blocksuite/affine/widgets/widget-frame-title/src/mount-frame-title-editor.ts
2025-03-28 07:20:34 +00:00

35 lines
1017 B
TypeScript

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);
}