diff options
author | Joram Wilander <jwawilander@gmail.com> | 2017-07-12 09:49:03 -0400 |
---|---|---|
committer | Saturnino Abril <saturnino.abril@gmail.com> | 2017-07-12 22:49:03 +0900 |
commit | 6a056a0042d0df6c1c377d4bfeb6a3d10017ae3f (patch) | |
tree | c30fe5aaae1c90e0f2898e2fa9555e9461641d8e /webapp | |
parent | dc6862079a7055269e8aa861caf0093e7be29e83 (diff) | |
download | chat-6a056a0042d0df6c1c377d4bfeb6a3d10017ae3f.tar.gz chat-6a056a0042d0df6c1c377d4bfeb6a3d10017ae3f.tar.bz2 chat-6a056a0042d0df6c1c377d4bfeb6a3d10017ae3f.zip |
Fix posting when allow edit after time set (#6913)
Diffstat (limited to 'webapp')
-rw-r--r-- | webapp/components/dot_menu/dot_menu.jsx | 26 | ||||
-rw-r--r-- | webapp/components/post_view/post_info/post_info.jsx | 3 |
2 files changed, 16 insertions, 13 deletions
diff --git a/webapp/components/dot_menu/dot_menu.jsx b/webapp/components/dot_menu/dot_menu.jsx index eb6a6c005..a2cbb9b48 100644 --- a/webapp/components/dot_menu/dot_menu.jsx +++ b/webapp/components/dot_menu/dot_menu.jsx @@ -58,10 +58,12 @@ export default class DotMenu extends Component { constructor(props) { super(props); - this.handleDropdownOpened = this.handleDropdownOpened.bind(this); - this.canDelete = false; - this.canEdit = false; this.editDisableAction = new DelayedAction(this.handleEditDisable); + + this.state = { + canDelete: PostUtils.canDeletePost(props.post), + canEdit: PostUtils.canEditPost(props.post, this.editDisableAction) + }; } componentDidMount() { @@ -69,7 +71,11 @@ export default class DotMenu extends Component { $('#' + this.props.idPrefix + '_dropdown' + this.props.post.id).on('hidden.bs.dropdown', () => this.props.handleDropdownOpened(false)); } - handleDropdownOpened() { + componentWillUnmount() { + this.editDisableAction.cancel(); + } + + handleDropdownOpened = () => { this.props.handleDropdownOpened(true); const position = $('#post-list').height() - $(this.refs.dropdownToggle).offset().top; @@ -80,17 +86,15 @@ export default class DotMenu extends Component { } } - handleEditDisable() { - this.canEdit = false; + handleEditDisable = () => { + this.setState({canEdit: false}); } render() { const isSystemMessage = PostUtils.isSystemMessage(this.props.post); const isMobile = Utils.isMobile(); - this.canDelete = PostUtils.canDeletePost(this.props.post); - this.canEdit = PostUtils.canEditPost(this.props.post, this.editDisableAction); - if (this.props.idPrefix === Constants.CENTER && (!isMobile && isSystemMessage && !this.canDelete && !this.canEdit)) { + if (this.props.idPrefix === Constants.CENTER && (!isMobile && isSystemMessage && !this.state.canDelete && !this.state.canEdit)) { return null; } @@ -157,7 +161,7 @@ export default class DotMenu extends Component { } let dotMenuDelete = null; - if (this.canDelete) { + if (this.state.canDelete) { dotMenuDelete = ( <DotMenuItem idPrefix={idPrefix + 'Delete'} @@ -169,7 +173,7 @@ export default class DotMenu extends Component { } let dotMenuEdit = null; - if (this.canEdit) { + if (this.state.canEdit) { dotMenuEdit = ( <DotMenuEdit idPrefix={idPrefix + 'Edit'} diff --git a/webapp/components/post_view/post_info/post_info.jsx b/webapp/components/post_view/post_info/post_info.jsx index d64d1aca6..6eaef0e0b 100644 --- a/webapp/components/post_view/post_info/post_info.jsx +++ b/webapp/components/post_view/post_info/post_info.jsx @@ -81,8 +81,7 @@ export default class PostInfo extends React.PureComponent { this.state = { showEmojiPicker: false, - reactionPickerOffset: 21, - canEdit: PostUtils.canEditPost(props.post, this.editDisableAction) + reactionPickerOffset: 21 }; } |