From 90f29dce3d675f850e48ede2edb187e6c53b84da Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Mon, 2 Mar 2026 19:26:41 -0800 Subject: parse links --- src/components/ChatMessage.svelte | 87 +++++++++++++++++++++++++++++++++++++++ src/components/Event.svelte | 2 + 2 files changed, 89 insertions(+) create mode 100644 src/components/ChatMessage.svelte (limited to 'src/components') diff --git a/src/components/ChatMessage.svelte b/src/components/ChatMessage.svelte new file mode 100644 index 00000000..7283430f --- /dev/null +++ b/src/components/ChatMessage.svelte @@ -0,0 +1,87 @@ + + +{#each parts as { type, value }} + {#if type === "text"} + {value} + {:else if type === "newline"} +
+ {:else if type === "link"} + {#if isImage(value.url)} + + + + {:else if isVideo(value.url)} + + + {:else if isAudio(value.url)} + + {:else} + {truncUrl(value.url)} + {/if} + {:else if type === "topic"} + #{value} + {:else if type.match(/^nostr:n(profile|pub)$/)} + {#await resolveName(value.pubkey)} + @{value.pubkey.slice(0, 8)}... + {:then name} + {name} + {/await} + {:else if type === "nostr:note"} + nostr:{value.entity?.slice(0, 16)}... + {:else if type === "nostr:nevent"} + nostr:{value.entity?.slice(0, 16)}... + {/if} +{/each} + + diff --git a/src/components/Event.svelte b/src/components/Event.svelte index 7a9c75d4..9d25e26e 100644 --- a/src/components/Event.svelte +++ b/src/components/Event.svelte @@ -70,6 +70,8 @@ {value} {:else if type === "link"} + {:else if type === "topic"} + #{value} {:else if type.match(/^nostr:np(rofile|ub)$/)} @{names[value.pubkey]} {/if} -- cgit v1.2.3