import type { ReleaseRow, RepositoryRow } from "../../db/index.ts"; import { formatDate } from "../../lib/formatDate.ts"; import type { SessionUser } from "../../middleware/session.ts"; import { markdownToPlaintext, renderMarkdown, } from "../../services/markdown.ts"; import { Layout } from "../layout.tsx"; import { Pagination, type PaginationInfo } from "../Pagination.tsx"; import { RepoHeader } from "../repos/RepoHeader.tsx"; import { RepoNav } from "../repos/RepoNav.tsx"; interface ReleaseListProps { user: SessionUser | null; repo: RepositoryRow; releases: (ReleaseRow & { asset_count: number })[]; pagination: PaginationInfo; } function NotesPreview({ notes }: { notes: string }) { const plaintext = markdownToPlaintext(notes); return (
{plaintext}
{renderMarkdown(notes)}
); } export function ReleaseList({ user, repo, releases, pagination, }: ReleaseListProps) { return (

Releases

{user?.isAdmin && ( New release )}
{releases.length === 0 ? (

No releases yet.

) : ( )}
); }