import Link from "next/link"; import type { TreeEntry } from "@/lib/api"; import { byteSize } from "@/lib/format"; function DirIcon() { return ( ); } function FileIcon() { return ( ); } export default function TreeTable({ repo, refName, dir, entries, }: { repo: string; refName: string; dir: string; entries: TreeEntry[]; }) { const ref = encodeURIComponent(refName); const base = dir ? `${dir}/` : ""; return (
{entries.map((e) => { const href = `/${repo}/${e.type === "tree" ? "tree" : "blob"}/${ref}/${base}${e.name}`; return (
{e.type === "tree" ? : } {e.type === "commit" ? ( {e.name} @ {e.hash.slice(0, 7)} ) : ( {e.name} {e.type === "tree" ? "/" : ""} )} {e.type === "blob" ? byteSize(e.size) : ""}
); })} {entries.length === 0 && (

empty directory

)}
); }