// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. // See License.txt for license information. module.exports = React.createClass({ displayName: 'Setting Upload', propTypes: { title: React.PropTypes.string.isRequired, submit: React.PropTypes.func.isRequired, fileTypesAccepted: React.PropTypes.string.isRequired, clientError: React.PropTypes.string, serverError: React.PropTypes.string }, getInitialState: function() { return { clientError: this.props.clientError, serverError: this.props.serverError }; }, componentWillReceiveProps: function() { this.setState({ clientError: this.props.clientError, serverError: this.props.serverError }); }, doFileSelect: function(e) { e.preventDefault(); this.setState({ clientError: '', serverError: '' }); }, doSubmit: function(e) { e.preventDefault(); var inputnode = this.refs.uploadinput.getDOMNode(); if (inputnode.files && inputnode.files[0]) { this.props.submit(inputnode.files[0]); } else { this.setState({clientError: 'No file selected.'}); } }, doCancel: function(e) { e.preventDefault(); this.refs.uploadinput.getDOMNode().value = ''; this.setState({ clientError: '', serverError: '' }); }, render: function() { var clientError = null; if (this.state.clientError) { clientError = (
); } var serverError = null; if (this.state.serverError) { serverError = ( ); } return ( ); } });