diff options
author | eug-vs <eugene@eug-vs.xyz> | 2022-09-23 13:21:23 +0300 |
---|---|---|
committer | eug-vs <eugene@eug-vs.xyz> | 2022-09-23 13:21:23 +0300 |
commit | 2756d9a8db2a49db36dc87d31d85283bb7a992f9 (patch) | |
tree | ee185004a6c5df0ce20e8cada5bf289fa80a1726 /src/emojiPlugin.tsx | |
parent | 8ade7d03cef8105891ac6a9253970da9d78ee84f (diff) | |
download | benzin-next-2756d9a8db2a49db36dc87d31d85283bb7a992f9.tar.gz |
feat: add remark-gemoji plugin
Diffstat (limited to 'src/emojiPlugin.tsx')
-rw-r--r-- | src/emojiPlugin.tsx | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/src/emojiPlugin.tsx b/src/emojiPlugin.tsx index a408ed7..e23ac37 100644 --- a/src/emojiPlugin.tsx +++ b/src/emojiPlugin.tsx @@ -16,26 +16,28 @@ const emojiPlugin = (emojiFileNames: string[]) => () => { const emoji = match[0]?.replaceAll(':', '') || ''; const src = emojiFileNames.find(fileName => fileName.match(`${emoji}.*`)); - const beforeNode = { - type: 'text', - value: text.slice(0, match.index), - } - - const emojiNode = { - type: 'element', - tagName: 'emoji', - children: [{ + if (src) { + const beforeNode = { type: 'text', - value: src, - }], - } + value: text.slice(0, match.index), + } + + const emojiNode = { + type: 'element', + tagName: 'emoji', + children: [{ + type: 'text', + value: src, + }], + } + + const afterNode = { + type: 'text', + value: text.slice(match.index + emoji?.length + 2), + } - const afterNode = { - type: 'text', - value: text.slice(match.index + emoji?.length + 2), + parent.children.splice(nodeIndex, 1, ...[beforeNode, emojiNode, afterNode]) } - - parent.children.splice(nodeIndex, 1, ...[beforeNode, emojiNode, afterNode]) } } |