mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-08-18 02:21:51 +08:00
1f45cc5dec
**Directory Structure Changes** - Renamed multiple block-related directories by removing the "block-" prefix: - `block-attachment` → `attachment` - `block-bookmark` → `bookmark` - `block-callout` → `callout` - `block-code` → `code` - `block-data-view` → `data-view` - `block-database` → `database` - `block-divider` → `divider` - `block-edgeless-text` → `edgeless-text` - `block-embed` → `embed`
24 lines
796 B
TypeScript
24 lines
796 B
TypeScript
import type { BlockComponent, EditorHost } from '@blocksuite/std';
|
|
import type { BlockModel } from '@blocksuite/store';
|
|
|
|
// Run the callback until a model's element updated.
|
|
// Please notice that the callback will be called **once the element itself is ready**.
|
|
// The children may be not updated.
|
|
// If you want to wait for the text elements,
|
|
// please use `onModelTextUpdated`.
|
|
export async function onModelElementUpdated(
|
|
editorHost: EditorHost,
|
|
model: BlockModel,
|
|
callback: (block: BlockComponent) => void
|
|
) {
|
|
const page = model.doc;
|
|
if (!page.root) return;
|
|
|
|
const rootComponent = editorHost.view.getBlock(page.root.id);
|
|
if (!rootComponent) return;
|
|
await rootComponent.updateComplete;
|
|
|
|
const element = editorHost.view.getBlock(model.id);
|
|
if (element) callback(element);
|
|
}
|