import pkg from "../package.json"; import type { FooterLink, FooterLinksAlign } from "@/lib/brand"; import FooterTiming from "./FooterTiming"; // 官方镜像构建会写入 NEXT_PUBLIC_APP_VERSION(可与脚手架 0.1.0 相同)。 // 未注入时,脚手架默认号仍当未发布,页脚显示占位。 function realVersion(pkgVersion: string): string { const injected = process.env.NEXT_PUBLIC_APP_VERSION?.trim(); if (injected) return injected; return !pkgVersion || pkgVersion === "0.0.0" || pkgVersion === "0.1.0" ? "" : pkgVersion; } function zoneLinks(links: FooterLink[], align: FooterLinksAlign): FooterLink[] { return links.filter((item) => (item.align || "right") === align); } function LinkGroup({ items }: { items: FooterLink[] }) { if (items.length === 0) return null; return (
{items.map((item) => ( {item.label} ))}
); } // 极简页脚:版权 / 版本 / 耗时 + 左 / 中 / 右三栏链接 export default function Footer({ siteName = "姜十三社区", links = [], }: { siteName?: string; links?: FooterLink[]; }) { const year = new Date().getFullYear(); const brand = siteName.trim() || "姜十三社区"; const visible = links.filter((item) => item.label.trim() && item.url.trim()); const left = zoneLinks(visible, "left"); const center = zoneLinks(visible, "center"); const right = zoneLinks(visible, "right"); return ( ); }