-
{icon}
- {trend && (
-
-
- {trend}
-
- )}
+
+
+
+
+ {icon}
+
+ {trend && (
+
+
+ {trend}
+
+ )}
+
+
{title}
+
{(value || 0).toLocaleString("fr-FR")}
+ {subtitle &&
{subtitle}
}
-
{title}
-
{(value || 0).toLocaleString("fr-FR")}
- {subtitle &&
{subtitle}
}
);
}
@@ -638,27 +647,28 @@ interface CityCardProps {
}
function CityCard({ rank, city, count, percentage }: CityCardProps) {
- const rankColors = {
- 1: "bg-yellow-100 text-yellow-800 border-yellow-300",
- 2: "bg-gray-100 text-gray-800 border-gray-300",
- 3: "bg-orange-100 text-orange-800 border-orange-300",
+ const rankStyles = {
+ 1: { bg: "from-amber-400 to-yellow-500", badge: "bg-amber-500" },
+ 2: { bg: "from-gray-300 to-gray-400", badge: "bg-gray-400" },
+ 3: { bg: "from-orange-400 to-amber-500", badge: "bg-orange-500" },
};
- const rankColor =
- rankColors[rank as keyof typeof rankColors] || "bg-blue-50 text-blue-800 border-blue-200";
+ const style = rankStyles[rank as keyof typeof rankStyles] || { bg: "from-blue-400 to-blue-500", badge: "bg-blue-500" };
return (
-
-
-
#{rank}
-
+
+
+
+ {rank}
+
+
-
+
{city}
- {count}
- ({percentage.toFixed(1)}%)
+ {count.toLocaleString('fr-FR')}
+ {percentage.toFixed(1)}%
);
diff --git a/app/admin/tirages/page.tsx b/app/admin/tirages/page.tsx
index 4df5cea..18a36bb 100644
--- a/app/admin/tirages/page.tsx
+++ b/app/admin/tirages/page.tsx
@@ -477,7 +477,7 @@ ${report.draw.notifiedAt ? `📧 Gagnant notifié le: ${new Date(report.draw.not
isLoading={loading}
disabled={loading}
size="sm"
- className="bg-white text-blue-600 hover:bg-blue-50 rounded-xl"
+ className="bg-blue-600 text-white hover:bg-blue-700 rounded-xl"
>
Actualiser
@@ -563,25 +563,31 @@ ${report.draw.notifiedAt ? `📧 Gagnant notifié le: ${new Date(report.draw.not
{/* Bouton de tirage au sort */}
-
-
-
-
- Prêt à lancer le tirage au sort ?
-
-
- {participants.length} participant{participants.length > 1 ? 's ont' : ' a'} une chance égale de gagner {prizeName} ({prizeValue}€)
-
+
+
+
+
+
+
+
+
+
+ Prêt à lancer le tirage au sort ?
+
+
+ {participants.length} participant{participants.length > 1 ? 's ont' : ' a'} une chance égale de gagner {prizeName} ({prizeValue}€)
+
+
+
+
-
>