From 1630892b4cb03ad2fb4fc5258a784a6adcf50779 Mon Sep 17 00:00:00 2001 From: David Lu Date: Thu, 12 May 2016 07:48:29 -0400 Subject: PLT-2783 Reprint Last Message Entered Shortcut (#2966) * added preliminary code * added comment code * semicolons are important * compatible with slash commands * too many semicolons --- webapp/components/create_comment.jsx | 16 +++++++++++++++- webapp/components/create_post.jsx | 18 ++++++++++++++++-- 2 files changed, 31 insertions(+), 3 deletions(-) (limited to 'webapp/components') diff --git a/webapp/components/create_comment.jsx b/webapp/components/create_comment.jsx index 30e89e500..42e5dd336 100644 --- a/webapp/components/create_comment.jsx +++ b/webapp/components/create_comment.jsx @@ -72,6 +72,7 @@ class CreateComment extends React.Component { const draft = PostStore.getCommentDraft(this.props.rootId); this.state = { messageText: draft.message, + lastMessage: '', uploadsInProgress: draft.uploadsInProgress, previews: draft.previews, submitting: false, @@ -172,6 +173,7 @@ class CreateComment extends React.Component { this.setState({ messageText: '', + lastMessage: this.state.messageText, submitting: false, postError: null, previews: [], @@ -203,7 +205,7 @@ class CreateComment extends React.Component { return; } - if (e.keyCode === KeyCodes.UP && this.state.messageText === '') { + if (!e.ctrlKey && e.keyCode === KeyCodes.UP && this.state.messageText === '') { e.preventDefault(); const lastPost = PostStore.getCurrentUsersLatestPost(this.props.channelId, this.props.rootId); @@ -221,6 +223,18 @@ class CreateComment extends React.Component { comments: PostStore.getCommentCount(lastPost) }); } + + if (e.ctrlKey && e.keyCode === KeyCodes.UP) { + const lastPost = PostStore.getCurrentUsersLatestPost(this.props.channelId, this.props.rootId); + if (!lastPost) { + return; + } + let message = lastPost.message; + if (this.state.lastMessage !== '') { + message = this.state.lastMessage; + } + this.setState({messageText: message}); + } } handleUploadClick() { this.focusTextbox(); diff --git a/webapp/components/create_post.jsx b/webapp/components/create_post.jsx index d173fe42b..863f969df 100644 --- a/webapp/components/create_post.jsx +++ b/webapp/components/create_post.jsx @@ -77,6 +77,7 @@ class CreatePost extends React.Component { this.state = { channelId: ChannelStore.getCurrentId(), messageText: draft.messageText, + lastMessage: '', uploadsInProgress: draft.uploadsInProgress, previews: draft.previews, submitting: false, @@ -126,7 +127,7 @@ class CreatePost extends React.Component { } this.setState({submitting: true, serverError: null}); - + this.setState({lastMessage: this.state.messageText}); if (post.message.indexOf('/') === 0) { Client.executeCommand( this.state.channelId, @@ -350,7 +351,7 @@ class CreatePost extends React.Component { return; } - if (e.keyCode === KeyCodes.UP && this.state.messageText === '') { + if (!e.ctrlKey && e.keyCode === KeyCodes.UP && this.state.messageText === '') { e.preventDefault(); const channelId = ChannelStore.getCurrentId(); @@ -371,6 +372,19 @@ class CreatePost extends React.Component { comments: PostStore.getCommentCount(lastPost) }); } + + if (e.ctrlKey && e.keyCode === KeyCodes.UP) { + const channelId = ChannelStore.getCurrentId(); + const lastPost = PostStore.getCurrentUsersLatestPost(channelId); + if (!lastPost) { + return; + } + let message = lastPost.message; + if (this.state.lastMessage !== '') { + message = this.state.lastMessage; + } + this.setState({messageText: message}); + } } showPostDeletedModal() { this.setState({ -- cgit v1.2.3-1-g7c22