Fix splitted emoji

This commit is contained in:
Eduard Kuzmenko 2021-08-26 15:54:41 +03:00
parent ad84315ca4
commit bd3c5fc372
2 changed files with 13 additions and 1 deletions

View File

@ -7,7 +7,6 @@
import App from './config/app';
import blurActiveElement from './helpers/dom/blurActiveElement';
import { cancelEvent } from './helpers/dom/cancelEvent';
import fixSafariStickyInput from './helpers/dom/fixSafariStickyInput';
import { IS_STICKY_INPUT_BUGGED } from './helpers/dom/fixSafariStickyInputFocusing';
import loadFonts from './helpers/dom/loadFonts';
import IS_EMOJI_SUPPORTED from './helpers/emojiSupport';

View File

@ -382,6 +382,19 @@ namespace RichTextProcessor {
currentEntities.push(...filtered);
currentEntities.sort((a, b) => a.offset - b.offset);
if(!emojiSupported) { // fix splitted emoji. messageEntityTextUrl can split the emoji if starts before its end (e.g. on fe0f)
for(let i = 0; i < currentEntities.length; ++i) {
const entity = currentEntities[i];
if(entity._ === 'messageEntityEmoji') {
const nextEntity = currentEntities[i + 1];
if(nextEntity && nextEntity.offset < (entity.offset + entity.length)) {
entity.length = nextEntity.offset - entity.offset;
}
}
}
}
return currentEntities;
}