summaryrefslogtreecommitdiff
path: root/src/components/sidebars/Sidebar.js
diff options
context:
space:
mode:
authorGeorgios Andreadis <g.andreadis@student.tudelft.nl>2017-09-21 17:34:19 +0200
committerGeorgios Andreadis <g.andreadis@student.tudelft.nl>2017-09-23 10:06:05 +0200
commit4272111ce7da4293bff7d11cf08e172651e7b3b1 (patch)
tree1af1541a030467116c2252ef34e45b5c8bf5390e /src/components/sidebars/Sidebar.js
parent19f1e6db285d0bb8a96d2cea9c7f3a543692b81a (diff)
Make sidebars collapsible
Diffstat (limited to 'src/components/sidebars/Sidebar.js')
-rw-r--r--src/components/sidebars/Sidebar.js40
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;