From 203afafec2b925c9de03d8d64c08491c11cf22e9 Mon Sep 17 00:00:00 2001 From: Valentin ROBIN Date: Tue, 25 Aug 2026 17:54:49 +0200 Subject: [PATCH] Ajoute des raccourcis vers les autres pages sur /leaderboard MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- CLAUDE.md | 2 +- src/app/leaderboard/page.tsx | 3 +++ src/app/leaderboard/quick-links.tsx | 33 +++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 src/app/leaderboard/quick-links.tsx 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)}

} + + {error && (

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 ( +

+ ); +}