import { Link } from "@tanstack/react-router";
import { Avatar, RelativeTime, StatusDot } from "./ui/Primitives";
import type { StatusState } from "~/lib/types";
import type { CommitBrief } from "~/lib/code-intel";
import { SignatureBadge } from "./security/SignatureBadge";
import { useCommitSignatures } from "~/hooks/use-commit-signatures";
export function CommitList({
owner,
repo,
commits,
statuses = {},
}: {
owner: string;
repo: string;
commits: CommitBrief[];
statuses?: Record<string, StatusState>;
}) {
const signatures = useCommitSignatures(
owner,
repo,
commits.map((commit) => commit.sha),
);
return (
<ul className="divide-y divide-gray-800/70">
{commits.map((commit) => (
<li key={commit.sha} className="flex items-center gap-3 px-4 py-3">
<Avatar name={commit.authorName} size="sm" />
<div className="min-w-0 flex-1">
<Link
to="/$owner/$repo/commit/$sha"
params={{ owner, repo, sha: commit.sha }}
className="block truncate text-sm text-gray-100 hover:text-accent-400"
>
{commit.subject}
</Link>
<div className="text-xs text-gray-500">
{commit.authorName} committed <RelativeTime timestamp={commit.committedAt} />
</div>
</div>