fix: close guide nav when guide is unmounted and close nav when nav clkd
This commit is contained in:
committed by
Stuart Taylor
parent
b5b3482d0e
commit
6cdfbc87d8
@ -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>
|
||||||
|
@ -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,
|
||||||
|
Reference in New Issue
Block a user