PLT-3332 Removed multiple change channel header messages (#3390)

* disabled submit upon form submission to avoid asynchronous errors

* Used state instead of props
Этот коммит содержится в:
David Lu
2016-06-27 08:13:16 -04:00
коммит произвёл Christopher Speller
родитель 3ec92b8c60
Коммит 5be6661f12
2 изменённых файлов: 14 добавлений и 3 удалений

Просмотреть файл

@@ -36,7 +36,8 @@ class EditChannelHeaderModal extends React.Component {
this.state = { this.state = {
header: props.channel.header, header: props.channel.header,
serverError: '' serverError: '',
submitted: false
}; };
} }
@@ -55,7 +56,8 @@ class EditChannelHeaderModal extends React.Component {
componentWillReceiveProps(nextProps) { componentWillReceiveProps(nextProps) {
if (this.props !== nextProps) { if (this.props !== nextProps) {
this.setState({ this.setState({
header: nextProps.channel.header header: nextProps.channel.header,
submitted: false
}); });
} }
} }
@@ -77,6 +79,8 @@ class EditChannelHeaderModal extends React.Component {
} }
handleSubmit() { handleSubmit() {
this.setState({submitted: true});
Client.updateChannelHeader( Client.updateChannelHeader(
this.props.channel.id, this.props.channel.id,
this.state.header, this.state.header,
@@ -102,6 +106,7 @@ class EditChannelHeaderModal extends React.Component {
onShow() { onShow() {
const textarea = ReactDOM.findDOMNode(this.refs.textarea); const textarea = ReactDOM.findDOMNode(this.refs.textarea);
Utils.placeCaretAtEnd(textarea); Utils.placeCaretAtEnd(textarea);
this.submitted = false;
} }
onHide() { onHide() {
@@ -190,6 +195,7 @@ class EditChannelHeaderModal extends React.Component {
/> />
</button> </button>
<button <button
disabled={this.state.submitted}
type='button' type='button'
className='btn btn-primary' className='btn btn-primary'
onClick={this.handleSubmit} onClick={this.handleSubmit}

Просмотреть файл

@@ -31,7 +31,8 @@ export default class EditChannelPurposeModal extends React.Component {
this.ctrlSend = PreferenceStore.getBool(Constants.Preferences.CATEGORY_ADVANCED_SETTINGS, 'send_on_ctrl_enter'); this.ctrlSend = PreferenceStore.getBool(Constants.Preferences.CATEGORY_ADVANCED_SETTINGS, 'send_on_ctrl_enter');
this.state = { this.state = {
serverError: '' serverError: '',
submitted: false
}; };
} }
@@ -75,6 +76,9 @@ export default class EditChannelPurposeModal extends React.Component {
if (!this.props.channel) { if (!this.props.channel) {
return; return;
} }
this.setState({submitted: true});
Client.updateChannelPurpose( Client.updateChannelPurpose(
this.props.channel.id, this.props.channel.id,
ReactDOM.findDOMNode(this.refs.purpose).value.trim(), ReactDOM.findDOMNode(this.refs.purpose).value.trim(),
@@ -189,6 +193,7 @@ export default class EditChannelPurposeModal extends React.Component {
<button <button
type='button' type='button'
className='btn btn-primary' className='btn btn-primary'
disabled={this.state.submitted}
onClick={this.handleSave} onClick={this.handleSave}
> >
<FormattedMessage <FormattedMessage