@atlaskit/editor-plugin-block-menu
Version:
BlockMenu plugin for @atlaskit/editor-core
65 lines (64 loc) • 1.95 kB
JavaScript
;
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
};
};