{/* Header */} {topic.title} {/* Author + timestamp */} {topic.author?.avatarUrl ? ( ) : ( {(topic.author?.displayName ?? topic.author?.handle ?? '?')[0]?.toUpperCase()} )} {topic.author?.displayName ?? topic.author?.handle ?? topic.authorDid} ยท {formatRelativeTime(topic.publishedAt)} {isEdited(topic.publishedAt, topic.indexedAt) && ( (edited) )} {/* Category + Tags */} {topic.category} {topic.tags?.map((tag) => ( #{tag} ))} {/* Moderation controls */} {isModerator && onModerationAction && ( )} {/* Content */} {selfLabels && selfLabels.length > 0 ? ( ) : ( )} {/* Footer: read signals left, actions right */} {reactions && onReactionToggle && ( )} Last activity {formatRelativeTime(topic.lastActivityAt)} {canEdit && onEdit && ( Edit )} {onReply ? ( {formatCompactNumber(topic.replyCount)} ) : ( {formatCompactNumber(topic.replyCount)} )} {canReport && onReport && }