import React from 'react';
import classNames from 'classnames';
import PropTypes from 'prop-types';
import uuid from 'uuid/v4';
import { Consumer } from './context';
class NestedDropdownSubmenu extends React.Component {
componentDidMount() {
this.id = uuid();
}
render() {
const {
tag: Tag,
subMenuTag: SubMenuTag,
title,
children,
className,
openId,
onOpen
} = this.props;
const itemClass = classNames(className, 'nested-dropdown__submenu-item', {
'nested-dropdown__submenu-item--open': openId === this.id
});
const linkClass = classNames('nested-dropdown__submenu-item__link', 'dropdown-item');
return (
{ onOpen(this.id) } }
>
{ title }
{ children }
);
}
}
NestedDropdownSubmenu.propTypes = {
children: PropTypes.node,
title: PropTypes.oneOfType([
PropTypes.string,
PropTypes.node
]),
tag: PropTypes.oneOfType([
PropTypes.string,
PropTypes.func
]),
subMenuTag: PropTypes.oneOfType([
PropTypes.string,
PropTypes.func
]),
className: PropTypes.string,
// Context Provided:
openId: PropTypes.string,
onOpen: PropTypes.func.isRequired
};
NestedDropdownSubmenu.defaultProps = {
tag: "div",
subMenuTag: "div"
};
const ContextNestedDropdownSubmenu = (props) => (
{
(contextProps) => (
)
}
);
export {
ContextNestedDropdownSubmenu as NestedDropdownSubmenu
};