diff --git a/src/features/compose/editor/nodes/mention-node.tsx b/src/features/compose/editor/nodes/mention-node.tsx deleted file mode 100644 index a559eda40..000000000 --- a/src/features/compose/editor/nodes/mention-node.tsx +++ /dev/null @@ -1,69 +0,0 @@ -/** - * This source code is derived from code from Meta Platforms, Inc. - * and affiliates, licensed under the MIT license located in the - * LICENSE file in the /app/soapbox/features/compose/editor directory. - */ - -import { addClassNamesToElement } from '@lexical/utils'; -import { $applyNodeReplacement, TextNode } from 'lexical'; - -import type { - EditorConfig, - LexicalNode, - NodeKey, - SerializedTextNode, -} from 'lexical'; - -class MentionNode extends TextNode { - - static getType(): string { - return 'mention'; - } - - static clone(node: MentionNode): MentionNode { - return new MentionNode(node.__text, node.__key); - } - - constructor(text: string, key?: NodeKey) { - super(text, key); - } - - createDOM(config: EditorConfig): HTMLElement { - const element = super.createDOM(config); - addClassNamesToElement(element, config.theme.mention); - return element; - } - - static importJSON(serializedNode: SerializedTextNode): MentionNode { - const node = $createMentionNode(serializedNode.text); - node.setFormat(serializedNode.format); - node.setDetail(serializedNode.detail); - node.setMode(serializedNode.mode); - node.setStyle(serializedNode.style); - return node; - } - - exportJSON(): SerializedTextNode { - return { - ...super.exportJSON(), - type: 'mention', - }; - } - - canInsertTextBefore(): boolean { - return false; - } - - isTextEntity(): true { - return true; - } - -} - -const $createMentionNode = (text = ''): MentionNode => $applyNodeReplacement(new MentionNode(text)); - -const $isMentionNode = ( - node: LexicalNode | null | undefined, -): node is MentionNode => node instanceof MentionNode; - -export { MentionNode, $createMentionNode, $isMentionNode };