Skip to content

Instantly share code, notes, and snippets.

@joshin-run
Forked from michaelmcshinsky/app
Created November 17, 2017 18:28
Show Gist options
  • Save joshin-run/420423e566944db5c483691e73fc45bc to your computer and use it in GitHub Desktop.
Save joshin-run/420423e566944db5c483691e73fc45bc to your computer and use it in GitHub Desktop.
import React, { Component } from 'react'
import Header from './Header'
import Sidebar from './Sidebar'
export default class App extends Component {
constructor(props) {
super(props)
this.state = {
isSidebarOpen: false
}
}
toggleSidebar = () => {
this.setState({isSidebarOpen: !this.state.isSidebarOpen})
}
render() {
return (
<div>
<Header
onToggleSidebar={this.toggleSidebar}
/>
<Sidebar
isSidebarOpen={this.state.isSidebarOpen}
/>
</div>
)
}
}
import React, { Component } from 'react'
export default class Header extends Component {
constructor(props) {
super(props)
this.state = {/* Header doing its own thing with state */}
}
toggleSidebar = () => {
this.props.onToggleSidebar()
}
render() {
return (
<div className="header">
<button type="button" onClick={this.toggleSidebar}>Toggle Sidebar</button>
</div>
)
}
}
import React, { Component } from 'react'
export default class Sidebar extends Component {
constructor(props) {
super(props)
this.state = {/* Sidear doing its own thing with state */}
}
render() {
return (
<div className={`sidebar${this.props.isSidebarOpen === true ? ' open' : ''}`}>
</div>
)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment