From 1a9de3fabed01d54279b2b996e41aa46765c9daa Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Wed, 18 Jul 2018 10:58:27 +0100 Subject: [PATCH] fix undo on pasting plaintext content Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/components/views/rooms/MessageComposerInput.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/components/views/rooms/MessageComposerInput.js b/src/components/views/rooms/MessageComposerInput.js index 88b8280a4c..c20f6fb52c 100644 --- a/src/components/views/rooms/MessageComposerInput.js +++ b/src/components/views/rooms/MessageComposerInput.js @@ -986,7 +986,11 @@ export default class MessageComposerInput extends React.Component { } } case 'text': - return change.insertText(transfer.text); + // don't skip/merge so that multiple consecutive pastes can be undone individually + return change + .setOperationFlag("skip", false) + .setOperationFlag("merge", false) + .insertText(transfer.text); } }; @@ -1538,7 +1542,7 @@ export default class MessageComposerInput extends React.Component { let {placeholder} = this.props; // XXX: workaround for placeholder being shown when there is a formatting block e.g blockquote but no text - if (isEmpty && this.state.editorState.startBlock.type !== DEFAULT_NODE) { + if (isEmpty && this.state.editorState.startBlock && this.state.editorState.startBlock.type !== DEFAULT_NODE) { placeholder = undefined; }