isFocused = true}
onblur={() => isFocused = false}
onkeydown={(e) => {
// Handle shortcuts when post is focused
if (e.key === 'r' && isLoggedIn && !showReplyForm) {
e.preventDefault();
showReplyForm = true;
} else if (e.key === 'Enter' && !showReplyForm) {
// Enter to view full event
e.preventDefault();
goto(getEventLink(post));
}
}}
>
{#if fullView}
{#snippet actions()}
{#if isLoggedIn && bookmarked}
🔖
{/if}
goto(getEventLink(post))}
/>
{#if isLoggedIn}
showReplyForm = !showReplyForm}
/>
{/if}
showReplyForm = !showReplyForm} />
{/snippet}
{#if shouldShowReply()}
{/if}
{#if hasQuotedEvent()}
{/if}
{#if getTitle()}
{getTitle()}
{/if}
{#if getSummary()}
{/if}
{#if (shouldAutoRenderMedia || fullView) && (post.content && post.content.trim() || isMediaKind)}
handleMediaUrlClick(e, url)} />
{/if}
{#if post.kind === KIND.POLL && fullView}
{:else if post.content && post.content.trim()}
{@const mediaAttachmentUrls = getMediaAttachmentUrls()}
{:else if !isMediaKind && post.kind !== KIND.POLL}
No content
{/if}
{getKindInfo(post.kind).number}
{getKindInfo(post.kind).description}
{:else}
{#snippet actions()}
goto(getEventLink(post))}
/>
{#if isLoggedIn}
showReplyForm = !showReplyForm}
/>
{/if}
showReplyForm = !showReplyForm} />
{/snippet}
{#if getTitle()}
{getTitle()}
{/if}
{#if getSummary()}
{/if}
{#if !fullView && (!post.content || !post.content.trim()) && !isMediaKind}
{/if}
{#if shouldAutoRenderMedia}
handleMediaUrlClick(e, url)} />
{/if}
{#each parseContentWithNIP21Links() as segment}
{@const highlightContent = getHighlightContent()}
{#if segment.type === 'text'}
{#if highlightContent && segment.content.includes(highlightContent)}
{@const parts = segment.content.split(highlightContent)}
{#each parts as part, i}
{part}
{#if i < parts.length - 1}
{highlightContent}
{/if}
{/each}
{:else}
{segment.content}
{/if}
{:else if segment.type === 'greentext'}
{segment.content}
{:else if segment.type === 'profile' && segment.pubkey}
{:else if segment.type === 'event' && segment.eventId}
{segment.content}
{:else if segment.type === 'url' && segment.url}
{@const isMediaUrl = /\.(jpg|jpeg|png|gif|webp|svg|bmp|mp4|webm|ogg|mov|avi|mkv|mp3|wav|ogg|flac|aac|m4a)(\?|#|$)/i.test(segment.url)}
{#if isMediaUrl}
{:else}
e.stopPropagation()}
>
{segment.content}
{/if}
{:else if segment.type === 'wikilink' && segment.wikilink}
e.stopPropagation()}
>
{segment.content}
{:else if segment.type === 'hashtag' && segment.hashtag}
e.stopPropagation()}
>
{segment.content}
{/if}
{/each}
{#if getMediaUrls().length > 0}
{@const mediaUrls = getMediaUrls()}
{#each mediaUrls as url}
{/each}
{/if}
{#if !fullView && shouldCollapse}
{/if}
{#if !fullView}
{/if}
{/if}