import React, { PropTypes } from 'react' import FolderRow from './FolderRow' import linkState from 'browser/lib/linkState' import { createFolder } from '../../actions' export default class FolderSettingTab extends React.Component { constructor (props) { super(props) this.state = { name: '' } } handleNewFolderNameKeyDown (e) { if (e.keyCode === 13) { this.handleSaveButtonClick() } } handleSaveButtonClick (e) { this.setState({alert: null}, () => { let { dispatch } = this.props try { dispatch(createFolder({ name: this.state.name })) } catch (e) { this.setState({alert: { type: 'error', message: e.message }}) return } this.setState({name: ''}) }) } setAlert (alert, cb) { this.setState({alert: alert}, cb) } render () { let { folders } = this.props let folderElements = folders.map((folder, index) => { return ( this.setAlert(alert, cb)} /> ) }) let alert = this.state.alert let alertElement = alert != null ? (

{alert.message}

) : null return (
Manage folder
Folder
Edit/Delete
{folderElements}
this.handleNewFolderNameKeyDown(e)} valueLink={this.linkState('name')} type='text' placeholder='New Folder'/>
{alertElement}
) } } FolderSettingTab.propTypes = { folders: PropTypes.array, dispatch: PropTypes.func } FolderSettingTab.prototype.linkState = linkState