Files
heicode/website/components/cta.tsx
T
gongzhiyongandOmX 3ac920a493 Route website registration to CodeGW signup
Website visitors now have a single registration path through the CodeGW sign-up page, while the header no longer presents a separate login action beside registration. Static export output is included so the repository matches the deployed Azure Static Web Apps artifact.

Constraint: Website must use the CodeGW sign-up URL and remove the header login button.
Rejected: Keeping the separate Agnet login URL | it sends registration traffic to the wrong surface.
Confidence: high
Scope-risk: narrow
Directive: Keep public website registration links pointed at https://code.xinghanlab.com/sign-up unless product routing changes.
Tested: pnpm run build; Azure Static Web Apps production deploy; live curl checks for sign-up URL and removed login link.
Not-tested: Browser visual pass after deployment.
Co-authored-by: OmX <omx@oh-my-codex.dev>
2026-05-18 21:48:47 +08:00

61 lines
2.2 KiB
TypeScript

import { Button } from "@/components/ui/button";
import { ArrowRight } from "lucide-react";
import type { Lang } from "@/app/page";
const MANAGER_URL = "https://code.xinghanlab.com/";
const REGISTER_URL = "https://code.xinghanlab.com/sign-up";
const copy = {
en: {
title: "Move an idea into a real development flow",
description:
"Heicode does more than generate code. It organizes product intent, code, permissions, models, deployment, and maintenance into one auditable software lifecycle.",
primary: "Enter Heicode",
secondary: "Register account",
},
zh: {
title: "让想法进入真实开发流程",
description:
"不是只生成代码,而是把产品、代码、权限、模型、部署和维护组织成一个可审计的软件生命周期。",
primary: "进入 Heicode",
secondary: "注册账号",
},
} satisfies Record<Lang, {
title: string;
description: string;
primary: string;
secondary: string;
}>;
export function CTA({ lang }: { lang: Lang }) {
const t = copy[lang];
return (
<section className="border-t border-border bg-foreground py-20 text-background sm:py-28">
<div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
<div className="mx-auto max-w-2xl text-center">
<h2 className="text-3xl font-black tracking-tight sm:text-5xl">
{t.title}
</h2>
<p className="mt-4 text-lg text-background/70">
{t.description}
</p>
<div className="mt-10 flex flex-col items-center justify-center gap-4 sm:flex-row">
<Button size="lg" className="h-12 rounded-full bg-primary px-7 text-primary-foreground hover:bg-primary/90" asChild>
<a href={MANAGER_URL} target="_blank" rel="noreferrer">
{t.primary}
<ArrowRight className="h-4 w-4" />
</a>
</Button>
<Button variant="outline" size="lg" className="h-12 rounded-full border-background/30 bg-transparent px-7 text-background hover:bg-background hover:text-foreground" asChild>
<a href={REGISTER_URL} target="_blank" rel="noreferrer">
{t.secondary}
</a>
</Button>
</div>
</div>
</div>
</section>
);
}