summaryrefslogtreecommitdiffstats
path: root/web/react
diff options
context:
space:
mode:
authorFlorian Orben <florian.orben@gmail.com>2015-10-15 21:22:08 +0200
committerFlorian Orben <florian.orben@gmail.com>2015-10-15 21:25:31 +0200
commitfcce3168b2776af6baf87096704465fc71fe28ac (patch)
treea45ca971ed2f0b4ca901d2238d3a71fa7a8e92fe /web/react
parent551b07960ed8ec36c24341f96f2b06fee25ceab3 (diff)
downloadchat-fcce3168b2776af6baf87096704465fc71fe28ac.tar.gz
chat-fcce3168b2776af6baf87096704465fc71fe28ac.tar.bz2
chat-fcce3168b2776af6baf87096704465fc71fe28ac.zip
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
Diffstat (limited to 'web/react')
-rw-r--r--web/react/components/create_post.jsx7
-rw-r--r--web/react/components/edit_post_modal.jsx14
2 files changed, 16 insertions, 5 deletions
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);