From 055db1652984b6b1b3710f9cf1a33de9e30d48f2 Mon Sep 17 00:00:00 2001 From: soufiane Date: Wed, 3 Dec 2025 16:41:28 +0100 Subject: [PATCH] feat: improve design of Lots, Marketing & Tirages pages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PrizeManagement (Lots & Prix): - Add stats cards (Total, Stock, Distribués, Taux) - Modern card design with gradient headers per prize type - Stock progress bars and better layout Marketing Data: - Improved stat cards with gradient backgrounds - Modern chart containers with icon badges - Enhanced export section with gradient header Tirages: - Improved existing draw alert with grid layout - Modern participants table with avatars - Enhanced draw result display with cards 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- app/admin/marketing-data/page.tsx | 137 ++++---- app/admin/tirages/page.tsx | 479 +++++++++++++++------------ components/admin/PrizeManagement.tsx | 230 +++++++++---- 3 files changed, 510 insertions(+), 336 deletions(-) diff --git a/app/admin/marketing-data/page.tsx b/app/admin/marketing-data/page.tsx index d6ebab6..9f7db60 100644 --- a/app/admin/marketing-data/page.tsx +++ b/app/admin/marketing-data/page.tsx @@ -238,60 +238,68 @@ export default function MarketingPage() { {/* Statistiques globales */}
- +
-

Total Clients

-

+

Total Clients

+

{stats.totalClients.toLocaleString()}

- +
+ +
- +
- +
-

Participants Actifs

-

+

Participants Actifs

+

{stats.activeParticipants.toLocaleString()}

-

+

{((stats.activeParticipants / stats.totalClients) * 100).toFixed(1)}% du total

- +
+ +
- +
- +
-

Gagnants

-

+

Gagnants

+

{stats.winners.toLocaleString()}

-

- {((stats.winners / stats.activeParticipants) * 100).toFixed(1)}% de conversion +

+ {stats.activeParticipants > 0 ? ((stats.winners / stats.activeParticipants) * 100).toFixed(1) : 0}% de conversion

- +
+ +
- +
- +
-

Inactifs

-

+

Inactifs

+

{stats.inactiveParticipants.toLocaleString()}

-

À réactiver

+

À réactiver

+
+
+
-
- +
{/* Graphiques - Affichés uniquement s'il y a des données valides */} @@ -300,9 +308,11 @@ export default function MarketingPage() {
{/* Répartition par genre */} {filteredGenderData.length > 0 && ( - +

- +
+ +
Répartition par Genre

@@ -324,14 +334,16 @@ export default function MarketingPage() { - +
)} {/* Répartition par âge */} {filteredAgeData.length > 0 && ( - +

- +
+ +
Répartition par Âge

@@ -341,54 +353,60 @@ export default function MarketingPage() { - + - +
)}
{/* Top villes */} {filteredCityData.length > 0 && ( - +

- +
+ +
Top Villes ({filteredCityData.length})

{filteredCityData.slice(0, 10).map((city, index) => (
-

#{index + 1}

+ #{index + 1}

{city.city}

{city.count}

))}
- +
)} )} {/* Section Export */} - -

- - Exporter les Données pour Emailing -

+
+
+

+
+ +
+ Exporter les Données pour Emailing +

+
-
+
{/* Sélection du segment */}
-