import React, { PropTypes } from 'react' import CSSModules from 'browser/lib/CSSModules' import styles from './RenameFolderModal.styl' import dataApi from 'browser/main/lib/dataApi' import store from 'browser/main/store' class RenameFolderModal extends React.Component { constructor (props) { super(props) this.state = { name: props.folder.name } } componentDidMount () { this.refs.name.focus() this.refs.name.select() } handleCloseButtonClick (e) { this.props.close() } handleChange (e) { this.setState({ name: this.refs.name.value }) } handleKeyDown (e) { if (e.keyCode === 27) { this.props.close() } } handleInputKeyDown (e) { switch (e.keyCode) { case 13: this.confirm() } } handleConfirmButtonClick (e) { this.confirm() } confirm () { if (this.state.name.trim().length > 0) { let { storage, folder } = this.props dataApi .updateFolder(storage.key, folder.key, { name: this.state.name, color: folder.color }) .then((data) => { store.dispatch({ type: 'UPDATE_FOLDER', storage: data.storage }) this.props.close() }) } } render () { return (