import React, { PropTypes } from 'react' import CSSModules from 'browser/lib/CSSModules' import styles from './SideNav.styl' import { openModal } from 'browser/main/lib/modal' import PreferencesModal from '../modals/PreferencesModal' import ConfigManager from 'browser/main/lib/ConfigManager' import StorageItem from './StorageItem' import TagListItem from 'browser/components/TagListItem' import SideNavFilter from 'browser/components/SideNavFilter' import StorageList from 'browser/components/StorageList' import NavToggleButton from 'browser/components/NavToggleButton' import EventEmitter from 'browser/main/lib/eventEmitter' class SideNav extends React.Component { // TODO: should not use electron stuff v0.7 componentDidMount () { EventEmitter.on('side:preferences', this.handleMenuButtonClick) } componentWillUnmount () { EventEmitter.off('side:preferences', this.handleMenuButtonClick) } handleMenuButtonClick (e) { openModal(PreferencesModal) } handleHomeButtonClick (e) { let { router } = this.context router.push('/home') } handleStarredButtonClick (e) { let { router } = this.context router.push('/starred') } handleToggleButtonClick (e) { let { dispatch, config } = this.props ConfigManager.set({isSideNavFolded: !config.isSideNavFolded}) dispatch({ type: 'SET_IS_SIDENAV_FOLDED', isFolded: !config.isSideNavFolded }) } handleTrashedButtonClick (e) { let { router } = this.context router.push('/trashed') } handleSwitchFoldersButtonClick () { const { router } = this.context router.push('/home') } handleSwitchTagsButtonClick () { const { router } = this.context router.push('/alltags') } SideNavComponent (isFolded, storageList) { let { location, data } = this.props const isHomeActive = !!location.pathname.match(/^\/home$/) const isStarredActive = !!location.pathname.match(/^\/starred$/) const isTrashedActive = !!location.pathname.match(/^\/trashed$/) let component // TagsMode is not selected if (!location.pathname.match('/tags') && !location.pathname.match('/alltags')) { component = (
Tags