fix: close guide nav when guide is unmounted and close nav when nav clkd

This commit is contained in:
Ahmad Abdolsaheb
2019-02-21 15:00:37 +03:00
committed by Stuart Taylor
parent b5b3482d0e
commit 6cdfbc87d8
2 changed files with 19 additions and 9 deletions

View File

@ -42,6 +42,7 @@ class Header extends Component {
componentWillUnmount() { componentWillUnmount() {
document.removeEventListener('click', this.handleClickOutside); document.removeEventListener('click', this.handleClickOutside);
console.log('header unmount');
} }
toggleDisplayMenu = () => { toggleDisplayMenu = () => {
@ -84,8 +85,12 @@ class Header extends Component {
document.documentElement.clientWidth, document.documentElement.clientWidth,
window.innerWidth || 0 window.innerWidth || 0
); );
console.log(viewportWidth); const {
const { disableSettings, onGuide, displayMenu } = this.props; disableSettings,
onGuide,
displayMenu,
toggleDisplayMenu
} = this.props;
return ( return (
<header className={this.renderClassNames(displayMenu, onGuide)}> <header className={this.renderClassNames(displayMenu, onGuide)}>
<nav id='top-nav'> <nav id='top-nav'>
@ -95,20 +100,20 @@ class Header extends Component {
{disableSettings ? null : <FCCSearch />} {disableSettings ? null : <FCCSearch />}
{onGuide && displayMenu && viewportWidth < 991 ? null : ( {onGuide && displayMenu && viewportWidth < 991 ? null : (
<ul id='top-right-nav'> <ul id='top-right-nav'>
<li> <li onClick={toggleDisplayMenu}>
<Link to='/learn'>Learn</Link> <Link to='/learn'>Learn</Link>
</li> </li>
<li> <li onClick={toggleDisplayMenu}>
<Link external={true} to='/forum'> <Link external={true} to='/forum'>
Forum Forum
</Link> </Link>
</li> </li>
<li> <li onClick={toggleDisplayMenu}>
<Link external={true} to='/news'> <Link external={true} to='/news'>
News News
</Link> </Link>
</li> </li>
<li className='user-state-link'> <li className='user-state-link' onClick={toggleDisplayMenu}>
<UserState disableSettings={disableSettings} /> <UserState disableSettings={disableSettings} />
</li> </li>
</ul> </ul>

View File

@ -3,7 +3,6 @@ import PropTypes from 'prop-types';
import { StaticQuery, graphql } from 'gatsby'; import { StaticQuery, graphql } from 'gatsby';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { bindActionCreators } from 'redux'; import { bindActionCreators } from 'redux';
// import { createSelector } from 'reselect';
import { Grid, Col, Row } from '@freecodecamp/react-bootstrap'; import { Grid, Col, Row } from '@freecodecamp/react-bootstrap';
import SideNav from './components/guide/SideNav'; import SideNav from './components/guide/SideNav';
@ -12,8 +11,6 @@ import Spacer from '../helpers/Spacer';
import 'prismjs/themes/prism.css'; import 'prismjs/themes/prism.css';
import './guide.css'; import './guide.css';
// import { expandedState, displaySideNav } from '../../redux';
import { toggleExpandedState, toggleDisplaySideNav } from './redux'; import { toggleExpandedState, toggleDisplaySideNav } from './redux';
const propTypes = { const propTypes = {
@ -32,6 +29,7 @@ const propTypes = {
) )
}) })
}), }),
displayMenu: PropTypes.bool,
displaySideNav: PropTypes.bool, displaySideNav: PropTypes.bool,
expandedState: PropTypes.object, expandedState: PropTypes.object,
location: PropTypes.object, location: PropTypes.object,
@ -42,6 +40,7 @@ const propTypes = {
const mapStateToProps = state => { const mapStateToProps = state => {
return { return {
expandedState: state.guideNav.expandedState, expandedState: state.guideNav.expandedState,
displayMenu: state.guideNav.displayMenu,
displaySideNav: state.guideNav.displaySideNav displaySideNav: state.guideNav.displaySideNav
}; };
}; };
@ -57,6 +56,12 @@ class GuideLayout extends React.Component {
this.contentRef.focus(); this.contentRef.focus();
}; };
componentWillUnmount() {
if (this.props.displayMenu) {
this.props.toggleDisplaySideNav();
}
}
render() { render() {
let { let {
displaySideNav, displaySideNav,