diff --git a/app/components/embedded_bindings/button_binding/button_binding.tsx b/app/components/embedded_bindings/button_binding/button_binding.tsx index de606313e..86cd6f509 100644 --- a/app/components/embedded_bindings/button_binding/button_binding.tsx +++ b/app/components/embedded_bindings/button_binding/button_binding.tsx @@ -32,6 +32,9 @@ export default class ButtonBinding extends PureComponent { static contextTypes = { intl: intlShape.isRequired, }; + + private mounted = false; + handleActionPress = preventDoubleTap(async () => { const ephemeral = (message: string) => this.props.actions.sendEphemeralPost(message, this.props.post.channel_id, this.props.post.root_id); @@ -66,7 +69,9 @@ export default class ButtonBinding extends PureComponent { ); this.setState({executing: true}); const res = await this.props.actions.doAppCall(call, AppCallTypes.SUBMIT, this.context.intl); - this.setState({executing: false}); + if (this.mounted) { + this.setState({executing: false}); + } if (res.error) { const errorResponse = res.error; @@ -104,6 +109,14 @@ export default class ButtonBinding extends PureComponent { } }, 4000); + componentDidMount() { + this.mounted = true; + } + + componentWillUnmount() { + this.mounted = false; + } + render() { const {theme, binding} = this.props; const style = getStyleSheet(theme); diff --git a/app/components/post_body_additional_content/post_body_additional_content.js b/app/components/post_body_additional_content/post_body_additional_content.js index 6ef52ed4d..a585764e2 100644 --- a/app/components/post_body_additional_content/post_body_additional_content.js +++ b/app/components/post_body_additional_content/post_body_additional_content.js @@ -396,7 +396,7 @@ export default class PostBodyAdditionalContent extends ImageViewPort { if (app_bindings && app_bindings.length) { return (