From 357ad3d50c257aea9394e4550d1a275524526657 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Tue, 2 Jul 2019 14:52:29 +0200 Subject: [PATCH] cancel pending edit when sending new edit --- src/components/views/elements/MessageEditor.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/components/views/elements/MessageEditor.js b/src/components/views/elements/MessageEditor.js index 0830708701..194c2d4a67 100644 --- a/src/components/views/elements/MessageEditor.js +++ b/src/components/views/elements/MessageEditor.js @@ -31,6 +31,7 @@ import {renderModel} from '../../../editor/render'; import EditorStateTransfer from '../../../utils/EditorStateTransfer'; import {MatrixClient} from 'matrix-js-sdk'; import classNames from 'classnames'; +import {EventStatus} from 'matrix-js-sdk'; export default class MessageEditor extends React.Component { static propTypes = { @@ -195,12 +196,21 @@ export default class MessageEditor extends React.Component { }, contentBody); const roomId = this.props.editState.getEvent().getRoomId(); + this._cancelPreviousPendingEdit(); this.context.matrixClient.sendMessage(roomId, content); dis.dispatch({action: "edit_event", event: null}); dis.dispatch({action: 'focus_composer'}); } + _cancelPreviousPendingEdit() { + const originalEvent = this.props.editState.getEvent(); + const previousEdit = originalEvent.replacingEvent(); + if (previousEdit.status === EventStatus.QUEUED || previousEdit.status === EventStatus.NOT_SENT) { + this.context.matrixClient.cancelPendingEvent(previousEdit); + } + } + _onAutoCompleteConfirm = (completion) => { this.model.autoComplete.onComponentConfirm(completion); }