web: fix hamburger menu collapse

This change fixes the hambuger menu when the dashboard is rendered on
a small screen.

Change-Id: I02f004a02c83c7a83698d96d0bc503ac5ba9a4da
This commit is contained in:
Tristan Cacqueray 2018-10-10 03:47:02 +00:00
parent 8b0a30ce3d
commit b5d574a10a
1 changed files with 26 additions and 1 deletions

View File

@ -35,6 +35,22 @@ class App extends React.Component {
dispatch: PropTypes.func
}
state = {
menuCollapsed: true
}
onNavToggleClick = () => {
this.setState({
menuCollapsed: !this.state.menuCollapsed
})
}
onNavClick = () => {
this.setState({
menuCollapsed: true
})
}
constructor() {
super()
this.menu = routes()
@ -49,7 +65,9 @@ class App extends React.Component {
<ul className='nav navbar-nav navbar-primary'>
{this.menu.filter(item => item.title).map(item => (
<li key={item.to} className={item === activeItem ? 'active' : ''}>
<Link to={this.props.tenant.linkPrefix + item.to}>
<Link
to={this.props.tenant.linkPrefix + item.to}
onClick={this.onNavClick}>
{item.title}
</Link>
</li>
@ -114,6 +132,7 @@ class App extends React.Component {
}
render() {
const { menuCollapsed } = this.state
const { tenant } = this.props
if (typeof tenant.name === 'undefined') {
return (<h2>Loading...</h2>)
@ -123,6 +142,7 @@ class App extends React.Component {
<React.Fragment>
<Masthead
iconImg={logo}
onNavToggleClick={this.onNavToggleClick}
navToggle
thin
>
@ -144,6 +164,11 @@ class App extends React.Component {
)}
</ul>
</div>
{!menuCollapsed && (
<div className='collapse navbar-collapse navbar-collapse-1 in'>
{tenant.name && this.renderMenu()}
</div>
)}
</Masthead>
<div className='container-fluid container-cards-pf'>
{this.renderContent()}