import type {NodeViewProps} from "@tiptap/core" import {profiles} from "@app/core" export const MentionNodeView = ({node}: NodeViewProps) => { const dom = document.createElement("span") const display = profiles.get().display(node.attrs.pubkey).$ dom.classList.add("tiptap-object") const unsubDisplay = display.subscribe($display => { dom.textContent = "@" + $display }) return { dom, destroy: () => { unsubDisplay() }, selectNode() { dom.classList.add("tiptap-active") }, deselectNode() { dom.classList.remove("tiptap-active") }, } }