mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-15 17:16:16 +08:00
205cd7a86d
Closes: BS-2946
34 lines
821 B
TypeScript
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);
|
|
},
|
|
};
|
|
}
|