Ajoute une pastille sur le raccourci du Mur de la Honte

Nombre de publications du jour, façon notification iOS, sur le raccourci /mur de /leaderboard — via wall_notes_for_date() (une lecture directe de wall_notes ne montrerait, à cause de la RLS, que ses propres notes, pas le total).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Valentin ROBIN
2026-08-25 19:33:29 +02:00
parent 0eaebb7a05
commit 6922d33e39
3 changed files with 33 additions and 14 deletions
+7 -2
View File
@@ -15,12 +15,17 @@ export default async function LeaderboardPage() {
redirect("/login");
}
const [{ data: profiles, error }, { data: settings }] = await Promise.all([
const [{ data: profiles, error }, { data: settings }, { data: wallNotesToday }] = await Promise.all([
supabase
.from("profiles")
.select("id, pseudo, avatar_url, points, previous_rank, role")
.order("points", { ascending: false }),
supabase.from("settings").select("tribunal_date").eq("id", true).single(),
// wall_notes_for_date() (jamais une lecture directe de wall_notes, dont
// la RLS ne laisserait voir que ses propres notes) : seul moyen de
// connaître le nombre total de publications du jour sans exposer qui a
// publié quoi — sert juste de compteur pour la pastille du raccourci.
supabase.rpc("wall_notes_for_date"),
]);
const isJudge = profiles?.find((p) => p.id === user.id)?.role === "judge";
@@ -37,7 +42,7 @@ export default async function LeaderboardPage() {
{tribunalDate && <p className="text-xs text-marble/50">{formatTribunalDateTime(tribunalDate)}</p>}
</div>
<QuickLinks />
<QuickLinks wallNoteCount={wallNotesToday?.length ?? 0} />
{error && (
<p role="alert" className="text-sm text-oxblood">