Accueil: logo centre, "A l'honneur" en carrousel auto

- Hero : logo centre verticalement (alignItems center)
- Titre "A l'honneur ce mois-ci" -> "A l'honneur"
- Remplace les 3 fiches "mise en avant" par un carrousel auto-defilant
  de tous les adherents actifs, en rotation equitable (l'ordre pivote
  d'un cran par heure). Pause au survol, respecte prefers-reduced-motion.
- Retire la coche "Mettre a l'honneur" du back-office (edition adherent)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
MichaelandClaude Opus 4.8 committed 2026-06-27 10:31:55 +02:00
1 parent eb6536ce8a
commit 64ab10dea1
6 files changed
+161 -68

No files matched your search

+26
View File
@@ -122,6 +122,32 @@ export async function getMemberLivePromotions(memberId: number) {
.orderBy(desc(promotions.createdAt));
}
// Tous les adhérents actifs, tournés équitablement : l'ordre pivote d'un cran
// par heure pour que chacun passe en tête à tour de rôle au fil du temps.
export async function getRotatingActiveMembers() {
const rows = await db
.select({
id: members.id,
name: members.name,
description: members.description,
city: members.city,
address: members.address,
coverUrl: members.coverUrl,
logoUrl: members.logoUrl,
categoryLabel: categories.label,
accent: categories.accent,
})
.from(members)
.leftJoin(categories, eq(members.categoryId, categories.id))
.where(eq(members.status, "active"))
.orderBy(asc(members.id));
const n = rows.length;
if (n <= 1) return rows;
const offset = Math.floor(Date.now() / 3_600_000) % n;
return [...rows.slice(offset), ...rows.slice(0, offset)];
}
export async function getHighlightedMembers(limit = 3) {
const rows = await db
.select({