diff --git a/src/features/compose/editor/nodes/emoji-node.tsx b/src/features/compose/editor/nodes/emoji-node.tsx index 523b225c1f..7f7d717676 100644 --- a/src/features/compose/editor/nodes/emoji-node.tsx +++ b/src/features/compose/editor/nodes/emoji-node.tsx @@ -29,7 +29,7 @@ class EmojiNode extends DecoratorNode { } static clone(node: EmojiNode): EmojiNode { - return new EmojiNode(node.__name, node.__src); + return new EmojiNode(node.__name, node.__src, node.__key); } constructor(name: string, src: string, key?: NodeKey) { @@ -79,7 +79,7 @@ class EmojiNode extends DecoratorNode { return false; } - isTextEntity(): true { + isTextEntity(): boolean { return true; } diff --git a/src/features/compose/editor/plugins/autosuggest-plugin.tsx b/src/features/compose/editor/plugins/autosuggest-plugin.tsx index 523954c28a..6bd831c5a6 100644 --- a/src/features/compose/editor/plugins/autosuggest-plugin.tsx +++ b/src/features/compose/editor/plugins/autosuggest-plugin.tsx @@ -39,7 +39,6 @@ import { selectAccount } from 'soapbox/selectors'; import { textAtCursorMatchesToken } from 'soapbox/utils/suggestions'; import AutosuggestAccount from '../../components/autosuggest-account'; -import { $createEmojiNode } from '../nodes/emoji-node'; import type { AutoSuggestion } from 'soapbox/components/autosuggest-input'; @@ -315,16 +314,7 @@ const AutosuggestPlugin = ({ if (isNativeEmoji(suggestion)) { node.spliceText(leadOffset - 1, matchingString.length, `${suggestion.native} `, true); } else { - const completion = suggestion.colons; - - let emojiText; - - if (leadOffset === 1) emojiText = node; - else [, emojiText] = node.splitText(leadOffset - 1); - - [emojiText] = emojiText.splitText(matchingString.length); - - emojiText?.replace($createEmojiNode(completion, suggestion.imageUrl)); + node.spliceText(leadOffset - 1, matchingString.length, `${suggestion.colons} `, true); } } else if (suggestion[0] === '#') { node.setTextContent(`${suggestion} `);