diff --git a/src/components/ContextMenu/index.js b/src/components/ContextMenu/index.js index d001430f..65df1a67 100644 --- a/src/components/ContextMenu/index.js +++ b/src/components/ContextMenu/index.js @@ -3,6 +3,7 @@ import { pick } from '@utils'; import Editor from '@antv/g6-editor'; import { CONTEXT_MENU_CONTAINER } from '@common/constants'; import BaseComponent from '@components/Base'; +import Menu from './menu'; class ContextMenu extends BaseComponent { contextMenu = null; @@ -34,4 +35,10 @@ class ContextMenu extends BaseComponent { } } +export const NodeMenu = Menu.create('node'); +export const EdgeMenu = Menu.create('edge'); +export const GroupMenu = Menu.create('group'); +export const MultiMenu = Menu.create('multi'); +export const CanvasMenu = Menu.create('canvas'); + export default ContextMenu; diff --git a/src/components/ContextMenu/menu.js b/src/components/ContextMenu/menu.js new file mode 100644 index 00000000..f5f3d3e1 --- /dev/null +++ b/src/components/ContextMenu/menu.js @@ -0,0 +1,31 @@ +import React from 'react'; +import BaseComponent from '@components/Base'; + +class Menu extends BaseComponent { + static create = function (type) { + return class TypedMenu extends Menu { + constructor(props) { + super(props, type); + } + }; + } + + constructor(props, type) { + super(props); + + this.type = type; + } + + render() { + const { children } = this.props; + const { type } = this; + + return ( +
+ {children} +
+ ); + } +} + +export default Menu; diff --git a/src/index.js b/src/index.js index a81330ca..6cf7c69e 100644 --- a/src/index.js +++ b/src/index.js @@ -10,7 +10,13 @@ import Register, { } from '@components/Register'; import Command from '@components/Command'; import Minimap from '@components/Minimap'; -import ContextMenu from '@components/ContextMenu'; +import ContextMenu, { + NodeMenu, + EdgeMenu, + GroupMenu, + MultiMenu, + CanvasMenu, +} from '@components/ContextMenu'; import Toolbar from '@components/Toolbar'; import ItemPanel, { Item } from '@components/ItemPanel'; import DetailPanel, { @@ -35,6 +41,11 @@ export { Command, Minimap, ContextMenu, + NodeMenu, + EdgeMenu, + GroupMenu, + MultiMenu, + CanvasMenu, Toolbar, Item, ItemPanel,