From fcce3168b2776af6baf87096704465fc71fe28ac Mon Sep 17 00:00:00 2001 From: Florian Orben Date: Thu, 15 Oct 2015 21:22:08 +0200 Subject: PLT-74: Enable Up Arrow keyboard shortcut to edit your last message - fix bug where channel_id was not set if update_post ajax was "too fast" - fix bug js error if there is no last post, i.e. empty channel - renamed lastPostId to postId so it has a nicer api to be triggered from everywhere - fix a typo - automatically focus textarea on modal open --- web/react/components/create_post.jsx | 7 +++++-- web/react/components/edit_post_modal.jsx | 14 +++++++++++--- 2 files changed, 16 insertions(+), 5 deletions(-) (limited to 'web/react') diff --git a/web/react/components/create_post.jsx b/web/react/components/create_post.jsx index ed6818dc8..2581bdcca 100644 --- a/web/react/components/create_post.jsx +++ b/web/react/components/create_post.jsx @@ -300,14 +300,17 @@ export default class CreatePost extends React.Component { const channelId = ChannelStore.getCurrentId(); const lastPost = PostStore.getCurrentUsersLatestPost(channelId); + if (!lastPost) { + return; + } var type = (lastPost.root_id && lastPost.root_id.length > 0) ? 'Comment' : 'Post'; AppDispatcher.handleViewAction({ type: ActionTypes.RECIEVED_EDIT_POST, - refoucsId: '#post_textbox', + refocusId: '#post_textbox', title: type, message: lastPost.message, - lastPostId: lastPost.id, + postId: lastPost.id, channelId: lastPost.channel_id }); } diff --git a/web/react/components/edit_post_modal.jsx b/web/react/components/edit_post_modal.jsx index 38d31d66f..90d9696e7 100644 --- a/web/react/components/edit_post_modal.jsx +++ b/web/react/components/edit_post_modal.jsx @@ -37,16 +37,15 @@ export default class EditPostModal extends React.Component { Client.updatePost(updatedPost, function success() { - AsyncClient.getPosts(this.state.channel_id); + AsyncClient.getPosts(updatedPost.channel_id); window.scrollTo(0, 0); - }.bind(this), + }, function error(err) { AsyncClient.dispatchError(err, 'updatePost'); } ); $('#edit_post').modal('hide'); - $(this.state.refocusId).focus(); } handleEditInput(editMessage) { this.setState({editText: editMessage}); @@ -90,6 +89,15 @@ export default class EditPostModal extends React.Component { $(ReactDOM.findDOMNode(this.refs.modal)).on('shown.bs.modal', function onShown() { self.refs.editbox.resize(); + $('#edit_textbox').get(0).focus(); + }); + + $(React.findDOMNode(this.refs.modal)).on('hide.bs.modal', function onShown() { + if (self.state.refocusId !== '') { + setTimeout(() => { + $(self.state.refocusId).get(0).focus(); + }); + } }); PostStore.addEditPostListener(this.handleEditPostEvent); -- cgit v1.2.3-1-g7c22