Skip to content

Repository files navigation

rc-menu


react menu component. port from https://github.com/kissyteam/menu

NPM versionbuild statusTest coveragegemnasium depsnode versionnpm download

Screenshot

alt

Usage

importMenu,{SubMenu,MenuItem}from'rc-menu';ReactDOM.render(<Menu><MenuItem>1</MenuItem><SubMenutitle="2"><MenuItem>2-1</MenuItem></SubMenu></Menu>,container);

install

rc-menu

API

Menu props

nametypedefaultdescription
classNameStringadditional css class of root dom node
modeStringverticalone of ["horizontal","inline","vertical-left","vertical-right"]
activeKeyObjectinitial and current active menu item's key.
defaultActiveFirstBooleanfalsewhether active first menu item when show if activeKey is not set or invalid
multipleBooleanfalsewhether allow multiple select
selectableBooleantrueallow selecting menu items
selectedKeysString[][]selected keys of items
defaultSelectedKeysString[][]initial selected keys of items
openKeysString[][]open keys of SubMenuItem
defaultOpenKeysString[][]initial open keys of SubMenuItem
onSelectfunction({key:String, item:ReactComponent, domEvent:Event, selectedKeys:String[]})called when select a menu item
onClickfunction({key:String, item:ReactComponent, domEvent:Event, keyPath: String[]})called when click a menu item
onOpenChange(openKeys:String[]) => voidcalled when open/close sub menu
onDeselectfunction({key:String, item:ReactComponent, domEvent:Event, selectedKeys:String[]})called when deselect a menu item. only called when allow multiple
triggerSubMenuActionEnum { hover, click }hoverwhich action can trigger submenu open/close
openAnimation{enter:function,leave:function}|Stringanimate when sub menu open or close. see rc-animate for object type.
openTransitionStringcss transitionName when sub menu open or close
subMenuOpenDelayNumber0delay time to show popup sub menu. unit: s
subMenuCloseDelayNumber0.1delay time to hide popup sub menu. unit: s
forceSubMenuRenderBooleanfalsewhether to render submenu even if it is not visible
getPopupContainerFunction(menuDOMNode): HTMLElement() => document.bodyWhere to render the DOM node of popup menu when the mode is horizontal or vertical

Menu.Item props

nametypedefaultdescription
classNameStringadditional css class of root dom node
disabledBooleanfalseno effect for click or keydown for this item
keyObjectcorresponding to activeKey
onMouseEnterFunction({eventKey, domEvent})
onMouseLeaveFunction({eventKey, domEvent})

Menu.SubMenu props

nametypedefaultdescription
classNameStringadditional css class of root dom node
titleString/ReactElementsub menu's content
keyObjectcorresponding to activeKey
disabledBooleanfalseno effect for click or keydown for this item
onMouseEnterFunction({eventKey, domEvent})
onMouseLeaveFunction({eventKey, domEvent})
onTitleMouseEnterFunction({eventKey, domEvent})
onTitleMouseLeaveFunction({eventKey, domEvent})
onTitleClickFunction({eventKey, domEvent})

Menu.Divider props

none

Menu.ItemGroup props

nametypedefaultdescription
titleString|React.Elementtitle of item group
childrenReact.Element[]MenuItems belonged to this group

Development

npm install
npm start

Example

http://localhost:8001/examples/index.md

online example: http://react-component.github.io/menu/examples/

Test Case

npm test
npm run chrome-test

Coverage

npm run coverage

open coverage/ dir

License

rc-menu is released under the MIT license.

Releases

Packages

Contributors

Languages