diff options
| author | Georgios Andreadis <g.andreadis@student.tudelft.nl> | 2017-09-21 17:34:19 +0200 |
|---|---|---|
| committer | Georgios Andreadis <g.andreadis@student.tudelft.nl> | 2017-09-23 10:06:05 +0200 |
| commit | 4272111ce7da4293bff7d11cf08e172651e7b3b1 (patch) | |
| tree | 1af1541a030467116c2252ef34e45b5c8bf5390e /src/components/sidebars/Sidebar.js | |
| parent | 19f1e6db285d0bb8a96d2cea9c7f3a543692b81a (diff) | |
Make sidebars collapsible
Diffstat (limited to 'src/components/sidebars/Sidebar.js')
| -rw-r--r-- | src/components/sidebars/Sidebar.js | 40 |
1 files changed, 32 insertions, 8 deletions
diff --git a/src/components/sidebars/Sidebar.js b/src/components/sidebars/Sidebar.js index ce743b17..00e3607a 100644 --- a/src/components/sidebars/Sidebar.js +++ b/src/components/sidebars/Sidebar.js @@ -2,13 +2,37 @@ import classNames from "classnames"; import React from "react"; import "./Sidebar.css"; -const Sidebar = ({isRight, children}) => ( - <div - className={classNames("sidebar p-3 h-100", {"sidebar-right": isRight})} - onWheel={e => e.stopPropagation()} - > - {children} - </div> -); +class Sidebar extends React.Component { + state = { + collapsed: false + }; + + render() { + const collapseButton = ( + <div + className={classNames("sidebar-collapse-button", {"sidebar-collapse-button-right": this.props.isRight})} + onClick={() => this.setState({collapsed: !this.state.collapsed})} + > + {(this.state.collapsed && this.props.isRight) || (!this.state.collapsed && !this.props.isRight) ? + <span className="fa fa-angle-left" title={this.props.isRight ? "Expand" : "Collapse"}/> : + <span className="fa fa-angle-right" title={this.props.isRight ? "Collapse" : "Expand"}/> + } + </div> + ); + + if (this.state.collapsed) { + return collapseButton; + } + return ( + <div + className={classNames("sidebar p-3 h-100", {"sidebar-right": this.props.isRight})} + onWheel={e => e.stopPropagation()} + > + {this.props.children} + {collapseButton} + </div> + ); + } +} export default Sidebar; |
