@atlaskit/editor-plugin-block-menu
Version:
BlockMenu plugin for @atlaskit/editor-core
58 lines • 1.67 kB
JavaScript
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
/**
* Create a simple registry for block menu components.
*
* @returns A registry object with a `register` method and a `components` array.
*
* @example
* ```ts
* const registry = createBlockMenuRegistry();
* registry.register(
* [{
* type: 'block-menu-section' as const,
* key: 'block-menu-section-format',
* rank: 100,
* component: ({ children }: { children: React.ReactNode }) => {
* return <ToolbarDropdownItemSection>{children}</ToolbarDropdownItemSection>;
* },
* },
* {
* type: 'block-menu-nested' as const,
* key: 'nested-menu',
* parent: {
* type: 'block-menu-section' as const,
* key: 'block-menu-section-format',
* rank: 100,
* },
* component: () => {
* return (
* <ToolbarNestedDropdownMenu>{...}</ToolbarNestedDropdownMenu>
* );
* },
* },
* {
* type: 'block-menu-item' as const,
* key: 'block-menu-item-create-jira',
* parent: {
* type: 'block-menu-section' as const,
* key: 'block-menu-section-format',
* rank: 200,
* },
* component: () => {
* return <ToolbarDropdownItem elemBefore={<JiraIcon label="" />}>Create Jira work item</ToolbarDropdownItem>;
* },
* },
* ]);
* ```
*
*/
export var createBlockMenuRegistry = function createBlockMenuRegistry() {
var components = [];
var register = function register(blockMenuComponents) {
components.push.apply(components, _toConsumableArray(blockMenuComponents));
};
return {
register: register,
components: components
};
};