fix JS errors when Ctrl + Enter is used to send message (#6708)

Этот коммит содержится в:
Saturnino Abril
2017-06-22 22:50:21 +08:00
коммит произвёл Harrison Healey
родитель b50e7dc7a9
Коммит 8f7e6e1fa3

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

@@ -32,25 +32,30 @@ class EditChannelHeaderModal extends React.Component {
super(props); super(props);
this.handleChange = this.handleChange.bind(this); this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this); this.handleSave = this.handleSave.bind(this);
this.handleKeyDown = this.handleKeyDown.bind(this); this.handleKeyDown = this.handleKeyDown.bind(this);
this.handleEditKeyPress = this.handleEditKeyPress.bind(this); this.handleKeyPress = this.handleKeyPress.bind(this);
this.onShow = this.onShow.bind(this); this.onShow = this.onShow.bind(this);
this.onHide = this.onHide.bind(this); this.onHide = this.onHide.bind(this);
this.handlePostError = this.handlePostError.bind(this); this.handlePostError = this.handlePostError.bind(this);
this.focusTextbox = this.focusTextbox.bind(this); this.focusTextbox = this.focusTextbox.bind(this);
this.onPreferenceChange = this.onPreferenceChange.bind(this); this.onPreferenceChange = this.onPreferenceChange.bind(this);
this.ctrlSend = PreferenceStore.getBool(Constants.Preferences.CATEGORY_ADVANCED_SETTINGS, 'send_on_ctrl_enter');
this.state = { this.state = {
header: props.channel.header, header: props.channel.header,
show: true, show: true,
serverError: '', serverError: '',
submitted: false submitted: false,
ctrlSend: PreferenceStore.getBool(Constants.Preferences.CATEGORY_ADVANCED_SETTINGS, 'send_on_ctrl_enter')
}; };
} }
componentWillMount() {
this.setState({
ctrlSend: PreferenceStore.getBool(Constants.Preferences.CATEGORY_ADVANCED_SETTINGS, 'send_on_ctrl_enter')
});
}
componentDidMount() { componentDidMount() {
PreferenceStore.addChangeListener(this.onPreferenceChange); PreferenceStore.addChangeListener(this.onPreferenceChange);
this.onShow(); this.onShow();
@@ -68,10 +73,12 @@ class EditChannelHeaderModal extends React.Component {
} }
onPreferenceChange() { onPreferenceChange() {
this.ctrlSend = PreferenceStore.getBool(Constants.Preferences.CATEGORY_ADVANCED_SETTINGS, 'send_on_ctrl_enter'); this.setState({
ctrlSend: PreferenceStore.getBool(Constants.Preferences.CATEGORY_ADVANCED_SETTINGS, 'send_on_ctrl_enter')
});
} }
handleSubmit() { handleSave() {
this.setState({submitted: true}); this.setState({submitted: true});
updateChannelHeader( updateChannelHeader(
@@ -101,29 +108,23 @@ class EditChannelHeaderModal extends React.Component {
focusTextbox() { focusTextbox() {
if (!Utils.isMobile()) { if (!Utils.isMobile()) {
this.refs.textbox.focus(); this.refs.editChannelHeaderTextbox.focus();
} }
} }
handleKeyDown(e) { handleKeyDown(e) {
if (this.ctrlSend && e.keyCode === Constants.KeyCodes.ENTER && e.ctrlKey) { if (this.state.ctrlSend && e.keyCode === KeyCodes.ENTER && e.ctrlKey === true) {
e.preventDefault(); this.handleKeyPress(e);
this.handleSubmit(e);
} else if (!this.ctrlSend && e.keyCode === Constants.KeyCodes.ENTER && !e.shiftKey && !e.altKey) {
e.preventDefault();
this.handleSubmit(e);
} }
} }
handleEditKeyPress(e) { handleKeyPress(e) {
if (!UserAgent.isMobile() && !this.state.ctrlSend && e.which === KeyCodes.ENTER && !e.shiftKey && !e.altKey) { if (!UserAgent.isMobile() && ((this.state.ctrlSend && e.ctrlKey) || !this.state.ctrlSend)) {
e.preventDefault(); if (e.which === KeyCodes.ENTER && !e.shiftKey && !e.altKey) {
ReactDOM.findDOMNode(this.refs.editbox).blur(); e.preventDefault();
this.handleEdit(); ReactDOM.findDOMNode(this.refs.editChannelHeaderTextbox).blur();
} else if (this.state.ctrlSend && e.ctrlKey && e.which === KeyCodes.ENTER) { this.handleSave(e);
e.preventDefault(); }
ReactDOM.findDOMNode(this.refs.editbox).blur();
this.handleEdit();
} }
} }
@@ -179,7 +180,7 @@ class EditChannelHeaderModal extends React.Component {
<Textbox <Textbox
value={this.state.header} value={this.state.header}
onChange={this.handleChange} onChange={this.handleChange}
onKeyPress={this.handleEditKeyPress} onKeyPress={this.handleKeyPress}
onKeyDown={this.handleKeyDown} onKeyDown={this.handleKeyDown}
supportsCommands={false} supportsCommands={false}
suggestionListStyle='bottom' suggestionListStyle='bottom'
@@ -187,7 +188,7 @@ class EditChannelHeaderModal extends React.Component {
previewMessageLink={Utils.localizeMessage('edit_channel_header.previewHeader', 'Edit Header')} previewMessageLink={Utils.localizeMessage('edit_channel_header.previewHeader', 'Edit Header')}
handlePostError={this.handlePostError} handlePostError={this.handlePostError}
id='edit_textbox' id='edit_textbox'
ref='textbox' ref='editChannelHeaderTextbox'
/> />
<br/> <br/>
{serverError} {serverError}
@@ -208,7 +209,7 @@ class EditChannelHeaderModal extends React.Component {
disabled={this.state.submitted} disabled={this.state.submitted}
type='button' type='button'
className='btn btn-primary' className='btn btn-primary'
onClick={this.handleSubmit} onClick={this.handleSave}
> >
<FormattedMessage <FormattedMessage
id='edit_channel_header_modal.save' id='edit_channel_header_modal.save'