Skip to content

Commit

Permalink
Break out menu to clean up router
Browse files Browse the repository at this point in the history
  • Loading branch information
dev01d committed Jan 14, 2019
1 parent 064c689 commit 09dee70
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 38 deletions.
44 changes: 44 additions & 0 deletions src/components/Sidebar.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import React, { Component } from 'react'
import { Link } from 'react-router-dom'
import { stack as Menu } from 'react-burger-menu'
import '../styles/Sidebar.css'

export default class Sidebar extends Component {
constructor(props) {
super(props)
this.state = {
menuOpen: false
}
}
handleStateChange(state) {
this.setState({ menuOpen: state.isOpen })
}
closeMenu() {
this.setState({ menuOpen: false })
}
toggleMenu() {
this.setState({ menuOpen: !this.state.menuOpen })
}
render() {
return (
<Menu
width={140}
isOpen={false}
pageWrapId={'page-wrap'}
outerContainerId={'App'}
isOpen={this.state.menuOpen}
onStateChange={state => this.handleStateChange(state)}
>
<Link className="menu-item" to="/">
<a onClick={() => this.closeMenu()}>Home</a>
</Link>
<Link className="menu-item" to="/about">
<a onClick={() => this.closeMenu()}>About</a>
</Link>
<Link className="menu-item" to="/gallery">
<a onClick={() => this.closeMenu()}>Gallery</a>
</Link>
</Menu>
)
}
}
44 changes: 6 additions & 38 deletions src/router/AppRouter.jsx
Original file line number Diff line number Diff line change
@@ -1,49 +1,17 @@
import React, { Component } from 'react'
import { BrowserRouter, Route, Link, Switch, Redirect } from 'react-router-dom'
import { stack as Menu } from 'react-burger-menu'
import App from '../components/App'
import About from '../components/AboutPage'
import Gallery from '../components/GalleryPage'
import { BrowserRouter, Route, Switch, Redirect } from 'react-router-dom'
import Sidebar from '../components/Sidebar'
import App from '../views/HomePage'
import About from '../views/AboutPage'
import Gallery from '../views/GalleryPage'
import '../styles/Sidebar.css'

export default class AppRouter extends Component {
constructor(props) {
super(props)
this.state = {
menuOpen: false
}
}
handleStateChange(state) {
this.setState({ menuOpen: state.isOpen })
}
closeMenu() {
this.setState({ menuOpen: false })
}
toggleMenu() {
this.setState({ menuOpen: !this.state.menuOpen })
}
render() {
return (
<BrowserRouter>
<div id="outer-container">
<Menu
width={140}
isOpen={false}
pageWrapId={'page-wrap'}
outerContainerId={'App'}
isOpen={this.state.menuOpen}
onStateChange={state => this.handleStateChange(state)}
>
<Link className="menu-item" to="/">
<a onClick={() => this.closeMenu()}>Home</a>
</Link>
<Link className="menu-item" to="/about">
<a onClick={() => this.closeMenu()}>About</a>
</Link>
<Link className="menu-item" to="/gallery">
<a onClick={() => this.closeMenu()}>Gallery</a>
</Link>
</Menu>
<Sidebar />
<Switch>
<Route exact path="/" component={App} />
<Route path="/about" component={About} />
Expand Down

0 comments on commit 09dee70

Please sign in to comment.