mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-20 03:26:47 +08:00
refactor(editor): unify directories naming (#11516)
**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`
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
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);
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
export * from './callback';
|
||||
export * from './types';
|
||||
@@ -0,0 +1,7 @@
|
||||
import type { RootBlockComponent } from '../types.js';
|
||||
|
||||
export function getClosestRootBlockComponent(
|
||||
el: HTMLElement
|
||||
): RootBlockComponent | null {
|
||||
return el.closest('affine-edgeless-root, affine-page-root');
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
import { BookmarkBlockComponent } from '@blocksuite/affine-block-bookmark';
|
||||
import {
|
||||
EmbedFigmaBlockComponent,
|
||||
EmbedGithubBlockComponent,
|
||||
EmbedHtmlBlockComponent,
|
||||
EmbedLinkedDocBlockComponent,
|
||||
EmbedLoomBlockComponent,
|
||||
EmbedSyncedDocBlockComponent,
|
||||
EmbedYoutubeBlockComponent,
|
||||
type LinkableEmbedBlockComponent,
|
||||
} from '@blocksuite/affine-block-embed';
|
||||
import type { BlockComponent } from '@blocksuite/std';
|
||||
|
||||
export type BuiltInEmbedBlockComponent =
|
||||
| BookmarkBlockComponent
|
||||
| LinkableEmbedBlockComponent
|
||||
| EmbedHtmlBlockComponent;
|
||||
|
||||
export function isEmbedCardBlockComponent(
|
||||
block: BlockComponent
|
||||
): block is BuiltInEmbedBlockComponent {
|
||||
return (
|
||||
block instanceof BookmarkBlockComponent ||
|
||||
block instanceof EmbedFigmaBlockComponent ||
|
||||
block instanceof EmbedGithubBlockComponent ||
|
||||
block instanceof EmbedHtmlBlockComponent ||
|
||||
block instanceof EmbedLoomBlockComponent ||
|
||||
block instanceof EmbedYoutubeBlockComponent ||
|
||||
block instanceof EmbedLinkedDocBlockComponent ||
|
||||
block instanceof EmbedSyncedDocBlockComponent
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user