allow messages to be send on ctrl+enter

Этот коммит содержится в:
Florian Orben
2015-10-26 22:05:26 +01:00
родитель ede80afe4c
Коммит 0e5612a7db
3 изменённых файлов: 134 добавлений и 17 удалений

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

@@ -36,9 +36,10 @@ export default class CreatePost extends React.Component {
this.removePreview = this.removePreview.bind(this);
this.onChange = this.onChange.bind(this);
this.getFileCount = this.getFileCount.bind(this);
this.handleArrowUp = this.handleArrowUp.bind(this);
this.handleKeyDown = this.handleKeyDown.bind(this);
this.handleResize = this.handleResize.bind(this);
this.sendMessage = this.sendMessage.bind(this);
this.onUserChange = this.onUserChange.bind(this);
PostStore.clearDraftUploads();
@@ -52,8 +53,15 @@ export default class CreatePost extends React.Component {
submitting: false,
initialText: draft.messageText,
windowWidth: Utils.windowWidth(),
windowHeight: Utils.windowHeight()
windowHeight: Utils.windowHeight(),
ctrlSend: UserStore.getCurrentUser().props.ctrlSend
};
UserStore.addChangeListener(this.onUserChange);
}
onUserChange() {
const ctrlSend = UserStore.getCurrentUser().props.ctrlSend || 'false';
this.setState({ctrlSend});
}
handleResize() {
this.setState({
@@ -201,10 +209,12 @@ export default class CreatePost extends React.Component {
);
}
postMsgKeyPress(e) {
if (e.which === KeyCodes.ENTER && !e.shiftKey && !e.altKey) {
e.preventDefault();
ReactDOM.findDOMNode(this.refs.textbox).blur();
this.handleSubmit(e);
if (this.state.ctrlSend === 'true' && e.ctrlKey || this.state.ctrlSend === 'false') {
if (e.which === KeyCodes.ENTER && !e.shiftKey && !e.altKey) {
e.preventDefault();
ReactDOM.findDOMNode(this.refs.textbox).blur();
this.handleSubmit(e);
}
}
const t = Date.now();
@@ -328,7 +338,12 @@ export default class CreatePost extends React.Component {
const draft = PostStore.getDraft(channelId);
return draft.previews.length + draft.uploadsInProgress.length;
}
handleArrowUp(e) {
handleKeyDown(e) {
if (this.state.ctrlSend === 'true' && e.keyCode === KeyCodes.ENTER && e.ctrlKey === true) {
this.postMsgKeyPress(e);
return;
}
if (e.keyCode === KeyCodes.UP && this.state.messageText === '') {
e.preventDefault();
@@ -393,7 +408,7 @@ export default class CreatePost extends React.Component {
<Textbox
onUserInput={this.handleUserInput}
onKeyPress={this.postMsgKeyPress}
onKeyDown={this.handleArrowUp}
onKeyDown={this.handleKeyDown}
onHeightChange={this.resizePostHolder}
messageText={this.state.messageText}
createMessage='Write a message...'