UNPKG

@atlaskit/editor-plugin-block-menu

Version:

BlockMenu plugin for @atlaskit/editor-core

65 lines (64 loc) 1.95 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.createBlockMenuRegistry = void 0; var _toConsumableArray2 = _interopRequireDefault(require("@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>; * }, * }, * ]); * ``` * */ var createBlockMenuRegistry = exports.createBlockMenuRegistry = function createBlockMenuRegistry() { var components = []; var register = function register(blockMenuComponents) { components.push.apply(components, (0, _toConsumableArray2.default)(blockMenuComponents)); }; return { register: register, components: components }; };