Ajoute des raccourcis vers les autres pages sur /leaderboard
Build and deploy / deploy (push) Successful in 36s
Build and deploy / deploy (push) Successful in 36s
L'Agora sert déjà de page d'accueil de fait (/ y redirige) mais n'offrait aucun accès direct aux autres pages sans passer par le menu déroulant du chip. Ajoute une rangée de raccourcis (Icare, Corne d'Abondance, Char, Mur de la Honte, Urne, Crieur) juste au-dessus du classement, responsive (3 colonnes mobile, 6 en ligne sur écran plus large), mêmes icônes que le menu du header pour rester cohérent. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { redirect } from "next/navigation";
|
||||
import { createClient } from "@/lib/supabase/server";
|
||||
import { LeaderboardView } from "./leaderboard-view";
|
||||
import { QuickLinks } from "./quick-links";
|
||||
import { AgoraLogo } from "@/components/agora-logo";
|
||||
import { formatCountdown, formatTribunalDateTime } from "@/lib/tribunal-date";
|
||||
|
||||
@@ -36,6 +37,8 @@ export default async function LeaderboardPage() {
|
||||
{tribunalDate && <p className="text-xs text-marble/50">{formatTribunalDateTime(tribunalDate)}</p>}
|
||||
</div>
|
||||
|
||||
<QuickLinks />
|
||||
|
||||
{error && (
|
||||
<p role="alert" className="text-sm text-oxblood">
|
||||
Impossible de charger le classement pour le moment.
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
import Link from "next/link";
|
||||
import { IconHorn, IconPin, IconScroll, IconSword, IconVote, IconWings } from "@/components/icons";
|
||||
|
||||
// L'Agora (/leaderboard) sert de page d'accueil de fait (redirection depuis
|
||||
// "/" une fois connecté) : ces raccourcis évitent de devoir passer par le
|
||||
// menu déroulant du chip pour rejoindre les autres pages "d'activité".
|
||||
// Volontairement sans /profile ni /admin (déjà dans le menu, pas des pages
|
||||
// d'activité au même titre que les jeux/le Mur/l'Urne/le Crieur).
|
||||
const LINKS = [
|
||||
{ href: "/icare", label: "Le Vol d'Icare", icon: IconWings },
|
||||
{ href: "/corne", label: "La Corne d'Abondance", icon: IconHorn },
|
||||
{ href: "/char", label: "Le Jeu de l'Agora", icon: IconSword },
|
||||
{ href: "/mur", label: "Le Mur de la Honte", icon: IconPin },
|
||||
{ href: "/urne", label: "L'Urne de l'Agora", icon: IconVote },
|
||||
{ href: "/journal", label: "Le Crieur", icon: IconScroll },
|
||||
] as const;
|
||||
|
||||
export function QuickLinks() {
|
||||
return (
|
||||
<nav aria-label="Raccourcis" className="mb-6 grid grid-cols-3 gap-2 sm:grid-cols-6 sm:gap-3">
|
||||
{LINKS.map(({ href, label, icon: Icon }) => (
|
||||
<Link
|
||||
key={href}
|
||||
href={href}
|
||||
className="marble-surface flex flex-col items-center gap-1.5 rounded-xl border border-gold/25 px-2 py-3 text-center shadow-sm transition hover:border-gold/50 hover:shadow-md"
|
||||
>
|
||||
<Icon className="h-6 w-6 text-gold" />
|
||||
<span className="text-[0.65rem] leading-tight font-medium text-text-marble sm:text-xs">{label}</span>
|
||||
</Link>
|
||||
))}
|
||||
</nav>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user