From cd84a05600716fa74f0c4d4f4f73ab319af4db9d Mon Sep 17 00:00:00 2001 From: Duong Tam Chau Date: Mon, 22 Feb 2016 20:07:19 -0500 Subject: [PATCH] FIX: Remove existing characters when a new emoji is selected. When the user choose an emoji from the "More..." option, any previously typed character should be discarded. --- .../javascripts/discourse/components/d-editor.js.es6 | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/discourse/components/d-editor.js.es6 b/app/assets/javascripts/discourse/components/d-editor.js.es6 index e81f14c212a..36bc6b965fc 100644 --- a/app/assets/javascripts/discourse/components/d-editor.js.es6 +++ b/app/assets/javascripts/discourse/components/d-editor.js.es6 @@ -301,7 +301,16 @@ export default Ember.Component.extend({ showSelector({ appendTo: self.$(), container, - onSelect: title => self._addText(self._getSelected(), `${title}:`) + onSelect: title => { + // Remove the previously type characters when a new emoji is selected from the selector. + let selected = self._getSelected(); + let newPre = selected.pre.replace(/:[^:]+$/, ":"); + let numOfRemovedChars = selected.pre.length - newPre.length; + selected.pre = newPre; + selected.start -= numOfRemovedChars; + selected.end -= numOfRemovedChars; + self._addText(selected, `${title}:`); + } }); return ""; }