119 lines
4.3 KiB
TypeScript
119 lines
4.3 KiB
TypeScript
"use client";
|
|
import Link from "next/link";
|
|
import Image from "next/image";
|
|
import { useLang } from "@/lib/language";
|
|
|
|
const t = {
|
|
zh: {
|
|
tagline1: "从一个想法,到可上线的软件产品",
|
|
tagline2: "全流程 AI 开发团队平台",
|
|
copyright: "保留所有权利。 taiji保留所有的权利。",
|
|
categories: {
|
|
"产品": [
|
|
{ label: "Heicode Manager", href: "https://code.xinghanlab.com/" },
|
|
{ label: "Heicode 客户端", href: "https://code.xinghanlab.com/" },
|
|
{ label: "Agnet 控制面", href: "https://agnet.taijiaicloud.com/" },
|
|
],
|
|
"资源": [
|
|
{ label: "文档", href: "/docs" },
|
|
{ label: "快速上手", href: "/docs#quickstart" },
|
|
{ label: "资源绑定", href: "/docs#resource-binding" },
|
|
{ label: "密钥保管器", href: "/docs#secret-vault" },
|
|
],
|
|
"公司": [
|
|
{ label: "关于我们", href: "https://www.taijiaicloud.com/" },
|
|
{ label: "博客", href: "#" },
|
|
{ label: "加入我们", href: "#" },
|
|
{ label: "联系方式", href: "#" },
|
|
],
|
|
"法律": [
|
|
{ label: "隐私政策", href: "/legal/privacy" },
|
|
{ label: "服务条款", href: "/legal/terms" },
|
|
{ label: "安全", href: "/legal/security" },
|
|
],
|
|
},
|
|
},
|
|
en: {
|
|
tagline1: "From an idea, to a shipped software product",
|
|
tagline2: "Full-lifecycle AI dev platform",
|
|
copyright: "All rights reserved. All rights reserved by taiji.",
|
|
categories: {
|
|
"Products": [
|
|
{ label: "Heicode Manager", href: "https://code.xinghanlab.com/" },
|
|
{ label: "Heicode Client", href: "https://code.xinghanlab.com/" },
|
|
{ label: "Agnet Console", href: "https://agnet.taijiaicloud.com/" },
|
|
],
|
|
"Resources": [
|
|
{ label: "Docs", href: "/docs" },
|
|
{ label: "Quick start", href: "/docs#quickstart" },
|
|
{ label: "Resource binding", href: "/docs#resource-binding" },
|
|
{ label: "Secret vault", href: "/docs#secret-vault" },
|
|
],
|
|
"Company": [
|
|
{ label: "About us", href: "https://www.taijiaicloud.com/" },
|
|
{ label: "Blog", href: "#" },
|
|
{ label: "Join us", href: "#" },
|
|
{ label: "Contact", href: "#" },
|
|
],
|
|
"Legal": [
|
|
{ label: "Privacy policy", href: "/legal/privacy" },
|
|
{ label: "Terms of service", href: "/legal/terms" },
|
|
{ label: "Security", href: "/legal/security" },
|
|
],
|
|
},
|
|
},
|
|
};
|
|
|
|
export function Footer() {
|
|
const { lang } = useLang();
|
|
const tx = t[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="/heicode-logo.png" alt="Heicode" width={18} height={18} />
|
|
</div>
|
|
<span className="bg-gradient-to-r from-blue-400 via-violet-400 to-purple-500 bg-clip-text text-lg font-semibold tracking-tight text-transparent">
|
|
Heicode
|
|
</span>
|
|
</Link>
|
|
<p className="mt-4 text-sm leading-relaxed text-muted-foreground">
|
|
{tx.tagline1}
|
|
<br />
|
|
{tx.tagline2}
|
|
</p>
|
|
</div>
|
|
|
|
{Object.entries(tx.categories).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={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">
|
|
<p className="text-sm text-muted-foreground">
|
|
© {new Date().getFullYear()} Heicode. {tx.copyright}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
);
|
|
}
|