Merge pull request #6823 from SimonBrandner/fix/emoji-dupe/19073
Fix last character duplication with `Automatically replace plain text emoji` on
This commit is contained in:
commit
05971e0492
1 changed files with 6 additions and 4 deletions
|
@ -181,16 +181,18 @@ export default class BasicMessageEditor extends React.Component<IProps, IState>
|
||||||
|
|
||||||
if (data) {
|
if (data) {
|
||||||
const { partCreator } = model;
|
const { partCreator } = model;
|
||||||
const moveStart = emoticonMatch[0][0] === " " ? 1 : 0;
|
const firstMatch = emoticonMatch[0];
|
||||||
const moveEnd = emoticonMatch[0].length - emoticonMatch.length - moveStart;
|
const moveStart = firstMatch[0] === " " ? 1 : 0;
|
||||||
|
|
||||||
// we need the range to only comprise of the emoticon
|
// we need the range to only comprise of the emoticon
|
||||||
// because we'll replace the whole range with an emoji,
|
// because we'll replace the whole range with an emoji,
|
||||||
// so move the start forward to the start of the emoticon.
|
// so move the start forward to the start of the emoticon.
|
||||||
// Take + 1 because index is reported without the possible preceding space.
|
// Take + 1 because index is reported without the possible preceding space.
|
||||||
range.moveStartForwards(emoticonMatch.index + moveStart);
|
range.moveStartForwards(emoticonMatch.index + moveStart);
|
||||||
// and move end backwards so that we don't replace the trailing space/newline
|
// If the end is a trailing space/newline move end backwards, so that we don't replace it
|
||||||
range.moveEndBackwards(moveEnd);
|
if (["\n", " "].includes(firstMatch[firstMatch.length - 1])) {
|
||||||
|
range.moveEndBackwards(1);
|
||||||
|
}
|
||||||
|
|
||||||
// this returns the amount of added/removed characters during the replace
|
// this returns the amount of added/removed characters during the replace
|
||||||
// so the caret position can be adjusted.
|
// so the caret position can be adjusted.
|
||||||
|
|
Loading…
Reference in a new issue