{#snippet CommentItem(node: CommentNode)}
{formatRelativeDate(node.event.created_at || 0)} • Kind: {node.event.kind}
{shortenNevent(getNeventUrl(node.event))}
{#if node.event.kind === 9802}
{#if hasHighlightComment(node.event)}
Highlighted content:
{#if node.event.getMatchingTags("context")[0]?.[1]}
{@html node.event.getMatchingTags("context")[0]?.[1]}
{:else}
{node.event.content || ""}
{/if} {#if getHighlightSource(node.event)}
Source: {getHighlightSource(node.event)?.type === 'nostr_event' ? 'Nostr Event' : 'URL'}
{/if}
Comment:
{:else} {#if node.event.getMatchingTags("context")[0]?.[1]}
{@html node.event.getMatchingTags("context")[0]?.[1]}
{:else}
{node.event.content || ""}
{/if} {#if getHighlightSource(node.event)}
Source: {getHighlightSource(node.event)?.type === 'nostr_event' ? 'Nostr Event' : 'URL'}
{/if} {/if} {#if getHighlightAttribution(node.event).length > 0}
Attribution: {#each getHighlightAttribution(node.event) as attribution} {/each}
{/if}
{:else} {/if}
{#if node.children.length > 0}
{#each node.children as childNode, index (childNode.event.id + '-' + index)} {@render CommentItem(childNode)} {/each}
{/if}
{/snippet}
Comments & Highlights ({threadedComments.length}) {#if loading}

Loading comments...

{:else if error}

{error}

{:else if threadedComments.length === 0}

No comments or highlights yet. Be the first to engage!

{:else}
{#each threadedComments as node, index (node.event.id + '-root-' + index)} {@render CommentItem(node)} {/each}
{/if}