UNPKG

@kisstar/rc-ui

Version:

UI component library built with React Hooks.

35 lines (34 loc) 1.44 kB
import React, { useCallback, useContext } from 'react'; import classNames from 'classnames'; import MenuContext from './MenuContext'; export var MenuItem = function (props) { var _a; var rootPrefixCls = props.rootPrefixCls, className = props.className, style = props.style, disabled = props.disabled, icon = props.icon, children = props.children, eventKey = props.eventKey; var _b = useContext(MenuContext), onSelect = _b.onSelect, selectedKey = _b.selectedKey; var classes = classNames(rootPrefixCls + "-item", className, (_a = {}, _a[rootPrefixCls + "-item-disabled"] = disabled, _a[rootPrefixCls + "-item-selected"] = eventKey === selectedKey, _a)); var handleClick = useCallback(function (e) { var info = { key: eventKey, domEvent: e, }; if (!disabled) { onSelect(info); } }, [eventKey, disabled, onSelect]); var onKeyDown = useCallback(function (e) { var keyCode = e.keyCode; if (keyCode === 13 && !disabled) { onSelect({ key: eventKey, domEvent: e }); return true; } return undefined; }, [eventKey, disabled, onSelect]); return (React.createElement("li", { role: "menuitem", className: classes, style: style, onClick: handleClick, onKeyDown: onKeyDown }, icon, children)); }; MenuItem.displayName = 'MenuItem'; export default MenuItem;