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 SideNavFilter from 'browser/components/SideNavFilter' class SideNav extends React.Component { // TODO: should not use electron stuff v0.7 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') } handleSwitchFolderButtonClick (e) { console.log('SwitchfolderButton Clicked') let { router } = this.context router.push('/home') } handleSwitchTagButtonClick (e) { console.log('SwitchTagButton clicked') let { router } = this.context router.push('/alltags') } SideNavComponent (isFolded, isHomeActive, isStarredActive, isTrashedActive, storageList) { let { location, data } = this.props console.log(data) let component if (!location.pathname.match('/tags') && !location.pathname.match('/alltags')) { component = (
this.handleHomeButtonClick(e)} isStarredActive={isStarredActive} isTrashedActive={isTrashedActive} handleStarredButtonClick={(e) => this.handleStarredButtonClick(e)} handleTrashedButtonClick={(e) => this.handleTrashedButtonClick(e)} />
{storageList.length > 0 ? storageList : (
No storage mount.
)}
) } else { component = (

TAG_AREA

) } return component } render () { let { data, location, config, dispatch } = this.props let isFolded = config.isSideNavFolded let isHomeActive = !!location.pathname.match(/^\/home$/) let isStarredActive = !!location.pathname.match(/^\/starred$/) let isTrashedActive = !!location.pathname.match(/^\/trashed$/) let storageList = data.storageMap.map((storage, key) => { return }) let style = {} if (!isFolded) style.width = this.props.width return (
{this.SideNavComponent(isFolded, isHomeActive, isTrashedActive, isStarredActive, storageList)}
) } } SideNav.contextTypes = { router: PropTypes.shape({}) } SideNav.propTypes = { dispatch: PropTypes.func, storages: PropTypes.array, config: PropTypes.shape({ isSideNavFolded: PropTypes.bool }), location: PropTypes.shape({ pathname: PropTypes.string }) } export default CSSModules(SideNav, styles)