Compare commits

..

No commits in common. "c2a236b406491dabeddbd99e17816e075d57e064" and "96622b9c4c07c7f074cc1059a0a03305a76e1209" have entirely different histories.

4 changed files with 50 additions and 61 deletions

View File

@ -97,7 +97,7 @@ export default function ContactPage() {
{/* Nom complet */} {/* Nom complet */}
<div> <div>
<label htmlFor="fullName" className="block text-sm font-semibold text-gray-700 mb-2"> <label htmlFor="fullName" className="block text-sm font-semibold text-gray-700 mb-2">
Nom complet <span className="text-red-600" aria-hidden="true">*</span> Nom complet <span className="text-red-500">*</span>
</label> </label>
<input <input
id="fullName" id="fullName"
@ -114,7 +114,7 @@ export default function ContactPage() {
{/* Email */} {/* Email */}
<div> <div>
<label htmlFor="email" className="block text-sm font-semibold text-gray-700 mb-2"> <label htmlFor="email" className="block text-sm font-semibold text-gray-700 mb-2">
Email <span className="text-red-600" aria-hidden="true">*</span> Email <span className="text-red-500">*</span>
</label> </label>
<input <input
id="email" id="email"
@ -131,7 +131,7 @@ export default function ContactPage() {
{/* Sujet */} {/* Sujet */}
<div> <div>
<label htmlFor="subject" className="block text-sm font-semibold text-gray-700 mb-2"> <label htmlFor="subject" className="block text-sm font-semibold text-gray-700 mb-2">
Sujet <span className="text-red-600" aria-hidden="true">*</span> Sujet <span className="text-red-500">*</span>
</label> </label>
<select <select
id="subject" id="subject"
@ -153,7 +153,7 @@ export default function ContactPage() {
{/* Message */} {/* Message */}
<div> <div>
<label htmlFor="message" className="block text-sm font-semibold text-gray-700 mb-2"> <label htmlFor="message" className="block text-sm font-semibold text-gray-700 mb-2">
Message <span className="text-red-600" aria-hidden="true">*</span> Message <span className="text-red-500">*</span>
</label> </label>
<textarea <textarea
id="message" id="message"
@ -183,7 +183,7 @@ export default function ContactPage() {
<Link href="/privacy" className="text-primary-500 underline hover:text-primary-600"> <Link href="/privacy" className="text-primary-500 underline hover:text-primary-600">
politique de confidentialité politique de confidentialité
</Link>{' '} </Link>{' '}
<span className="text-red-600" aria-hidden="true">*</span> <span className="text-red-500">*</span>
</label> </label>
</div> </div>
@ -291,10 +291,9 @@ export default function ContactPage() {
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
className="absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 z-10 group" className="absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 z-10 group"
aria-label="Voir notre emplacement sur Google Maps - 18 Avenue Thiers, Nice"
> >
<span className="block w-6 h-6 bg-primary-500 rounded-full border-2 border-white shadow-lg cursor-pointer hover:scale-125 transition-transform animate-pulse" aria-hidden="true"></span> <span className="block w-6 h-6 bg-primary-500 rounded-full border-2 border-white shadow-lg cursor-pointer hover:scale-125 transition-transform animate-pulse"></span>
<span className="absolute -bottom-1 left-1/2 transform -translate-x-1/2 w-0 h-0 border-l-[6px] border-r-[6px] border-t-[8px] border-l-transparent border-r-transparent border-t-primary-500" aria-hidden="true"></span> <span className="absolute -bottom-1 left-1/2 transform -translate-x-1/2 w-0 h-0 border-l-[6px] border-r-[6px] border-t-[8px] border-l-transparent border-r-transparent border-t-primary-500"></span>
</a> </a>
</div> </div>
<a <a

View File

@ -163,17 +163,12 @@ export default function HistoriquePage() {
<div className="flex flex-col md:flex-row gap-4"> <div className="flex flex-col md:flex-row gap-4">
<div className="flex-1"> <div className="flex-1">
<div className="relative"> <div className="relative">
<label htmlFor="search-tickets" className="sr-only"> <Search className="absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-500 w-5 h-5" />
Rechercher par code ticket
</label>
<Search className="absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-500 w-5 h-5" aria-hidden="true" />
<input <input
id="search-tickets"
type="text" type="text"
placeholder="Rechercher par code ticket..." placeholder="Rechercher par code ticket..."
value={searchQuery} value={searchQuery}
onChange={(e) => setSearchQuery(e.target.value)} onChange={(e) => setSearchQuery(e.target.value)}
aria-label="Rechercher par code ticket"
className="w-full pl-10 pr-4 py-3 border-2 border-beige-300 rounded-lg focus:ring-2 focus:ring-primary-500 focus:border-primary-500 focus:outline-none" className="w-full pl-10 pr-4 py-3 border-2 border-beige-300 rounded-lg focus:ring-2 focus:ring-primary-500 focus:border-primary-500 focus:outline-none"
/> />
</div> </div>

View File

@ -49,7 +49,7 @@ export default function Footer() {
<div className="mb-4"> <div className="mb-4">
<Logo variant="default" size="md" showText={true} /> <Logo variant="default" size="md" showText={true} />
</div> </div>
<p className="text-sm text-beige-700 mb-4"> <p className="text-sm text-beige-600 mb-4">
Découvrez nos thés premium bio et artisanaux. Participez à notre grand Découvrez nos thés premium bio et artisanaux. Participez à notre grand
jeu-concours 100% gagnant et tentez de remporter nos magnifiques lots ! jeu-concours 100% gagnant et tentez de remporter nos magnifiques lots !
</p> </p>
@ -58,7 +58,7 @@ export default function Footer() {
href="https://www.facebook.com/profile.php?id=61584261567579" href="https://www.facebook.com/profile.php?id=61584261567579"
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
className="text-beige-700 hover:text-primary-500 transition-colors" className="text-beige-600 hover:text-primary-500 transition-colors"
aria-label="Facebook" aria-label="Facebook"
> >
<svg className="w-6 h-6" fill="currentColor" viewBox="0 0 24 24"> <svg className="w-6 h-6" fill="currentColor" viewBox="0 0 24 24">
@ -69,7 +69,7 @@ export default function Footer() {
href="https://www.instagram.com/thetiptopgr3/" href="https://www.instagram.com/thetiptopgr3/"
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
className="text-beige-700 hover:text-primary-500 transition-colors" className="text-beige-600 hover:text-primary-500 transition-colors"
aria-label="Instagram" aria-label="Instagram"
> >
<svg className="w-6 h-6" fill="currentColor" viewBox="0 0 24 24"> <svg className="w-6 h-6" fill="currentColor" viewBox="0 0 24 24">
@ -80,7 +80,7 @@ export default function Footer() {
href="https://www.pinterest.com/The_Tip_Top_/" href="https://www.pinterest.com/The_Tip_Top_/"
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"
className="text-beige-700 hover:text-primary-500 transition-colors" className="text-beige-600 hover:text-primary-500 transition-colors"
aria-label="Pinterest" aria-label="Pinterest"
> >
<svg className="w-6 h-6" fill="currentColor" viewBox="0 0 24 24"> <svg className="w-6 h-6" fill="currentColor" viewBox="0 0 24 24">
@ -99,7 +99,7 @@ export default function Footer() {
<li> <li>
<Link <Link
href={ROUTES.HOME} href={ROUTES.HOME}
className="text-sm text-beige-700 hover:text-primary-500 transition-colors" className="text-sm text-beige-600 hover:text-primary-500 transition-colors"
> >
Accueil Accueil
</Link> </Link>
@ -107,7 +107,7 @@ export default function Footer() {
<li> <li>
<Link <Link
href={isAuthenticated ? ROUTES.GAME : ROUTES.REGISTER} href={isAuthenticated ? ROUTES.GAME : ROUTES.REGISTER}
className="text-sm text-beige-700 hover:text-primary-500 transition-colors" className="text-sm text-beige-600 hover:text-primary-500 transition-colors"
> >
Participer au jeu Participer au jeu
</Link> </Link>
@ -115,7 +115,7 @@ export default function Footer() {
<li> <li>
<Link <Link
href="/contact" href="/contact"
className="text-sm text-beige-700 hover:text-primary-500 transition-colors" className="text-sm text-beige-600 hover:text-primary-500 transition-colors"
> >
Contact Contact
</Link> </Link>
@ -123,7 +123,7 @@ export default function Footer() {
<li> <li>
<Link <Link
href="/faq" href="/faq"
className="text-sm text-beige-700 hover:text-primary-500 transition-colors" className="text-sm text-beige-600 hover:text-primary-500 transition-colors"
> >
FAQ FAQ
</Link> </Link>
@ -138,7 +138,7 @@ export default function Footer() {
<li> <li>
<Link <Link
href="/terms" href="/terms"
className="text-sm text-beige-700 hover:text-primary-500 transition-colors" className="text-sm text-beige-600 hover:text-primary-500 transition-colors"
> >
Conditions d'utilisation Conditions d'utilisation
</Link> </Link>
@ -146,7 +146,7 @@ export default function Footer() {
<li> <li>
<Link <Link
href="/privacy" href="/privacy"
className="text-sm text-beige-700 hover:text-primary-500 transition-colors" className="text-sm text-beige-600 hover:text-primary-500 transition-colors"
> >
Politique de confidentialité Politique de confidentialité
</Link> </Link>
@ -154,7 +154,7 @@ export default function Footer() {
<li> <li>
<Link <Link
href="/rules" href="/rules"
className="text-sm text-beige-700 hover:text-primary-500 transition-colors" className="text-sm text-beige-600 hover:text-primary-500 transition-colors"
> >
Règlement du jeu Règlement du jeu
</Link> </Link>
@ -162,7 +162,7 @@ export default function Footer() {
<li> <li>
<Link <Link
href="/legal" href="/legal"
className="text-sm text-beige-700 hover:text-primary-500 transition-colors" className="text-sm text-beige-600 hover:text-primary-500 transition-colors"
> >
Mentions légales Mentions légales
</Link> </Link>
@ -173,21 +173,16 @@ export default function Footer() {
{/* Newsletter */} {/* Newsletter */}
<div> <div>
<h3 className="text-lg font-semibold text-primary-500 mb-4">NEWSLETTER</h3> <h3 className="text-lg font-semibold text-primary-500 mb-4">NEWSLETTER</h3>
<p className="text-sm text-beige-700 mb-4"> <p className="text-sm text-beige-600 mb-4">
Inscrivez-vous pour recevoir nos offres exclusives et nouveautés ! Inscrivez-vous pour recevoir nos offres exclusives et nouveautés !
</p> </p>
<form onSubmit={handleNewsletterSubmit} className="space-y-3"> <form onSubmit={handleNewsletterSubmit} className="space-y-3">
<div> <div>
<label htmlFor="newsletter-email" className="sr-only">
Adresse email pour la newsletter
</label>
<input <input
id="newsletter-email"
type="email" type="email"
value={email} value={email}
onChange={(e) => setEmail(e.target.value)} onChange={(e) => setEmail(e.target.value)}
placeholder="Votre email" placeholder="Votre email"
aria-label="Adresse email pour la newsletter"
className="w-full px-4 py-2 text-sm border border-beige-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent bg-white text-beige-800 placeholder-beige-500" className="w-full px-4 py-2 text-sm border border-beige-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent bg-white text-beige-800 placeholder-beige-500"
disabled={isLoading} disabled={isLoading}
/> />
@ -210,7 +205,7 @@ export default function Footer() {
)} )}
</form> </form>
<div className="mt-4 pt-4 border-t border-beige-300"> <div className="mt-4 pt-4 border-t border-beige-300">
<p className="text-xs text-beige-700 flex items-center gap-1"> <p className="text-xs text-beige-600 flex items-center gap-1">
<span></span> <span></span>
<a <a
href="mailto:thetiptopgr3@gmail.com" href="mailto:thetiptopgr3@gmail.com"
@ -219,7 +214,7 @@ export default function Footer() {
thetiptopgr3@gmail.com thetiptopgr3@gmail.com
</a> </a>
</p> </p>
<p className="text-xs text-beige-700 mt-1 flex items-center gap-1"> <p className="text-xs text-beige-600 mt-1 flex items-center gap-1">
<span>📞</span> <span>📞</span>
<a <a
href="tel:+33123456789" href="tel:+33123456789"
@ -237,8 +232,8 @@ export default function Footer() {
<div className="border-t border-beige-300"> <div className="border-t border-beige-300">
<div className="container mx-auto px-4 py-6"> <div className="container mx-auto px-4 py-6">
<div className="flex items-center justify-center text-sm"> <div className="flex items-center justify-center text-sm">
<p className="text-beige-700"> <p className="text-beige-600">
© {currentYear} Tous droits réservés. <span className="text-beige-600 text-xs">Site étudiant</span> © {currentYear} Tous droits réservés. <span className="text-beige-500 text-xs">Site étudiant</span>
</p> </p>
</div> </div>
</div> </div>

View File

@ -109,40 +109,40 @@ export default function ProfilePage({
</div> </div>
<div className="p-6"> <div className="p-6">
{!isEditing ? ( {!isEditing ? (
<dl className="space-y-4"> <div className="space-y-4">
<div> <div>
<dt className="text-sm font-medium text-gray-700"> <label className="text-sm font-medium text-gray-600">
Prénom Prénom
</dt> </label>
<dd className="text-lg text-gray-900">{user.firstName}</dd> <p className="text-lg text-gray-900">{user.firstName}</p>
</div> </div>
<div> <div>
<dt className="text-sm font-medium text-gray-700"> <label className="text-sm font-medium text-gray-600">
Nom Nom
</dt> </label>
<dd className="text-lg text-gray-900">{user.lastName}</dd> <p className="text-lg text-gray-900">{user.lastName}</p>
</div> </div>
<div> <div>
<dt className="text-sm font-medium text-gray-700"> <label className="text-sm font-medium text-gray-600">
Email Email
</dt> </label>
<dd className="text-lg text-gray-900">{user.email}</dd> <p className="text-lg text-gray-900">{user.email}</p>
</div> </div>
<div> <div>
<dt className="text-sm font-medium text-gray-700"> <label className="text-sm font-medium text-gray-600">
Téléphone Téléphone
</dt> </label>
<dd className="text-lg text-gray-900"> <p className="text-lg text-gray-900">
{user.phone || "Non renseigné"} {user.phone || "Non renseigné"}
</dd> </p>
</div> </div>
<div> <div>
<dt className="text-sm font-medium text-gray-700"> <label className="text-sm font-medium text-gray-600">
Rôle Rôle
</dt> </label>
<dd className="mt-1"> <div className="mt-1">
<Badge variant={badgeVariant}>{roleLabel}</Badge> <Badge variant={badgeVariant}>{roleLabel}</Badge>
</dd> </div>
</div> </div>
<div className="pt-4"> <div className="pt-4">
<button <button
@ -152,7 +152,7 @@ export default function ProfilePage({
Modifier mes informations Modifier mes informations
</button> </button>
</div> </div>
</dl> </div>
) : ( ) : (
<form onSubmit={handleSubmit(onSubmit)} className="space-y-4"> <form onSubmit={handleSubmit(onSubmit)} className="space-y-4">
<Input <Input
@ -216,14 +216,14 @@ export default function ProfilePage({
<h2 className="text-xl font-bold text-gray-900">Statut du compte</h2> <h2 className="text-xl font-bold text-gray-900">Statut du compte</h2>
</div> </div>
<div className="p-6 space-y-4"> <div className="p-6 space-y-4">
<dl> <div>
<dt className="text-sm font-medium text-gray-700"> <label className="text-sm font-medium text-gray-600">
Membre depuis Membre depuis
</dt> </label>
<dd className="text-sm text-gray-900 mt-1"> <p className="text-sm text-gray-900 mt-1">
{formatDate(user.createdAt)} {formatDate(user.createdAt)}
</dd> </p>
</dl> </div>
</div> </div>
</div> </div>