Improve quote rendering

This commit is contained in:
Jon Staab
2024-12-05 15:32:27 -08:00
parent 14cd49caf3
commit 1e0cb93183
9 changed files with 74 additions and 35 deletions
+14 -4
View File
@@ -2,7 +2,8 @@
import cx from "classnames"
import type {NodeViewProps} from "@tiptap/core"
import {NodeViewWrapper} from "svelte-tiptap"
import {ellipsize, nthEq} from "@welshman/lib"
import {always, nthEq} from "@welshman/lib"
import {parse, renderAsText, ParsedType} from "@welshman/content"
import {type TrustedEvent, fromNostrURI, Address} from "@welshman/util"
import Link from "@lib/components/Link.svelte"
import {deriveEvent, entityLink} from "@app/state"
@@ -10,12 +11,21 @@
export let node: NodeViewProps["node"]
export let selected: NodeViewProps["selected"]
const renderLink = (href: string, display: string) => display
const displayEvent = (e: TrustedEvent) => {
const content = e?.tags.find(nthEq(0, "alt"))?.[1] || e?.content || ""
return content.length > 1
? ellipsize(content, 30)
: fromNostrURI(nevent || naddr).slice(0, 16) + "..."
if (content.length < 1) {
return fromNostrURI(nevent || naddr).slice(0, 16) + "..."
}
const parsed = parse({...e, content})
// Try stripping entities, but if we get nothing back go ahead and show them
const renderEntity = always(parsed.find(p => p.type === ParsedType.Text) ? "" : "[quote]")
return renderAsText(parsed, {renderLink, renderEntity})
}
$: ({identifier, pubkey, kind, id, relays = [], nevent, naddr} = node.attrs)