@kisstar/rc-ui
Version:
UI component library built with React Hooks.
35 lines (34 loc) • 1.44 kB
JavaScript
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;