import React, { PropTypes } from 'react'; import classNames from 'classnames'; import InlineSVG from 'react-inlinesvg'; import ConnectedFileNode from './FileNode'; const folderUrl = require('../../../images/folder.svg'); const downArrowUrl = require('../../../images/down-arrow.svg'); class Sidebar extends React.Component { constructor(props) { super(props); this.resetSelectedFile = this.resetSelectedFile.bind(this); this.toggleProjectOptions = this.toggleProjectOptions.bind(this); } resetSelectedFile() { this.props.setSelectedFile(this.props.files[1].id); } toggleProjectOptions(e) { e.preventDefault(); if (this.props.projectOptionsVisible) { this.props.closeProjectOptions(); } else { this.sidebarOptions.focus(); this.props.openProjectOptions(); } } render() { const sidebarClass = classNames({ 'sidebar': true, 'sidebar--contracted': !this.props.isExpanded, 'sidebar--project-options': this.props.projectOptionsVisible }); return ( ); } } Sidebar.propTypes = { files: PropTypes.arrayOf(PropTypes.shape({ name: PropTypes.string.isRequired, id: PropTypes.string.isRequired })).isRequired, setSelectedFile: PropTypes.func.isRequired, isExpanded: PropTypes.bool.isRequired, projectOptionsVisible: PropTypes.bool.isRequired, newFile: PropTypes.func.isRequired, openProjectOptions: PropTypes.func.isRequired, closeProjectOptions: PropTypes.func.isRequired, newFolder: PropTypes.func.isRequired }; export default Sidebar;