import React, { Component, PropTypes } from 'react'; import classnames from 'classnames'; import userInterface from 'interfaces/user'; import Icon from 'components/icons/Icon'; import navItems from './navItems'; class SiteNavSidePanel extends Component { static propTypes = { onNavItemClick: PropTypes.func, pathname: PropTypes.string, user: userInterface, }; constructor (props) { super(props); const { user: { admin } } = this.props; this.userNavItems = navItems(admin); this.state = { showSubItems: false, userMenuOpened: false, }; } setSubNavClass = (showSubItems) => { return showSubItems ? 'sub-nav sub-nav--expanded' : 'sub-nav'; } toggleShowSubItems = (showSubItems) => { return (evt) => { evt.preventDefault(); this.setState({ showSubItems }); return false; }; } toggleUserMenu = () => { const { userMenuOpened } = this.state; this.setState({ userMenuOpened: !userMenuOpened }); } renderNavItem = (navItem) => { const { icon, name, subItems } = navItem; const { onNavItemClick, pathname } = this.props; const { renderSubItems } = this; const active = navItem.location.regex.test(pathname); const navItemBaseClass = 'site-nav-item'; const navItemClasses = classnames( `${navItemBaseClass}`, { [`${navItemBaseClass}--active`]: active } ); return (