← All @molecule/* packages · App templates
@molecule/app-forum-thread-row-reactFeature · forum-thread-row · App (browser) · v1.0.1 · Apache-2.0
Discussion / forum thread row with vote score, reply count, pin/lock badges, tags
npm install @molecule/app-forum-thread-row-react@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
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.
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.
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)}
/>
feature
npm install @molecule/app-forum-thread-row-react @molecule/app-react @molecule/app-ui @molecule/app-ui-react react
npm install -D @types/react
ForumThreadRowPropsProps for {@link 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
}
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 (see {@link ForumThreadRowProps}).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@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 /
voteControls or wrap the row until the package routes text through t().
The row has no data-mol-id support yet; add your own wrapper attribute
if AI-agent/e2e selectors need to target it.