138 lines
5.0 KiB
TypeScript
138 lines
5.0 KiB
TypeScript
import Link from "next/link";
|
|
import Image from "next/image";
|
|
import type { Lang } from "@/app/page";
|
|
|
|
const DOCS_URL = "https://doc.xinghanlab.com/";
|
|
|
|
const copy = {
|
|
en: {
|
|
tagline: ["From one idea to production software", "Organize an AI development team with code and cloud resources"],
|
|
copyright: "All rights reserved.",
|
|
footerLinks: {
|
|
Product: [
|
|
{ label: "Heicode Client", href: "#" },
|
|
{ label: "Heicode Manager", href: "https://code.xinghanlab.com/" },
|
|
{ label: "Agent Platform", href: "https://agnet.taijiaicloud.com/" },
|
|
{ label: "Agent Swarm", href: "/swarm" },
|
|
],
|
|
Resources: [
|
|
{ label: "Documentation", href: DOCS_URL },
|
|
{ label: "Resource binding", href: "#" },
|
|
{ label: "Secret vault", href: "#" },
|
|
{ label: "CodeGW boundary", href: "#" },
|
|
{ label: "Product demo", href: "#" },
|
|
],
|
|
Company: [
|
|
{ label: "About us", href: "https://www.taijiaicloud.com/" },
|
|
{ label: "Blog", href: "#" },
|
|
{ label: "Careers", href: "#" },
|
|
{ label: "Contact", href: "mailto:november@taijiaicloud.com" },
|
|
],
|
|
Legal: [
|
|
{ label: "Privacy", href: "#" },
|
|
{ label: "Terms", href: "#" },
|
|
{ label: "Security", href: "#" },
|
|
],
|
|
},
|
|
},
|
|
zh: {
|
|
tagline: ["从一个想法,到可上线的软件产品", "组织 AI 开发团队,接入代码和云资源"],
|
|
copyright: "保留所有权利。",
|
|
footerLinks: {
|
|
产品: [
|
|
{ label: "Heicode 客户端", href: "#" },
|
|
{ label: "Heicode Manager", href: "https://code.xinghanlab.com/" },
|
|
{ label: "Agent 平台", href: "https://agnet.taijiaicloud.com/" },
|
|
{ label: "Agent 蜂群", href: "/swarm" },
|
|
],
|
|
资源: [
|
|
{ label: "文档", href: DOCS_URL },
|
|
{ label: "资源绑定", href: "#" },
|
|
{ label: "密钥保管器", href: "#" },
|
|
{ label: "CodeGW 边界", href: "#" },
|
|
{ label: "产品演示", href: "#" },
|
|
],
|
|
公司: [
|
|
{ label: "关于我们", href: "https://www.taijiaicloud.com/" },
|
|
{ label: "博客", href: "#" },
|
|
{ label: "加入我们", href: "#" },
|
|
{ label: "联系方式", href: "mailto:november@taijiaicloud.com" },
|
|
],
|
|
法律: [
|
|
{ label: "隐私政策", href: "#" },
|
|
{ label: "服务条款", href: "#" },
|
|
{ label: "安全", href: "#" },
|
|
],
|
|
},
|
|
},
|
|
} satisfies Record<Lang, {
|
|
tagline: [string, string];
|
|
copyright: string;
|
|
footerLinks: Record<string, Array<{ label: string; href: string }>>;
|
|
}>;
|
|
|
|
export function Footer({ lang }: { lang: Lang }) {
|
|
const t = copy[lang];
|
|
|
|
return (
|
|
<footer className="border-t border-border bg-background">
|
|
<div className="mx-auto max-w-7xl px-4 py-12 sm:px-6 lg:px-8 lg:py-16">
|
|
<div className="grid gap-8 sm:grid-cols-2 lg:grid-cols-5">
|
|
<div className="lg:col-span-1">
|
|
<Link href="/" className="flex items-center gap-2">
|
|
<div className="flex h-8 w-8 items-center justify-center rounded-md border border-border/70 bg-card/60 text-foreground">
|
|
<Image src="/taiji-logo.png" alt="Heicode" width={18} height={18} />
|
|
</div>
|
|
<span className="text-lg font-black tracking-tight text-foreground">
|
|
Heicode
|
|
</span>
|
|
</Link>
|
|
<p className="mt-4 text-sm leading-relaxed text-muted-foreground">
|
|
{t.tagline[0]}
|
|
<br />
|
|
{t.tagline[1]}
|
|
</p>
|
|
</div>
|
|
|
|
{Object.entries(t.footerLinks).map(([category, links]) => (
|
|
<div key={category}>
|
|
<h3 className="text-sm font-semibold">{category}</h3>
|
|
<ul className="mt-4 space-y-3">
|
|
{links.map((link) => (
|
|
<li key={link.label}>
|
|
{link.href.startsWith("http") || link.href.startsWith("mailto:") ? (
|
|
<a
|
|
href={link.href}
|
|
target="_blank"
|
|
rel="noreferrer"
|
|
className="text-sm text-muted-foreground transition-colors hover:text-foreground"
|
|
>
|
|
{link.label}
|
|
</a>
|
|
) : (
|
|
<Link
|
|
href={link.href}
|
|
className="text-sm text-muted-foreground transition-colors hover:text-foreground"
|
|
>
|
|
{link.label}
|
|
</Link>
|
|
)}
|
|
</li>
|
|
))}
|
|
</ul>
|
|
</div>
|
|
))}
|
|
</div>
|
|
|
|
<div className="mt-12 border-t border-border pt-8">
|
|
<div className="flex flex-col items-center justify-between gap-4 sm:flex-row">
|
|
<p className="text-sm text-muted-foreground">
|
|
© {new Date().getFullYear()} Taiji. {t.copyright}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
);
|
|
}
|