/** * External dependencies */ import React, { Component, PropTypes } from 'react'; import { Link } from 'react-router'; import { bindActionCreators } from 'redux'; import { connect } from 'react-redux'; import classNames from 'classnames'; /** * Internal dependencies */ import { Menu, Toggle, MatchMedia } from '../../../components'; import Footer from '../Footer/Footer'; import * as LayoutActions from '../../../actions/layout'; import './Nav.scss'; /* * @class Displays a hamburger navigation, sidebar menu * @type Presentational Component * @returns Site Navigation */ const Nav = (props) => { /** * Render component * @returns {ReactElement} markup */ const { layout, actions, config } = props; return ( <div className="nav-container"> <MatchMedia maxWidth={1024} values={{ deviceWidth: 1024 }}> <Toggle toggleState={layout.sidebarOpen} toggleAction={actions.toggleSidebar} btnLabel="toggle sidebar" btnIcon="burger" btnIconActive="x" /> <Menu navitems={layout.navitems} open={layout.sidebarOpen} transitionClass="sidebar-transition" wrapperClass="sidebar-wrapper" effectClass="sidebar-effect" config={config} /> </MatchMedia> </div> ); }; /** * propTypes * @property {Object} actions - layout actions * @property {Object} layout - layout state */ Nav.propTypes = { config: PropTypes.object.isRequired, actions: PropTypes.object.isRequired, layout: PropTypes.object.isRequired }; export default Nav;