From 0058a15266ac959308541e7bfbc3a932615e8b68 Mon Sep 17 00:00:00 2001 From: Vinoth Kannan Date: Wed, 15 Jul 2020 09:34:54 +0530 Subject: [PATCH] FIX: prevent redirect when image scale btn is inside a link. Currently in composer preview, if the image scale buttons are inside a `` link then it redirects to the `href` location after the image scaling task. --- .../app/components/composer-editor.js | 30 ++++++++++--------- test/javascripts/acceptance/composer-test.js | 5 ++-- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/app/assets/javascripts/discourse/app/components/composer-editor.js b/app/assets/javascripts/discourse/app/components/composer-editor.js index f1520eb5b2..3fde471cc4 100644 --- a/app/assets/javascripts/discourse/app/components/composer-editor.js +++ b/app/assets/javascripts/discourse/app/components/composer-editor.js @@ -799,22 +799,24 @@ export default Component.extend({ if (matchingPlaceholder) { const match = matchingPlaceholder[index]; - if (!match) { - return; + + if (match) { + const replacement = match.replace( + imageScaleRegex, + `![$1|$2, ${scale}%$4]($5)` + ); + + this.appEvents.trigger( + "composer:replace-text", + matchingPlaceholder[index], + replacement, + { regex: imageScaleRegex, index } + ); } - - const replacement = match.replace( - imageScaleRegex, - `![$1|$2, ${scale}%$4]($5)` - ); - - this.appEvents.trigger( - "composer:replace-text", - matchingPlaceholder[index], - replacement, - { regex: imageScaleRegex, index } - ); } + + e.preventDefault(); + return; }); }, diff --git a/test/javascripts/acceptance/composer-test.js b/test/javascripts/acceptance/composer-test.js index 5a30d17c55..9d246cdd3c 100644 --- a/test/javascripts/acceptance/composer-test.js +++ b/test/javascripts/acceptance/composer-test.js @@ -750,7 +750,7 @@ QUnit.test("Image resizing buttons", async assert => { let uploads = [ // 0 Default markdown with dimensions- should work - "![test|690x313](upload://test.png)", + "![test|690x313](upload://test.png)", // 1 Image with scaling percentage, should work "![test|690x313,50%](upload://test.png)", // 2 image with scaling percentage and a proceeding whitespace, should work @@ -784,7 +784,8 @@ QUnit.test("Image resizing buttons", async assert => { ); // Default - uploads[0] = "![test|690x313, 50%](upload://test.png)"; + uploads[0] = + "![test|690x313, 50%](upload://test.png)"; await click( find(".button-wrapper[data-image-index='0'] .scale-btn[data-scale='50']") );