glass-app-manager
Version:
Informatica's Glass Framework CLI for bootstrapping
50 lines (40 loc) • 1.03 kB
JavaScript
// @flow
import React from "react";
import classNames from "classnames";
export type MenuItemProps = {
/**
* Additional classes.
*/
className?: string,
/**
* Label of the item.
*/
children: string,
/**
* True if the item is disabled.
*/
disabled?: boolean,
/**
* Callback to execute when the item is clicked.
*/
onClick: () => void,
};
export default function MenuItem({ className, children, icon, disabled, onClick, ...rest }: MenuItemProps) {
const handleClick = React.useCallback(
e => {
if (!disabled && onClick) {
onClick(e);
}
},
[disabled, onClick]
);
return (
<li className={classNames("menu__item", disabled ? "disabled" : "", className)} onClick={handleClick} {...rest}>
{children}
</li>
);
}
MenuItem.defaultProps = {
disabled: false,
};
MenuItem.displayName = "Menu.Item";