-
-
-
-
- Thé Tip Top - Espace Employé
-
-
-
-
+
diff --git a/app/employe/verification/page.tsx b/app/employe/verification/page.tsx
index 854d3de..ebf3694 100644
--- a/app/employe/verification/page.tsx
+++ b/app/employe/verification/page.tsx
@@ -4,7 +4,6 @@ import { useState, useEffect } from "react";
import { employeeService } from "@/services/employee.service";
import { Ticket } from "@/types";
import toast from "react-hot-toast";
-import { StatusBadge, StatCard } from "@/components/ui";
import {
Search,
CheckCircle,
@@ -12,7 +11,8 @@ import {
RefreshCw,
Users,
Clock,
- BarChart3,
+ Ticket as TicketIcon,
+ Gift,
} from "lucide-react";
export default function EmployeeVerificationPage() {
@@ -73,7 +73,7 @@ export default function EmployeeVerificationPage() {
setValidating(true);
try {
await employeeService.validateTicket(selectedTicket.id, "APPROVE");
- toast.success("✅ Ticket validé ! Le lot peut être remis au client.");
+ toast.success("Ticket validé ! Le lot peut être remis au client.");
setShowModal(false);
setSelectedTicket(null);
loadPendingTickets();
@@ -125,42 +125,44 @@ export default function EmployeeVerificationPage() {
}
return (
-
+
{/* Header */}
-
-
- Validation des Tickets
-
-
- Scannez ou recherchez un code pour valider les lots gagnés
-
+
+
+
+
+
+
+
+ Validation des Tickets
+
+
+ Scannez ou recherchez un code pour valider les lots gagnés
+
+
+
- {/* Search Section */}
-
-
-
-
-
-
- Rechercher un ticket
-
-
-
-
-
setSearchCode(e.target.value.toUpperCase())}
- onKeyPress={(e) => e.key === "Enter" && handleSearch()}
- className="w-full px-5 py-4 border-2 border-white/20 bg-white/10 text-white placeholder-white/60 rounded-xl focus:ring-2 focus:ring-white focus:border-transparent font-mono text-lg backdrop-blur-sm"
- maxLength={12}
- />
+ {/* Search Section - Style blanc cassé */}
+
+
+
- {/* Lots en attente de remise */}
-
-
+
+ {/* Table des tickets en attente */}
+
+
-
-
+
+
-
+
Lots en attente de remise
{tickets.length} ticket(s) en attente
@@ -184,9 +187,10 @@ export default function EmployeeVerificationPage() {
@@ -194,10 +198,10 @@ export default function EmployeeVerificationPage() {
{tickets.length === 0 ? (
-
-
+
+
-
+
Aucun lot en attente
@@ -206,69 +210,88 @@ export default function EmployeeVerificationPage() {
) : (
-
+
- |
+ |
+ Code Ticket
+ |
+
Client
|
-
+ |
Lot Gagné
|
-
+ |
Date
|
-
- Action
+ |
+ Actions
|
-
- {tickets.map((ticket, index) => (
-
- |
+ |
+ {tickets.map((ticket) => (
+
+ {/* CODE TICKET */}
+
-
- {ticket.user ? `${ticket.user.firstName?.charAt(0) || ''}${ticket.user.lastName?.charAt(0) || ''}` : 'N/A'}
+
+
+
+
+ {ticket.code}
+
+
+ |
+
+ {/* CLIENT */}
+
+
+
+ {ticket.user ? `${ticket.user.firstName?.charAt(0) || ''}${ticket.user.lastName?.charAt(0) || ''}` : '?'}
-
+
{ticket.user ? `${ticket.user.firstName} ${ticket.user.lastName}` : 'N/A'}
-
+
{ticket.user?.email || 'N/A'}
|
-
-
-
+
+ {/* LOT GAGNÉ */}
+
+
+
+
{ticket.prize?.name || 'N/A'}
-
-
- {ticket.code}
-
+
|
-
-
- {ticket.playedAt
- ? new Date(ticket.playedAt).toLocaleDateString('fr-FR')
- : 'N/A'}
-
+
+ {/* DATE */}
+ |
+ {ticket.playedAt
+ ? new Date(ticket.playedAt).toLocaleDateString('fr-FR', {
+ year: 'numeric',
+ month: '2-digit',
+ day: '2-digit'
+ })
+ : '-'}
|
-
+
+ {/* ACTIONS */}
+ |
|
|
@@ -281,155 +304,161 @@ export default function EmployeeVerificationPage() {
{/* Modal de validation */}
{showModal && selectedTicket && (
-
-
-
- Détails du Ticket
-
+
+
+
+
+
Détails du Ticket
+
+
+
-
- {/* Ticket Code */}
-
-
- Code du ticket
-
-
- {selectedTicket.code}
-
+
+ {/* Code et Statut */}
+
+
+
+
+
+
+
Code ticket
+
{selectedTicket.code}
+
+
+
+ En attente
+
{/* Client Info */}
-
-
-
- Informations du Client
-
-
+
+
Client
+
+
+ {selectedTicket.user ? `${selectedTicket.user.firstName?.charAt(0) || ''}${selectedTicket.user.lastName?.charAt(0) || ''}` : '?'}
+
-
Nom complet
-
+
{selectedTicket.user ? `${selectedTicket.user.firstName} ${selectedTicket.user.lastName}` : 'N/A'}
+
{selectedTicket.user?.email || 'N/A'}
+ {selectedTicket.user?.phone && (
+
{selectedTicket.user.phone}
+ )}
-
-
Email
-
- {selectedTicket.user?.email || 'N/A'}
-
-
- {selectedTicket.user?.phone && (
-
-
Téléphone
-
- {selectedTicket.user.phone}
-
-
- )}
- {/* Prize Info */}
-
-
-
- Lot Gagné
-
-
-
-
- {selectedTicket.prize?.name || 'N/A'}
-
-
- {selectedTicket.prize?.description || 'Description non disponible'}
-
+ {/* Lot gagné */}
+
+
Lot à remettre
+
+
+
+
+
+
{selectedTicket.prize?.name}
+
{selectedTicket.prize?.description}
- {selectedTicket.playedAt && (
-
-
Date de gain
-
- {new Date(selectedTicket.playedAt).toLocaleDateString('fr-FR', {
- day: 'numeric',
- month: 'long',
- year: 'numeric',
- hour: '2-digit',
- minute: '2-digit'
- })}
-
-
- )}
+ {/* Date */}
+
+
Date de participation
+
+ {selectedTicket.playedAt
+ ? new Date(selectedTicket.playedAt).toLocaleDateString('fr-FR', {
+ day: 'numeric',
+ month: 'long',
+ year: 'numeric',
+ hour: '2-digit',
+ minute: '2-digit'
+ })
+ : 'N/A'}
+
+
+
{/* Reject Reason Input */}
{showRejectInput && (
-
-
- {/* Actions */}
-
- {!showRejectInput ? (
- <>
-
-
-
- >
- ) : (
- <>
-
-
- >
- )}
-
+ {/* Actions */}
+
+ {!showRejectInput ? (
+ <>
+
+
+
+ >
+ ) : (
+ <>
+
+
+ >
+ )}
@@ -437,4 +466,3 @@ export default function EmployeeVerificationPage() {
);
}
-