From c0ea0bdd3c0620a52627837179ec6f3b8730c002 Mon Sep 17 00:00:00 2001 From: Kiyoka Nishiyama Date: Mon, 7 Mar 2022 12:07:43 +0000 Subject: [PATCH 1/2] fix: #3080 "BackSpace" shoutcut on a selected image deletes the whole line Fixed forgetting to set selectedImage to null with the backspace key. Fixed forgetting to set selectedImage to null with the delete button on the image toolbar. --- src/muya/lib/contentState/backspaceCtrl.js | 12 ++++++++---- src/muya/lib/contentState/imageCtrl.js | 4 ++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/muya/lib/contentState/backspaceCtrl.js b/src/muya/lib/contentState/backspaceCtrl.js index 71df87f7..9c206db8 100644 --- a/src/muya/lib/contentState/backspaceCtrl.js +++ b/src/muya/lib/contentState/backspaceCtrl.js @@ -103,9 +103,11 @@ const backspaceCtrl = ContentState => { ContentState.prototype.docBackspaceHandler = function (event) { // handle delete selected image - if (this.selectedImage) { + const { selectedImage } = this + if (selectedImage) { event.preventDefault() - return this.deleteImage(this.selectedImage) + this.selectedImage = null + return this.deleteImage(selectedImage) } if (this.selectedTableCells) { event.preventDefault() @@ -115,15 +117,17 @@ const backspaceCtrl = ContentState => { ContentState.prototype.backspaceHandler = function (event) { const { start, end } = selection.getCursorRange() + const { selectedImage } = this if (!start || !end) { return } // handle delete selected image - if (this.selectedImage) { + if (selectedImage) { event.preventDefault() - return this.deleteImage(this.selectedImage) + this.selectedImage = null + return this.deleteImage(selectedImage) } // Handle select all content. diff --git a/src/muya/lib/contentState/imageCtrl.js b/src/muya/lib/contentState/imageCtrl.js index 25af86cb..2802e748 100644 --- a/src/muya/lib/contentState/imageCtrl.js +++ b/src/muya/lib/contentState/imageCtrl.js @@ -169,6 +169,10 @@ const imageCtrl = ContentState => { } ContentState.prototype.deleteImage = function ({ key, token }) { + const { selectedImage } = this + if (selectedImage && (selectedImage.key === key)) { + this.selectedImage = null + } const block = this.getBlock(key) const oldText = block.text const { start, end } = token.range From 75aed2beef79dcc58335a0fabd34e185f64a5aae Mon Sep 17 00:00:00 2001 From: Kiyoka Nishiyama Date: Tue, 8 Mar 2022 13:18:30 +0000 Subject: [PATCH 2/2] fix: #3080 "BackSpace" shoutcut on a selected image deletes the whole line Reverted unnecessary modification code. --- src/muya/lib/contentState/backspaceCtrl.js | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/muya/lib/contentState/backspaceCtrl.js b/src/muya/lib/contentState/backspaceCtrl.js index 9c206db8..71df87f7 100644 --- a/src/muya/lib/contentState/backspaceCtrl.js +++ b/src/muya/lib/contentState/backspaceCtrl.js @@ -103,11 +103,9 @@ const backspaceCtrl = ContentState => { ContentState.prototype.docBackspaceHandler = function (event) { // handle delete selected image - const { selectedImage } = this - if (selectedImage) { + if (this.selectedImage) { event.preventDefault() - this.selectedImage = null - return this.deleteImage(selectedImage) + return this.deleteImage(this.selectedImage) } if (this.selectedTableCells) { event.preventDefault() @@ -117,17 +115,15 @@ const backspaceCtrl = ContentState => { ContentState.prototype.backspaceHandler = function (event) { const { start, end } = selection.getCursorRange() - const { selectedImage } = this if (!start || !end) { return } // handle delete selected image - if (selectedImage) { + if (this.selectedImage) { event.preventDefault() - this.selectedImage = null - return this.deleteImage(selectedImage) + return this.deleteImage(this.selectedImage) } // Handle select all content.