react-mdl
Version:
React Components wrapper for Material Design Lite UI
39 lines (32 loc) • 1.13 kB
JavaScript
import React, { PropTypes } from 'react';
import classNames from 'classnames';
import mdlUpgrade from './utils/mdlUpgrade';
import basicClassCreator from './utils/basicClassCreator';
class Menu extends React.Component {
static propTypes = {
align: PropTypes.oneOf(['left', 'right']),
className: PropTypes.string,
ripple: PropTypes.bool,
target: PropTypes.string.isRequired,
valign: PropTypes.oneOf(['bottom', 'top'])
};
static defaultProps = {
align: 'left',
valign: 'bottom'
};
render() {
const { align, children, className, ripple,
target, valign, ...otherProps } = this.props;
const classes = classNames('mdl-menu mdl-js-menu', {
[`mdl-menu--${valign}-${align}`]: true,
'mdl-js-ripple-effect': ripple
}, className);
return (
<ul className={classes} data-mdl-for={target} {...otherProps}>
{children}
</ul>
);
}
}
export default mdlUpgrade(Menu);
export const MenuItem = basicClassCreator('MenuItem', 'mdl-menu__item', 'li');