@molecule/app-forum-thread-row-react
Feature · forum-thread-row · App (browser) · v1.0.2 · Apache-2.0
Discussion / forum thread row with vote score, reply count, pin/lock badges, tags
npm install @molecule/app-forum-thread-row-reactHow it works
@molecule/app-forum-thread-row-react is a ready-made forum-thread-row feature for the app (browser) side. It composes the core interfaces it needs, so it works with whichever providers your app has bonded.
import { ForumThreadRow } from '@molecule/app-forum-thread-row-react'
const thread = { id: 't1', title: 'How do I reset my password?' }
<ForumThreadRow
title={thread.title}
excerpt="I tried the forgot-password link but never received an email."
voteScore={42}
replyCount={7}
viewCount={320}
author="alice"
createdAt="2 hours ago"
onClick={() => console.log('open thread', thread.id)}
/>Works with: @molecule/app-react, @molecule/app-ui, @molecule/app-ui-react
Reference
Forum / discussion-board thread row — title, optional excerpt, vote score,
reply/view counts, pin/lock badges, author, timestamp, and an optional
voteControls slot for inline up/down buttons.
Auto-generated, AI-first package reference for the molecule.dev ecosystem. It is written to be read by coding agents as much as by people, and is generated from this package's source — edit
src/index.tsJSDoc, not this file.
Quick Start
import { ForumThreadRow } from '@molecule/app-forum-thread-row-react'
const thread = { id: 't1', title: 'How do I reset my password?' }
<ForumThreadRow
title={thread.title}
excerpt="I tried the forgot-password link but never received an email."
voteScore={42}
replyCount={7}
viewCount={320}
author="alice"
createdAt="2 hours ago"
onClick={() => console.log('open thread', thread.id)}
/>
Type
feature
Installation
npm install @molecule/app-forum-thread-row-react @molecule/app-react @molecule/app-ui @molecule/app-ui-react react
npm install -D @types/react
API
Interfaces
ForumThreadRowProps
Props for ForumThreadRow.
interface ForumThreadRowProps {
title: ReactNode
/** Optional snippet of the OP body. */
excerpt?: ReactNode
/** Aggregate vote score / upvotes. */
voteScore?: number
/** Reply count. */
replyCount?: number
/** View count. */
viewCount?: number
/** Optional pinned indicator. */
pinned?: boolean
/** Optional locked indicator. */
locked?: boolean
/** Author display. */
author?: ReactNode
/** Created-at display (relative or absolute). */
createdAt?: ReactNode
/** Tag chips. */
tags?: ReactNode
/** Right-side voting controls slot. */
voteControls?: ReactNode
/** Click handler. */
onClick?: () => void
/** Extra classes. */
className?: string
}
Functions
ForumThreadRow(props)
Forum / discussion-board thread row. Shows the title, optional
excerpt, vote score + reply/view counts, pin/lock badges, author,
and timestamp. Pass voteControls to render up/down buttons inline.
function ForumThreadRow({
title,
excerpt,
voteScore,
replyCount,
viewCount,
pinned,
locked,
author,
createdAt,
tags,
voteControls,
onClick,
className,
}: ForumThreadRowProps): ReactNode
props— Component props (seeForumThreadRowProps).
Injection Notes
Requirements
Peer dependencies:
@molecule/app-react^1.0.1@molecule/app-ui^1.0.1@molecule/app-ui-react^1.0.1react^18.0.0 || ^19.0.0
Runtime Dependencies
-
@molecule/app-react -
@molecule/app-ui -
@molecule/app-ui-react -
react -
Styling routes through
getClassMap()— a ClassMap bond (e.g.@molecule/app-ui-tailwind) must be wired or rendering throws. -
KNOWN GAP: the counter labels ("votes", "replies", "views") and the pin/lock aria-labels are hardcoded English (there is no companion locale bond yet). For localized apps, pass pre-formatted content via
tags/voteControlsor wrap the row until the package routes text throught(). -
The row has no
data-mol-idsupport yet; add your own wrapper attribute if AI-agent/e2e selectors need to target it.