Files
gitlab-instance-0a899031_salon/app/page.tsx
2026-03-15 22:39:30 -05:00

141 lines
6.2 KiB
TypeScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"use client";
import Link from "next/link";
import HeroSection from "./components/HeroSection";
import Footer from "./components/Footer";
import { SESSIONS } from "@/config/home.config";
export default function Home() {
return (
<div className="min-h-screen bg-[#faf8f5] dark:bg-stone-950 pb-24 sm:pb-12">
<HeroSection />
<main className="max-w-[900px] mx-auto px-5 sm:px-8 py-10 sm:py-14 space-y-14">
{/* 信任标签 */}
<div className="flex flex-wrap justify-center gap-x-8 gap-y-2 text-sm text-stone-600 dark:text-stone-400">
<span>📍 </span>
<span>👥 </span>
<span> </span>
<span>🆓 </span>
</div>
{/* 本周场次 */}
<section>
<h2 className="text-xl font-semibold text-stone-800 dark:text-stone-100 mb-5">
</h2>
<div className="grid gap-4 sm:grid-cols-2">
{SESSIONS.map((s, i) => (
<Link
key={s.id}
href={`/join?session=${encodeURIComponent(s.id)}`}
className="group flex gap-4 p-5 rounded-2xl bg-white dark:bg-stone-900/80 border border-stone-200/80 dark:border-stone-700/80 hover:border-amber-200 dark:hover:border-amber-900/50 hover:shadow-lg hover:shadow-amber-900/5 transition-all"
>
<div className="w-14 h-14 shrink-0 rounded-xl bg-amber-100/80 dark:bg-amber-900/20 flex items-center justify-center text-2xl">
{i === 0 ? "☕" : i === 1 ? "📖" : "👋"}
</div>
<div className="min-w-0 flex-1">
{i === 0 && (
<span className="inline-block text-[10px] font-medium text-amber-600 dark:text-amber-400 bg-amber-50 dark:bg-amber-900/20 px-2 py-0.5 rounded mb-2">
</span>
)}
<h3 className="font-semibold text-stone-800 dark:text-stone-100 group-hover:text-amber-700 dark:group-hover:text-amber-400">
{s.title}
</h3>
<p className="text-sm text-stone-500 dark:text-stone-400 mt-0.5">
{s.date} {s.time} · {s.place}
</p>
<span className="inline-flex items-center gap-1 mt-3 text-amber-600 dark:text-amber-400 text-sm font-medium">
</span>
</div>
</Link>
))}
</div>
</section>
{/* 为什么来 */}
<section>
<h2 className="text-xl font-semibold text-stone-800 dark:text-stone-100 mb-5">
</h2>
<div className="rounded-2xl bg-white dark:bg-stone-900/80 border border-stone-200/80 dark:border-stone-700/80 p-6 sm:p-8">
<div className="grid sm:grid-cols-2 gap-6">
<div>
<p className="font-medium text-stone-800 dark:text-stone-100"></p>
<p className="text-sm text-stone-500 dark:text-stone-400 mt-1 leading-relaxed">
线
</p>
</div>
<div>
<p className="font-medium text-stone-800 dark:text-stone-100"></p>
<p className="text-sm text-stone-500 dark:text-stone-400 mt-1 leading-relaxed">
</p>
</div>
<div>
<p className="font-medium text-stone-800 dark:text-stone-100"> OK</p>
<p className="text-sm text-stone-500 dark:text-stone-400 mt-1 leading-relaxed">
</p>
</div>
<div>
<p className="font-medium text-stone-800 dark:text-stone-100"></p>
<p className="text-sm text-stone-500 dark:text-stone-400 mt-1 leading-relaxed">
</p>
</div>
</div>
</div>
</section>
{/* FAQ */}
<section>
<h2 className="text-xl font-semibold text-stone-800 dark:text-stone-100 mb-5">
</h2>
<div className="space-y-3">
{[
{ q: "需要先注册吗?", a: "不需要,填表即可。" },
{ q: "需要先付款吗?", a: "不需要,报名不收费。" },
{ q: "第一次参加可以吗?", a: "可以,很多人都是第一次来。" },
{ q: "地点什么时候通知?", a: "报名后会通过微信/短信告知,均为公开场地。" },
].map((faq, i) => (
<div
key={i}
className="rounded-xl bg-white dark:bg-stone-900/80 border border-stone-200/80 dark:border-stone-700/80 p-4"
>
<p className="font-medium text-stone-800 dark:text-stone-100 text-sm">{faq.q}</p>
<p className="text-sm text-stone-500 dark:text-stone-400 mt-0.5">{faq.a}</p>
</div>
))}
</div>
</section>
{/* CTA */}
<section className="pt-4">
<Link
href="/join"
className="block w-full bg-amber-600 hover:bg-amber-700 text-white text-center py-4 rounded-xl font-semibold shadow-lg shadow-amber-900/20 transition-all"
>
</Link>
</section>
</main>
{/* 移动端悬浮 CTA */}
<div className="fixed bottom-0 left-0 right-0 p-4 bg-white/95 dark:bg-stone-900/95 backdrop-blur border-t border-stone-200 dark:border-stone-800 sm:hidden z-50">
<Link
href="/join"
className="block w-full bg-amber-600 hover:bg-amber-700 text-white text-center py-3.5 rounded-xl font-medium"
>
</Link>
</div>
<Footer />
</div>
);
}