Files
AFFiNE-Mirror/blocksuite/framework/std/src/extension/block-view.ts
T
2025-03-28 07:20:34 +00:00

34 lines
821 B
TypeScript

import type { ExtensionType } from '@blocksuite/store';
import { BlockViewIdentifier } from '../identifier.js';
import type { BlockViewType } from '../spec/type.js';
/**
* Create a block view extension.
*
* @param flavour The flavour of the block that the view is for.
* @param view Lit literal template for the view. Example: `my-list-block`
*
* The view is a lit template that is used to render the block.
*
* @example
* ```ts
* import { BlockViewExtension } from '@blocksuite/std';
*
* const MyListBlockViewExtension = BlockViewExtension(
* 'affine:list',
* literal`my-list-block`
* );
* ```
*/
export function BlockViewExtension(
flavour: string,
view: BlockViewType
): ExtensionType {
return {
setup: di => {
di.addImpl(BlockViewIdentifier(flavour), () => view);
},
};
}