flotilla/src/app/components/ChatComposeEvent.svelte

25 lines
880 B
Svelte
Raw Normal View History

2024-08-19 21:22:16 +00:00
<script lang="ts">
2024-08-26 21:43:43 +00:00
import type {NodeViewProps} from "@tiptap/core"
import {NodeViewWrapper} from "svelte-tiptap"
import {ellipsize} from "@welshman/lib"
import {type TrustedEvent, fromNostrURI, Address} from "@welshman/util"
import Link from "@lib/components/Link.svelte"
import {deriveEvent} from "@app/state"
2024-08-19 21:22:16 +00:00
2024-08-26 21:43:43 +00:00
export let node: NodeViewProps["node"]
2024-08-19 21:22:16 +00:00
const displayEvent = (e: TrustedEvent) =>
2024-08-26 21:43:43 +00:00
e?.content.length > 1
? ellipsize(e.content, 50)
: fromNostrURI(nevent || naddr).slice(0, 16) + "..."
2024-08-19 21:22:16 +00:00
$: ({identifier, pubkey, kind, id, relays = [], nevent, naddr} = node.attrs)
$: event = deriveEvent(id || new Address(kind, pubkey, identifier).toString(), relays)
</script>
<NodeViewWrapper class="inline">
<Link external href="https://njump.me/{node.attrs.nevent}" class="link-content">
{displayEvent($event)}
</Link>
</NodeViewWrapper>