feat(ui) : improve guide navigation, signup, and commissions

This commit is contained in:
2026-10-07 04:39:57 +07:00 Unverified
parent b35c1a4471
commit 22f5f96231
31 changed files with 737 additions and 400 deletions
+6 -6
View File
@@ -6,7 +6,7 @@ import { SiteHeader } from "@/components/public/site-header";
import { StygianGuide } from "@/components/public/stygian-guide";
import { LiveRefresh } from "@/components/live-refresh";
import { Empty, EmptyDescription, EmptyHeader, EmptyTitle } from "@/components/ui/empty";
import { Button } from "@/components/ui/button";
import { buttonVariants } from "@/components/ui/button";
import { getCachedStygianSchedule, getCachedStygianSchedules } from "@/lib/cache/stygian";
import { getActiveCatalog } from "@/lib/guides/queries";
@@ -27,13 +27,13 @@ export default async function StygianPage({ searchParams }: { searchParams: Prom
<main className="mx-auto flex w-full max-w-7xl flex-1 flex-col gap-8 px-4 py-10 sm:px-6 sm:py-14">
<header>
<p className="text-sm font-medium text-primary">Stygian Onslaught</p>
<h1 className="font-heading text-4xl font-semibold">Stygian Guide</h1>
<h1 className="font-heading text-4xl font-semibold">ไกด์ Stygian</h1>
</header>
{schedules.length ? <nav className="flex flex-wrap gap-2" aria-label="Stygian versions">{schedules.map((entry) => entry.scheduleId === selectedId
? <Button key={entry.scheduleId} disabled variant="secondary" size="sm">{entry.challengeName}</Button>
: <Button key={entry.scheduleId} variant="outline" size="sm" nativeButton={false} render={<Link href={`/stygian?schedule=${entry.scheduleId}`} />}>{entry.challengeName}</Button>)}</nav> : null}
{schedules.length ? <nav className="flex flex-wrap gap-2" aria-label="เวอร์ชัน Stygian">{schedules.map((entry) =>
<Link key={entry.scheduleId} href={`/stygian?schedule=${entry.scheduleId}`} aria-current={entry.scheduleId === selectedId ? "page" : undefined}
className={buttonVariants({ variant: entry.scheduleId === selectedId ? "default" : "outline", size: "sm" })}>{entry.challengeName}</Link>)}</nav> : null}
{schedule && catalog ? <StygianGuide schedule={schedule} catalog={catalog} /> : (
<Empty className="border"><EmptyHeader><EmptyTitle>No Stygian versions yet</EmptyTitle><EmptyDescription>An administrator must sync the Lunaris archive first.</EmptyDescription></EmptyHeader></Empty>
<Empty className="border"><EmptyHeader><EmptyTitle>ยังไม่มีไกด์ Stygian</EmptyTitle><EmptyDescription>กำลังเตรียมข้อมูล กลับมาอ่านได้ภายหลัง หรือเลือกไกด์ตัวละครระหว่างรอ</EmptyDescription></EmptyHeader><Link href="/" className={buttonVariants({ variant: "outline" })}>เลือกไกด์ตัวละคร</Link></Empty>
)}
</main>
<SiteFooter />