summaryrefslogtreecommitdiffstats
path: root/webapp
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2017-07-12 09:49:03 -0400
committerSaturnino Abril <saturnino.abril@gmail.com>2017-07-12 22:49:03 +0900
commit6a056a0042d0df6c1c377d4bfeb6a3d10017ae3f (patch)
treec30fe5aaae1c90e0f2898e2fa9555e9461641d8e /webapp
parentdc6862079a7055269e8aa861caf0093e7be29e83 (diff)
downloadchat-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.jsx26
-rw-r--r--webapp/components/post_view/post_info/post_info.jsx3
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
};
}