fix JS errors when Ctrl + Enter is used to send message (#6708)
Этот коммит содержится в:
коммит произвёл
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'
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user