diff --git a/CLAUDE.md b/CLAUDE.md index 5ec8ea6..6f27c00 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -176,7 +176,7 @@ Deuxième volet de l'audit (revue complète de tout le code applicatif, pas seul | `/` | Redirige vers `/leaderboard` si connecté, sinon `/login` | | `/login` | Email + mot de passe | | `/signup` | Email + mot de passe + pseudo + photo (recadrée) ; gère l'attente de confirmation email | -| `/leaderboard` | « L'Agora » — podium top 3 + liste, Realtime, contrôles de points pour les juges, date/décompte du Tribunal en en-tête (`src/lib/tribunal-date.ts`, partagé avec `/calendrier`) | +| `/leaderboard` | « L'Agora » — podium top 3 + liste, Realtime, contrôles de points pour les juges, date/décompte du Tribunal en en-tête (`src/lib/tribunal-date.ts`, partagé avec `/calendrier`). Joue le rôle de page d'accueil (`/` y redirige) : une rangée de raccourcis (`quick-links.tsx`, icônes réutilisées du menu du header) vers les pages d'activité — jeux, Mur, Urne, Crieur — juste au-dessus du classement | | `/icare` | « Le Vol d'Icare » — Flappy Bird grec, record personnel all-time, scores figés au Tribunal, points attribués automatiquement | | `/corne` | « La Corne d'Abondance » — jeu de fusion façon Watermelon Game (avatars aléatoires, physique `matter-js`), même mécanique de gloires que Le Vol d'Icare | | `/char` | « Le Jeu de l'Agora » — format paysage (projeté) : Le Char (2 colonnes de 3, boutons de duel), Le Gardien du Silence (tirage aléatoire, minuteur discret) et La Roulette (tirage au sort animé) | diff --git a/src/app/leaderboard/page.tsx b/src/app/leaderboard/page.tsx index c54edf5..9dd2d02 100644 --- a/src/app/leaderboard/page.tsx +++ b/src/app/leaderboard/page.tsx @@ -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 &&
{formatTribunalDateTime(tribunalDate)}
} +Impossible de charger le classement pour le moment. diff --git a/src/app/leaderboard/quick-links.tsx b/src/app/leaderboard/quick-links.tsx new file mode 100644 index 0000000..fd4963e --- /dev/null +++ b/src/app/leaderboard/quick-links.tsx @@ -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 ( + + ); +}