Replace svelte components with node views

This commit is contained in:
Jon Staab
2025-02-04 20:00:19 -08:00
parent 506276f594
commit fd99866b1e
16 changed files with 129 additions and 91 deletions
+26
View File
@@ -0,0 +1,26 @@
import type {NodeViewProps} from '@tiptap/core'
import {deriveProfileDisplay} from "@welshman/app"
export const MentionNodeView = ({node}: NodeViewProps) => {
const dom = document.createElement('span')
const display = deriveProfileDisplay(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')
},
}
}