mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-21 12:06:35 +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`
32 lines
804 B
TypeScript
32 lines
804 B
TypeScript
import {
|
|
createIdentifier,
|
|
type ServiceIdentifier,
|
|
} from '@blocksuite/global/di';
|
|
import type {
|
|
GfxLocalElementModel,
|
|
GfxPrimitiveElementModel,
|
|
} from '@blocksuite/std/gfx';
|
|
import type { ExtensionType } from '@blocksuite/store';
|
|
|
|
import type { ElementRenderer } from '../renderer/elements';
|
|
|
|
export const ElementRendererIdentifier =
|
|
createIdentifier<unknown>('element-renderer');
|
|
|
|
export const ElementRendererExtension = <
|
|
T extends GfxPrimitiveElementModel | GfxLocalElementModel,
|
|
>(
|
|
id: string,
|
|
renderer: ElementRenderer<T>
|
|
): ExtensionType & {
|
|
identifier: ServiceIdentifier<ElementRenderer<T>>;
|
|
} => {
|
|
const identifier = ElementRendererIdentifier<ElementRenderer<T>>(id);
|
|
return {
|
|
setup: di => {
|
|
di.addImpl(identifier, () => renderer);
|
|
},
|
|
identifier,
|
|
};
|
|
};
|