diff --git a/app/page.tsx b/app/page.tsx index 6be5aae..01e0571 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,6 +1,16 @@ +import { auth } from "@/lib/auth"; +import { headers } from "next/headers"; import { redirect } from "next/navigation"; +import { LandingPage } from "@/components/landing-page"; -// Redirect to dashboard - middleware will handle authentication -export default function Home() { - redirect("/dashboard"); +export default async function Home() { + const session = await auth.api.getSession({ + headers: await headers(), + }); + + if (session) { + redirect("/dashboard"); + } + + return ; } diff --git a/components/landing-page.tsx b/components/landing-page.tsx new file mode 100644 index 0000000..d6f1896 --- /dev/null +++ b/components/landing-page.tsx @@ -0,0 +1,110 @@ +"use client"; + +import { Button } from "@/components/ui/button"; +import { Card, CardContent } from "@/components/ui/card"; +import { + LayoutDashboard, + Shield, + Table2, + Palette, + ArrowRight, +} from "lucide-react"; +import Link from "next/link"; + +const features = [ + { + icon: Shield, + title: "用户认证", + description: "基于 Better-Auth 的完整认证系统,支持邮箱/社交登录", + }, + { + icon: LayoutDashboard, + title: "仪表盘", + description: "丰富的数据可视化组件,支持交互式图表和实时数据展示", + }, + { + icon: Table2, + title: "数据表格", + description: "强大的表格管理功能,支持排序、筛选、分页等操作", + }, + { + icon: Palette, + title: "主题定制", + description: "内置明暗模式切换,支持自定义主题色彩和字体配置", + }, +]; + +const techStack = [ + "Next.js 16", + "React 19", + "TypeScript", + "Tailwind CSS", + "Shadcn UI", + "Better-Auth", + "Drizzle ORM", + "PostgreSQL", +]; + +export function LandingPage() { + return ( +
+
+
+
+
+ SA +
+
+ +

+ Shadcn Admin +

+ +

+ 基于 Next.js 和 Shadcn UI 的现代化后台管理系统 +

+ +
+ {techStack.map((tech) => ( + + {tech} + + ))} +
+ + + + +
+ +
+ {features.map((feature) => ( + + +
+ +
+

{feature.title}

+

+ {feature.description} +

+
+
+ ))} +
+
+ + +
+ ); +}