aboutsummaryrefslogtreecommitdiff
path: root/src/emojiPlugin.tsx
diff options
context:
space:
mode:
authoreug-vs <eugene@eug-vs.xyz>2022-09-23 13:21:23 +0300
committereug-vs <eugene@eug-vs.xyz>2022-09-23 13:21:23 +0300
commit2756d9a8db2a49db36dc87d31d85283bb7a992f9 (patch)
treeee185004a6c5df0ce20e8cada5bf289fa80a1726 /src/emojiPlugin.tsx
parent8ade7d03cef8105891ac6a9253970da9d78ee84f (diff)
downloadbenzin-next-2756d9a8db2a49db36dc87d31d85283bb7a992f9.tar.gz
feat: add remark-gemoji plugin
Diffstat (limited to 'src/emojiPlugin.tsx')
-rw-r--r--src/emojiPlugin.tsx36
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])
}
}