canvas-with-twemoji
Version:
Load emojis on canvas
25 lines (17 loc) • 615 B
JavaScript
const { parse } = require('twemoji-parser');
module.exports = function splitEntitiesFromText (text) {
const twemojiEntities = parse(text, { assetType: 'svg' });
let unparsedText = text;
let lastTwemojiIndice = 0;
const textEntities = [];
twemojiEntities.forEach((twemoji) => {
textEntities.push(
unparsedText.slice(0, twemoji.indices[0] - lastTwemojiIndice)
);
textEntities.push(twemoji);
unparsedText = unparsedText.slice(twemoji.indices[1] - lastTwemojiIndice);
lastTwemojiIndice = twemoji.indices[1];
});
textEntities.push(unparsedText);
return textEntities;
}