import Link from "next/link";
import { contributorAvatarUrl, dedupeContributors, type Contributor } from "@/lib/contributors";
const landingContributorLimit = 72;
const landingContributorRowSizes = [12, 16, 16, 16, 12] as const;
function ContributorAvatar({ c }: { c: Contributor }) {
return (
{c.login}
{c.contributions} contributions
);
}
export function ContributorsWallContent({ contributors, title, desc, lang }: { contributors: Contributor[]; title: string; desc: string; lang: "en" | "cn" }) {
const uniqueContributors = dedupeContributors(contributors);
const visibleContributors = uniqueContributors.slice(0, landingContributorLimit);
let contributorOffset = 0;
const contributorRows = landingContributorRowSizes.map((rowSize) => {
const row = visibleContributors.slice(contributorOffset, contributorOffset + rowSize);
contributorOffset += rowSize;
return row;
});
if (uniqueContributors.length === 0) return null;
return (
<>
{desc}{" "} {lang === "cn" ? `查看 ${uniqueContributors.length}+ 位贡献者` : `Explore ${uniqueContributors.length}+ contributors`} {lang === "cn" ? "下载贡献者证书" : "Download contributor certificate"}