Merge remote-tracking branch 'origin/Alexis' into Emmanuel
# Conflicts: # frontend/src/pages/Contact.jsx
This commit is contained in:
@@ -17,6 +17,8 @@ import NotFound from './pages/NotFound'
|
|||||||
import Sitemap from './pages/Sitemap'
|
import Sitemap from './pages/Sitemap'
|
||||||
import MentionsLegales from './pages/MentionsLegales'
|
import MentionsLegales from './pages/MentionsLegales'
|
||||||
import Confidentialite from './pages/Confidentialite'
|
import Confidentialite from './pages/Confidentialite'
|
||||||
|
import Accessibilite from './pages/Accessibilite'
|
||||||
|
import Cgu from './pages/Cgu'
|
||||||
import Contact from './pages/Contact.jsx'
|
import Contact from './pages/Contact.jsx'
|
||||||
|
|
||||||
export default function App() {
|
export default function App() {
|
||||||
@@ -33,6 +35,8 @@ export default function App() {
|
|||||||
<Route path="/regles-jeu" element={<Layout><ReglesJeu /></Layout>} />
|
<Route path="/regles-jeu" element={<Layout><ReglesJeu /></Layout>} />
|
||||||
<Route path="/mentions-legales" element={<Layout><MentionsLegales /></Layout>} />
|
<Route path="/mentions-legales" element={<Layout><MentionsLegales /></Layout>} />
|
||||||
<Route path="/confidentialite" element={<Layout><Confidentialite /></Layout>} />
|
<Route path="/confidentialite" element={<Layout><Confidentialite /></Layout>} />
|
||||||
|
<Route path="/accessibilite" element={<Layout><Accessibilite /></Layout>} />
|
||||||
|
<Route path="/cgu" element={<Layout><Cgu /></Layout>} />
|
||||||
<Route path="/contact" element={<Layout><Contact /></Layout>} />
|
<Route path="/contact" element={<Layout><Contact /></Layout>} />
|
||||||
<Route path="/sitemap" element={<Layout><Sitemap /></Layout>} />
|
<Route path="/sitemap" element={<Layout><Sitemap /></Layout>} />
|
||||||
|
|
||||||
|
|||||||
BIN
frontend/src/assets/img/img-contact.jpg
Normal file
BIN
frontend/src/assets/img/img-contact.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.2 MiB |
@@ -16,7 +16,7 @@ export default function Footer() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<footer className="bg-green-900 text-white">
|
<footer className="bg-[#006B6B] text-white">
|
||||||
|
|
||||||
|
|
||||||
{/* Partie principale */}
|
{/* Partie principale */}
|
||||||
@@ -31,7 +31,7 @@ export default function Footer() {
|
|||||||
</h3>
|
</h3>
|
||||||
</FooterLink>
|
</FooterLink>
|
||||||
|
|
||||||
<p className="text-green-100 text-sm leading-relaxed">
|
<p className="text-teal-100 text-sm leading-relaxed">
|
||||||
Participez au jeu-concours Thé Tip Top et tentez de gagner
|
Participez au jeu-concours Thé Tip Top et tentez de gagner
|
||||||
des lots gourmands autour du thé.
|
des lots gourmands autour du thé.
|
||||||
</p>
|
</p>
|
||||||
@@ -48,7 +48,7 @@ export default function Footer() {
|
|||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
|
|
||||||
<ul className="space-y-3 text-green-100">
|
<ul className="space-y-3 text-teal-100">
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<FooterLink
|
<FooterLink
|
||||||
@@ -105,7 +105,7 @@ export default function Footer() {
|
|||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
|
|
||||||
<ul className="space-y-3 text-green-100">
|
<ul className="space-y-3 text-teal-100">
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<FooterLink
|
<FooterLink
|
||||||
@@ -126,6 +126,24 @@ export default function Footer() {
|
|||||||
</FooterLink>
|
</FooterLink>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<FooterLink
|
||||||
|
to="/accessibilite"
|
||||||
|
className="hover:text-white transition"
|
||||||
|
>
|
||||||
|
Accessibilité
|
||||||
|
</FooterLink>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<FooterLink
|
||||||
|
to="/cgu"
|
||||||
|
className="hover:text-white transition"
|
||||||
|
>
|
||||||
|
CGU
|
||||||
|
</FooterLink>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<FooterLink
|
<FooterLink
|
||||||
@@ -159,19 +177,19 @@ export default function Footer() {
|
|||||||
Contact
|
Contact
|
||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<p className="text-green-100 text-sm mb-3">
|
<p className="text-teal-100 text-sm mb-3">
|
||||||
Une question sur le jeu ?
|
Une question sur le jeu ?
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<a href="tel:+33184802034" className="block mt-2 font-medium hover:text-green-300">
|
<a href="tel:+33184802034" className="block mt-2 font-medium hover:text-teal-300">
|
||||||
01 84 80 20 34
|
01 84 80 20 34
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a href="mailto:contact@thetiptop.fr" className="inline-block mt-3 font-medium hover:text-green-300">
|
<a href="mailto:contact@thetiptop.fr" className="inline-block mt-3 font-medium hover:text-teal-300">
|
||||||
contact@thetiptop.fr
|
contact@thetiptop.fr
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<p className="text-green-100 text-sm mt-2">
|
<p className="text-teal-100 text-sm mt-2">
|
||||||
18 rue Léon Frot
|
18 rue Léon Frot
|
||||||
<br />
|
<br />
|
||||||
75011 Paris, France
|
75011 Paris, France
|
||||||
@@ -187,16 +205,16 @@ export default function Footer() {
|
|||||||
|
|
||||||
{/* Barre basse */}
|
{/* Barre basse */}
|
||||||
|
|
||||||
<div className="border-t border-green-800">
|
<div className="border-t border-teal-800">
|
||||||
|
|
||||||
<div className="max-w-7xl mx-auto px-6 py-5 flex flex-col md:flex-row justify-between items-center gap-3">
|
<div className="max-w-7xl mx-auto px-6 py-5 flex flex-col md:flex-row justify-between items-center gap-3">
|
||||||
|
|
||||||
|
|
||||||
<p className="text-green-200 text-sm">
|
<p className="text-teal-200 text-sm">
|
||||||
© {new Date().getFullYear()} Thé Tip Top. Tous droits réservés.
|
© {new Date().getFullYear()} Thé Tip Top. Tous droits réservés.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div className="flex gap-5 text-sm text-green-200">
|
<div className="flex gap-5 text-sm text-teal-200">
|
||||||
<a
|
<a
|
||||||
href="https://www.facebook.com/profile.php?id=61590449280854"
|
href="https://www.facebook.com/profile.php?id=61590449280854"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ export default function Header() {
|
|||||||
key={link.to}
|
key={link.to}
|
||||||
to={link.to}
|
to={link.to}
|
||||||
className={`font-medium transition-colors ${
|
className={`font-medium transition-colors ${
|
||||||
pathname === link.to ? 'text-green-700' : 'text-gray-700 hover:text-green-700'
|
pathname === link.to ? 'text-[#006B6B]' : 'text-gray-700 hover:text-[#006B6B]'
|
||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
{link.label}
|
{link.label}
|
||||||
@@ -55,7 +55,7 @@ export default function Header() {
|
|||||||
|
|
||||||
{isLoggedIn ? (
|
{isLoggedIn ? (
|
||||||
<div className="flex items-center gap-3">
|
<div className="flex items-center gap-3">
|
||||||
<Link to="/profile" className="flex items-center gap-2 text-sm text-gray-700 hover:text-green-700 font-medium transition-colors">
|
<Link to="/profile" className="flex items-center gap-2 text-sm text-gray-700 hover:text-[#006B6B] font-medium transition-colors">
|
||||||
<div className="w-8 h-8 rounded-full bg-[#006B6B] flex items-center justify-center text-white text-xs font-bold">
|
<div className="w-8 h-8 rounded-full bg-[#006B6B] flex items-center justify-center text-white text-xs font-bold">
|
||||||
{initials}
|
{initials}
|
||||||
</div>
|
</div>
|
||||||
@@ -70,10 +70,10 @@ export default function Header() {
|
|||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
<div className="flex items-center gap-2">
|
<div className="flex items-center gap-2">
|
||||||
<Link to="/connexion" className="bg-green-700 text-white px-4 py-2 rounded-lg hover:bg-green-800 transition-colors text-sm">
|
<Link to="/connexion" className="bg-[#006B6B] text-white px-4 py-2 rounded-lg hover:bg-[#005a5a] transition-colors text-sm">
|
||||||
Connexion
|
Connexion
|
||||||
</Link>
|
</Link>
|
||||||
<Link to="/inscription" className="border border-green-700 text-green-700 px-4 py-2 rounded-lg hover:bg-green-50 transition-colors text-sm">
|
<Link to="/inscription" className="border border-[#006B6B] text-[#006B6B] px-4 py-2 rounded-lg hover:bg-[#006B6B] hover:text-white transition-colors text-sm">
|
||||||
Inscription
|
Inscription
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
@@ -101,7 +101,7 @@ export default function Header() {
|
|||||||
to={link.to}
|
to={link.to}
|
||||||
onClick={() => setMenuOpen(false)}
|
onClick={() => setMenuOpen(false)}
|
||||||
className={`block py-3 font-medium border-b border-gray-50 ${
|
className={`block py-3 font-medium border-b border-gray-50 ${
|
||||||
pathname === link.to ? 'text-green-700' : 'text-gray-700'
|
pathname === link.to ? 'text-[#006B6B]' : 'text-gray-700'
|
||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
{link.label}
|
{link.label}
|
||||||
@@ -130,14 +130,14 @@ export default function Header() {
|
|||||||
<Link
|
<Link
|
||||||
to="/connexion"
|
to="/connexion"
|
||||||
onClick={() => setMenuOpen(false)}
|
onClick={() => setMenuOpen(false)}
|
||||||
className="w-full text-center bg-green-700 text-white px-4 py-2.5 rounded-lg hover:bg-green-800 transition-colors text-sm font-medium"
|
className="w-full text-center bg-[#006B6B] text-white px-4 py-2.5 rounded-lg hover:bg-[#005a5a] transition-colors text-sm font-medium"
|
||||||
>
|
>
|
||||||
Connexion
|
Connexion
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/inscription"
|
to="/inscription"
|
||||||
onClick={() => setMenuOpen(false)}
|
onClick={() => setMenuOpen(false)}
|
||||||
className="w-full text-center border border-green-700 text-green-700 px-4 py-2.5 rounded-lg hover:bg-green-50 transition-colors text-sm font-medium"
|
className="w-full text-center border border-[#006B6B] text-[#006B6B] px-4 py-2.5 rounded-lg hover:bg-[#006B6B] hover:text-white transition-colors text-sm font-medium"
|
||||||
>
|
>
|
||||||
Inscription
|
Inscription
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
41
frontend/src/pages/Accessibilite.jsx
Normal file
41
frontend/src/pages/Accessibilite.jsx
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
export default function Accessibilite() {
|
||||||
|
return (
|
||||||
|
<main className="bg-gray-50 min-h-screen px-4 sm:px-6 py-10 sm:py-16">
|
||||||
|
<div className="max-w-5xl mx-auto bg-white rounded-2xl shadow p-5 sm:p-8 md:p-10">
|
||||||
|
|
||||||
|
<h1 className="text-2xl sm:text-3xl md:text-4xl font-bold text-[#006B6B] mb-4 sm:mb-6">
|
||||||
|
Déclaration d'accessibilité
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<p className="text-gray-600 mb-8 sm:mb-10 leading-relaxed text-sm sm:text-base">
|
||||||
|
La société Thé Tip Top s'engage à rendre le site de son jeu-concours « 100% Gagnant »
|
||||||
|
accessible conformément à l'article 47 de la loi n° 2005-102 du 11 février 2005.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<section className="mb-6 sm:mb-8">
|
||||||
|
<h2 className="text-lg sm:text-xl md:text-2xl font-bold text-[#006B6B] mb-2 sm:mb-3">
|
||||||
|
État de conformité
|
||||||
|
</h2>
|
||||||
|
<p className="text-gray-700 leading-relaxed text-sm sm:text-base">
|
||||||
|
Le site a été développé en conformité avec les normes d'accessibilité internationales
|
||||||
|
WCAG 2.1 niveau AA et le Référentiel Général d'Amélioration de l'Accessibilité
|
||||||
|
(RGAA 4.1) afin de garantir une accessibilité maximale aux utilisateurs en situation
|
||||||
|
de handicap.
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h2 className="text-lg sm:text-xl md:text-2xl font-bold text-[#006B6B] mb-2 sm:mb-3">
|
||||||
|
Signaler un problème d'accessibilité
|
||||||
|
</h2>
|
||||||
|
<p className="text-gray-700 leading-relaxed text-sm sm:text-base">
|
||||||
|
Si vous rencontrez un obstacle à l'accessibilité sur le site, vous pouvez nous en faire
|
||||||
|
part afin que nous puissions y remédier :<br />
|
||||||
|
<strong>Email :</strong> contact@thetiptop.fr
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -2,12 +2,12 @@ import { Link } from 'react-router-dom'
|
|||||||
|
|
||||||
export default function Accueil() {
|
export default function Accueil() {
|
||||||
return (
|
return (
|
||||||
<div className="bg-green-50">
|
<div className="bg-gray-50 min-h-screen">
|
||||||
|
|
||||||
{/* Hero */}
|
{/* Hero */}
|
||||||
<section className="max-w-7xl mx-auto px-4 sm:px-6 py-12 sm:py-16 md:py-24">
|
<section className="max-w-7xl mx-auto px-4 sm:px-6 py-12 sm:py-16 md:py-24">
|
||||||
<div className="text-center max-w-3xl mx-auto">
|
<div className="text-center max-w-3xl mx-auto">
|
||||||
<h1 className="text-3xl sm:text-4xl md:text-5xl lg:text-6xl font-bold text-green-800 mb-4 sm:mb-6 leading-tight">
|
<h1 className="text-3xl sm:text-4xl md:text-5xl lg:text-6xl font-bold text-[#006B6B] mb-4 sm:mb-6 leading-tight">
|
||||||
Bienvenue au jeu-concours Thé Tip Top
|
Bienvenue au jeu-concours Thé Tip Top
|
||||||
</h1>
|
</h1>
|
||||||
<p className="text-base sm:text-lg md:text-xl text-gray-600 mb-8 sm:mb-10">
|
<p className="text-base sm:text-lg md:text-xl text-gray-600 mb-8 sm:mb-10">
|
||||||
@@ -18,13 +18,13 @@ export default function Accueil() {
|
|||||||
<div className="flex flex-col sm:flex-row justify-center gap-3 sm:gap-4">
|
<div className="flex flex-col sm:flex-row justify-center gap-3 sm:gap-4">
|
||||||
<Link
|
<Link
|
||||||
to="/saisir-code-unique"
|
to="/saisir-code-unique"
|
||||||
className="bg-green-700 hover:bg-green-800 text-white font-semibold px-6 sm:px-8 py-3 sm:py-4 rounded-xl transition-colors text-sm sm:text-base"
|
className="bg-[#006B6B] hover:bg-[#005555] text-white font-semibold px-6 sm:px-8 py-3 sm:py-4 rounded-xl transition-colors text-sm sm:text-base"
|
||||||
>
|
>
|
||||||
Tester mon code
|
Tester mon code
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
to="/regles-jeu"
|
to="/regles-jeu"
|
||||||
className="border border-green-700 text-green-700 hover:bg-green-100 font-semibold px-6 sm:px-8 py-3 sm:py-4 rounded-xl transition-colors text-sm sm:text-base"
|
className="border border-[#006B6B] text-[#006B6B] hover:bg-[#005555] hover:text-white font-semibold px-6 sm:px-8 py-3 sm:py-4 rounded-xl transition-colors text-sm sm:text-base"
|
||||||
>
|
>
|
||||||
Découvrir les règles
|
Découvrir les règles
|
||||||
</Link>
|
</Link>
|
||||||
@@ -34,7 +34,7 @@ export default function Accueil() {
|
|||||||
|
|
||||||
{/* Comment participer */}
|
{/* Comment participer */}
|
||||||
<section className="max-w-5xl mx-auto px-4 sm:px-6 pb-12 sm:pb-20">
|
<section className="max-w-5xl mx-auto px-4 sm:px-6 pb-12 sm:pb-20">
|
||||||
<h2 className="text-2xl sm:text-3xl font-bold text-green-800 mb-6 sm:mb-8 text-center">
|
<h2 className="text-2xl sm:text-3xl font-bold text-[#006B6B] mb-6 sm:mb-8 text-center">
|
||||||
Comment participer ?
|
Comment participer ?
|
||||||
</h2>
|
</h2>
|
||||||
<div className="grid grid-cols-2 md:grid-cols-4 gap-4">
|
<div className="grid grid-cols-2 md:grid-cols-4 gap-4">
|
||||||
@@ -45,7 +45,7 @@ export default function Accueil() {
|
|||||||
{ num: '4', text: 'Découvrez votre lot' },
|
{ num: '4', text: 'Découvrez votre lot' },
|
||||||
].map((step) => (
|
].map((step) => (
|
||||||
<div key={step.num} className="bg-white rounded-2xl shadow p-4 sm:p-6 text-center">
|
<div key={step.num} className="bg-white rounded-2xl shadow p-4 sm:p-6 text-center">
|
||||||
<div className="text-2xl sm:text-3xl font-bold text-green-700 mb-2 sm:mb-3">{step.num}</div>
|
<div className="text-2xl sm:text-3xl font-bold text-[#006B6B] mb-2 sm:mb-3">{step.num}</div>
|
||||||
<p className="text-sm sm:text-base text-gray-700">{step.text}</p>
|
<p className="text-sm sm:text-base text-gray-700">{step.text}</p>
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
|
|||||||
235
frontend/src/pages/Cgu.jsx
Normal file
235
frontend/src/pages/Cgu.jsx
Normal file
@@ -0,0 +1,235 @@
|
|||||||
|
export default function Cgu() {
|
||||||
|
return (
|
||||||
|
<main className="bg-gray-50 min-h-screen px-4 sm:px-6 py-10 sm:py-16">
|
||||||
|
<div className="max-w-5xl mx-auto bg-white rounded-2xl shadow p-5 sm:p-8 md:p-10">
|
||||||
|
|
||||||
|
<h1 className="text-2xl sm:text-3xl md:text-4xl font-bold text-[#006B6B] mb-4 sm:mb-6">
|
||||||
|
Conditions générales d'utilisation
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<p className="text-gray-600 mb-8 sm:mb-10 text-sm sm:text-base">
|
||||||
|
Les présentes Conditions Générales d'Utilisation (CGU) précisent les modalités d'accès et
|
||||||
|
d'utilisation du site internet du jeu-concours « 100% Gagnant » de la société Thé Tip Top.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
{[
|
||||||
|
{
|
||||||
|
title: 'Article 1 – Objet des CGU',
|
||||||
|
content: (
|
||||||
|
<div className="text-gray-700 space-y-2 text-sm sm:text-base leading-relaxed">
|
||||||
|
<p>
|
||||||
|
Les présentes Conditions Générales d'Utilisation (CGU) ont pour objet de définir
|
||||||
|
les modalités et conditions dans lesquelles la société Thé Tip Top met à
|
||||||
|
disposition des utilisateurs le site internet du jeu-concours « 100% Gagnant »,
|
||||||
|
accessible à l'adresse https://www.thetiptop-concours.fr.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Toute utilisation du Site implique l'acceptation pleine et entière des présentes
|
||||||
|
CGU. En cas de non-acceptation, l'utilisateur est invité à ne pas accéder au Site
|
||||||
|
ni à utiliser ses services.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Article 2 – Conditions d\'accès au Site',
|
||||||
|
content: (
|
||||||
|
<div className="text-gray-700 space-y-2 text-sm sm:text-base leading-relaxed">
|
||||||
|
<p><strong>Conditions d'âge —</strong> La participation au jeu-concours est strictement
|
||||||
|
réservée aux personnes physiques majeures, c'est-à-dire âgées d'au moins 18 ans
|
||||||
|
révolus à la date de leur inscription. Toute inscription d'un mineur est nulle et
|
||||||
|
non avenue. La société Thé Tip Top se réserve le droit de demander la fourniture
|
||||||
|
d'un justificatif d'identité pour vérifier l'âge déclaré.
|
||||||
|
</p>
|
||||||
|
<p><strong>Conditions géographiques —</strong> Le jeu-concours « 100% Gagnant » est
|
||||||
|
ouvert exclusivement aux résidents de France métropolitaine et des Départements et
|
||||||
|
Régions d'Outre-Mer (DROM). Sont exclus les ressortissants ou résidents de toute
|
||||||
|
autre zone géographique.
|
||||||
|
</p>
|
||||||
|
<p><strong>Personnes exclues —</strong> Sont exclus de toute participation les membres
|
||||||
|
du personnel de la société Thé Tip Top et de l'agence Furious Ducks, leurs
|
||||||
|
sous-traitants, ainsi que les membres de leur famille en ligne directe (conjoints,
|
||||||
|
ascendants, descendants). Est également exclu le personnel de l'étude du
|
||||||
|
Commissaire de Justice dépositaire du règlement.
|
||||||
|
</p>
|
||||||
|
<p><strong>Conditions techniques —</strong> L'accès au Site nécessite une connexion
|
||||||
|
internet active et un navigateur web à jour. La société Thé Tip Top ne saurait
|
||||||
|
être tenue responsable des difficultés d'accès liées à l'environnement technique
|
||||||
|
de l'utilisateur.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Article 3 – Services proposés et fonctionnalités',
|
||||||
|
content: (
|
||||||
|
<div className="text-gray-700 space-y-4 text-sm sm:text-base leading-relaxed">
|
||||||
|
<div>
|
||||||
|
<h3 className="font-semibold text-gray-800 mb-1">3.1 – Services proposés</h3>
|
||||||
|
<p>
|
||||||
|
Le site du jeu-concours « 100% Gagnant » est un site internet dédié permettant
|
||||||
|
aux clients de la société Thé Tip Top de participer à un jeu-concours à
|
||||||
|
l'occasion de l'ouverture de la 10ᵉ boutique de l'enseigne à Nice. Les services
|
||||||
|
proposés incluent :
|
||||||
|
</p>
|
||||||
|
<ul className="list-disc list-inside space-y-2 mt-2">
|
||||||
|
<li>La présentation du jeu-concours, de ses conditions et des lots à gagner</li>
|
||||||
|
<li>La création d'un espace personnel pour chaque participant</li>
|
||||||
|
<li>La saisie et la validation des codes à 10 caractères figurant sur les tickets de caisse ou factures d'un montant supérieur à 49 €</li>
|
||||||
|
<li>La consultation de l'historique des participations et gains obtenus</li>
|
||||||
|
<li>La réclamation des lots gagnés, en ligne ou en boutique</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3 className="font-semibold text-gray-800 mb-1">3.2 – Fonctionnalités principales</h3>
|
||||||
|
<p><strong>S'inscrire —</strong> L'utilisateur peut créer un compte personnel en
|
||||||
|
renseignant un formulaire d'inscription classique ou en utilisant les
|
||||||
|
fonctionnalités d'authentification via Google. La création d'un compte est
|
||||||
|
obligatoire pour participer au jeu-concours.
|
||||||
|
</p>
|
||||||
|
<p className="mt-2"><strong>Jouer (participer au jeu-concours) —</strong> Une fois
|
||||||
|
connecté, l'utilisateur saisit le code à 10 caractères figurant sur son ticket de
|
||||||
|
caisse ou sa facture. Le Site valide le code et attribue immédiatement le lot
|
||||||
|
correspondant selon la répartition préétablie :
|
||||||
|
</p>
|
||||||
|
<ul className="list-disc list-inside space-y-1 mt-2">
|
||||||
|
<li>60 % des tickets : infuseur à thé</li>
|
||||||
|
<li>20 % des tickets : boîte de 100 g de thé détox ou d'infusion</li>
|
||||||
|
<li>10 % des tickets : boîte de 100 g de thé signature</li>
|
||||||
|
<li>6 % des tickets : coffret découverte d'une valeur de 39 €</li>
|
||||||
|
<li>4 % des tickets : coffret découverte d'une valeur de 69 €</li>
|
||||||
|
</ul>
|
||||||
|
<p className="mt-2">
|
||||||
|
Un même utilisateur peut soumettre plusieurs codes distincts. La participation
|
||||||
|
est possible pendant toute la durée du jeu-concours, soit 30 jours à compter de
|
||||||
|
son ouverture. Les lots gagnés peuvent être réclamés pendant cette période ainsi
|
||||||
|
que dans les 30 jours calendaires suivant la date de clôture du jeu-concours.
|
||||||
|
Passé ce délai, les lots non réclamés sont définitivement perdus.
|
||||||
|
</p>
|
||||||
|
<p className="mt-2"><strong>Remise des lots —</strong> Les lots peuvent être réclamés
|
||||||
|
en boutique, sur présentation du compte utilisateur validé et de la confirmation
|
||||||
|
de gain.
|
||||||
|
</p>
|
||||||
|
<p className="mt-2">
|
||||||
|
À l'issue du jeu-concours, un tirage au sort est effectué parmi l'ensemble des
|
||||||
|
participants pour désigner le gagnant d'un an de thé d'une valeur de 360 €. Ce
|
||||||
|
tirage a lieu sous le contrôle de Maître Arnaud Rick, Commissaire de Justice. Le
|
||||||
|
nombre de participations n'augmente pas les chances de remporter ce lot.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Article 4 – Conditions d\'inscription et de création de compte',
|
||||||
|
content: (
|
||||||
|
<div className="text-gray-700 space-y-4 text-sm sm:text-base leading-relaxed">
|
||||||
|
<div>
|
||||||
|
<h3 className="font-semibold text-gray-800 mb-1">4.1 – Processus d'inscription</h3>
|
||||||
|
<p>
|
||||||
|
Pour accéder aux services du Site, l'utilisateur doit créer un compte personnel.
|
||||||
|
L'inscription peut s'effectuer de deux manières :
|
||||||
|
</p>
|
||||||
|
<p className="mt-2"><strong>Via le formulaire classique —</strong> L'utilisateur
|
||||||
|
renseigne les champs obligatoires suivants : nom, prénom, adresse e-mail valide,
|
||||||
|
mot de passe sécurisé. L'utilisateur reçoit ensuite un e-mail de confirmation
|
||||||
|
contenant un lien d'activation. Le compte n'est activé qu'après validation de ce
|
||||||
|
lien.
|
||||||
|
</p>
|
||||||
|
<p className="mt-2"><strong>Via l'authentification Google —</strong> L'utilisateur
|
||||||
|
peut s'inscrire en utilisant son compte Google. Dans ce cas, les données
|
||||||
|
transmises par la plateforme tierce (nom, prénom, adresse e-mail) sont récupérées
|
||||||
|
avec le consentement explicite de l'utilisateur.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3 className="font-semibold text-gray-800 mb-1">4.2 – Unicité du compte</h3>
|
||||||
|
<p>
|
||||||
|
Chaque utilisateur ne peut posséder qu'un seul compte. Toute tentative de
|
||||||
|
création de comptes multiples par un même utilisateur est prohibée et peut
|
||||||
|
entraîner la disqualification de l'ensemble des participations concernées.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3 className="font-semibold text-gray-800 mb-1">4.3 – Véracité des informations</h3>
|
||||||
|
<p>
|
||||||
|
L'utilisateur s'engage à fournir des informations exactes, complètes et à jour
|
||||||
|
lors de son inscription et tout au long de l'utilisation du Site. Toute
|
||||||
|
inscription effectuée avec une fausse identité ou des données inexactes sera
|
||||||
|
annulée, ainsi que les participations et gains associés.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Article 5 – Responsabilité de l\'utilisateur',
|
||||||
|
content: (
|
||||||
|
<div className="text-gray-700 space-y-3 text-sm sm:text-base leading-relaxed">
|
||||||
|
<p>
|
||||||
|
L'utilisateur est seul responsable des informations communiquées lors de la
|
||||||
|
création et de l'utilisation de son compte. À ce titre, il s'engage à :
|
||||||
|
</p>
|
||||||
|
<ul className="list-disc list-inside space-y-2">
|
||||||
|
<li>Fournir des données personnelles exactes, sincères et à jour</li>
|
||||||
|
<li>Ne pas usurper l'identité d'un tiers</li>
|
||||||
|
<li>Ne pas créer de compte au nom d'une autre personne sans son autorisation</li>
|
||||||
|
<li>Signaler sans délai à la société Thé Tip Top toute erreur, inexactitude ou modification de ses informations personnelles via les fonctionnalités de gestion du compte</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
En cas de préjudice subi par la société Thé Tip Top ou par des tiers en raison de
|
||||||
|
fausses informations fournies par l'utilisateur, ce dernier en assume l'entière
|
||||||
|
responsabilité et peut se voir réclamer réparation.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Article 6 – Gestion du compte utilisateur',
|
||||||
|
content: (
|
||||||
|
<div className="text-gray-700 space-y-4 text-sm sm:text-base leading-relaxed">
|
||||||
|
<div>
|
||||||
|
<h3 className="font-semibold text-gray-800 mb-1">6.1 – Modification des informations</h3>
|
||||||
|
<p>
|
||||||
|
L'utilisateur peut à tout moment accéder à son espace personnel et modifier ses
|
||||||
|
informations (nom, prénom, mot de passe).
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3 className="font-semibold text-gray-800 mb-1">6.2 – Suppression du compte</h3>
|
||||||
|
<p>
|
||||||
|
L'utilisateur peut demander la suppression de son compte à tout moment en
|
||||||
|
contactant directement l'équipe via contact@thetiptop.fr. La suppression entraîne
|
||||||
|
la perte définitive des participations et gains non encore réclamés. Les données
|
||||||
|
personnelles sont supprimées conformément aux dispositions de la Politique de
|
||||||
|
Confidentialité, sous réserve des obligations légales de conservation.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3 className="font-semibold text-gray-800 mb-1">6.3 – Sécurité des identifiants</h3>
|
||||||
|
<p>
|
||||||
|
L'utilisateur est seul responsable de la confidentialité de ses identifiants de
|
||||||
|
connexion (adresse e-mail et mot de passe). Il s'engage à ne les communiquer à
|
||||||
|
personne et à prendre toutes les précautions nécessaires pour en assurer la
|
||||||
|
protection. En cas de perte, de vol ou d'utilisation frauduleuse de ses
|
||||||
|
identifiants, l'utilisateur doit en informer immédiatement la société Thé Tip
|
||||||
|
Top. La société Thé Tip Top ne saurait être tenue responsable des dommages
|
||||||
|
résultant de l'utilisation des identifiants par un tiers, sauf faute de sa part.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
),
|
||||||
|
},
|
||||||
|
].map((article) => (
|
||||||
|
<section key={article.title} className="mb-6 sm:mb-8">
|
||||||
|
<h2 className="text-lg sm:text-xl md:text-2xl font-bold text-[#006B6B] mb-2 sm:mb-3">
|
||||||
|
{article.title}
|
||||||
|
</h2>
|
||||||
|
{article.content}
|
||||||
|
</section>
|
||||||
|
))}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
export default function Confidentialite() {
|
export default function Confidentialite() {
|
||||||
return (
|
return (
|
||||||
<main className="bg-green-50 min-h-screen px-4 sm:px-6 py-10 sm:py-16">
|
<main className="bg-[#F0F0F0] min-h-screen px-4 sm:px-6 py-10 sm:py-16">
|
||||||
<div className="max-w-5xl mx-auto bg-white rounded-2xl shadow p-5 sm:p-8 md:p-10">
|
<div className="max-w-5xl mx-auto bg-white rounded-2xl shadow p-5 sm:p-8 md:p-10">
|
||||||
|
|
||||||
<h1 className="text-2xl sm:text-3xl md:text-4xl font-bold text-green-800 mb-4 sm:mb-6">
|
<h1 className="text-2xl sm:text-3xl md:text-4xl font-bold text-[#006B6B] mb-4 sm:mb-6">
|
||||||
Politique de confidentialité
|
Politique de confidentialité
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
@@ -14,7 +14,7 @@ export default function Confidentialite() {
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<section className="mb-6 sm:mb-8">
|
<section className="mb-6 sm:mb-8">
|
||||||
<h2 className="text-lg sm:text-xl md:text-2xl font-bold text-green-700 mb-2 sm:mb-3">
|
<h2 className="text-lg sm:text-xl md:text-2xl font-bold text-[#006B6B] mb-2 sm:mb-3">
|
||||||
Article 1 – Responsable du traitement
|
Article 1 – Responsable du traitement
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-gray-700 leading-relaxed text-sm sm:text-base">
|
<p className="text-gray-700 leading-relaxed text-sm sm:text-base">
|
||||||
@@ -24,7 +24,7 @@ export default function Confidentialite() {
|
|||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section className="mb-6 sm:mb-8">
|
<section className="mb-6 sm:mb-8">
|
||||||
<h2 className="text-lg sm:text-xl md:text-2xl font-bold text-green-700 mb-2 sm:mb-3">
|
<h2 className="text-lg sm:text-xl md:text-2xl font-bold text-[#006B6B] mb-2 sm:mb-3">
|
||||||
Article 2 – Données collectées
|
Article 2 – Données collectées
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-gray-700 mb-3 text-sm sm:text-base">Dans le cadre de votre participation, nous pouvons collecter :</p>
|
<p className="text-gray-700 mb-3 text-sm sm:text-base">Dans le cadre de votre participation, nous pouvons collecter :</p>
|
||||||
@@ -38,7 +38,7 @@ export default function Confidentialite() {
|
|||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section className="mb-6 sm:mb-8">
|
<section className="mb-6 sm:mb-8">
|
||||||
<h2 className="text-lg sm:text-xl md:text-2xl font-bold text-green-700 mb-2 sm:mb-3">
|
<h2 className="text-lg sm:text-xl md:text-2xl font-bold text-[#006B6B] mb-2 sm:mb-3">
|
||||||
Article 3 – Utilisation des données
|
Article 3 – Utilisation des données
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-gray-700 leading-relaxed text-sm sm:text-base">
|
<p className="text-gray-700 leading-relaxed text-sm sm:text-base">
|
||||||
@@ -49,7 +49,7 @@ export default function Confidentialite() {
|
|||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section className="mb-6 sm:mb-8">
|
<section className="mb-6 sm:mb-8">
|
||||||
<h2 className="text-lg sm:text-xl md:text-2xl font-bold text-green-700 mb-2 sm:mb-3">
|
<h2 className="text-lg sm:text-xl md:text-2xl font-bold text-[#006B6B] mb-2 sm:mb-3">
|
||||||
Article 4 – Conservation des données
|
Article 4 – Conservation des données
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-gray-700 leading-relaxed text-sm sm:text-base">
|
<p className="text-gray-700 leading-relaxed text-sm sm:text-base">
|
||||||
@@ -59,7 +59,7 @@ export default function Confidentialite() {
|
|||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section className="mb-6 sm:mb-8">
|
<section className="mb-6 sm:mb-8">
|
||||||
<h2 className="text-lg sm:text-xl md:text-2xl font-bold text-green-700 mb-2 sm:mb-3">
|
<h2 className="text-lg sm:text-xl md:text-2xl font-bold text-[#006B6B] mb-2 sm:mb-3">
|
||||||
Article 5 – Cookies
|
Article 5 – Cookies
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-gray-700 leading-relaxed text-sm sm:text-base">
|
<p className="text-gray-700 leading-relaxed text-sm sm:text-base">
|
||||||
@@ -70,7 +70,7 @@ export default function Confidentialite() {
|
|||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section className="mb-6 sm:mb-8">
|
<section className="mb-6 sm:mb-8">
|
||||||
<h2 className="text-lg sm:text-xl md:text-2xl font-bold text-green-700 mb-2 sm:mb-3">
|
<h2 className="text-lg sm:text-xl md:text-2xl font-bold text-[#006B6B] mb-2 sm:mb-3">
|
||||||
Article 6 – Vos droits
|
Article 6 – Vos droits
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-gray-700 mb-3 text-sm sm:text-base">Conformément au RGPD, vous disposez des droits suivants :</p>
|
<p className="text-gray-700 mb-3 text-sm sm:text-base">Conformément au RGPD, vous disposez des droits suivants :</p>
|
||||||
@@ -84,7 +84,7 @@ export default function Confidentialite() {
|
|||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<h2 className="text-lg sm:text-xl md:text-2xl font-bold text-green-700 mb-2 sm:mb-3">
|
<h2 className="text-lg sm:text-xl md:text-2xl font-bold text-[#006B6B] mb-2 sm:mb-3">
|
||||||
Article 7 – Contact
|
Article 7 – Contact
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-gray-700 text-sm sm:text-base">
|
<p className="text-gray-700 text-sm sm:text-base">
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
|
import imgContact from '../assets/img/img-contact.jpg'
|
||||||
|
|
||||||
export default function Contact() {
|
export default function Contact() {
|
||||||
return (
|
return (
|
||||||
<main className="bg-green-50 min-h-screen px-4 sm:px-6 py-10 sm:py-16">
|
<main className="bg-[#F0F0F0] px-4 sm:px-6 py-10 sm:py-16">
|
||||||
<div className="max-w-6xl mx-auto grid md:grid-cols-2 gap-6 sm:gap-8">
|
<div className="max-w-6xl mx-auto grid md:grid-cols-2 gap-6 sm:gap-8">
|
||||||
|
|
||||||
{/* Informations */}
|
{/* Informations */}
|
||||||
<section className="bg-white rounded-2xl shadow p-5 sm:p-8 md:p-10">
|
<section className="bg-white rounded-2xl shadow p-5 sm:p-8 md:p-10">
|
||||||
<h1 className="text-2xl sm:text-3xl md:text-4xl font-bold text-green-800 mb-4 sm:mb-6">
|
<h1 className="text-2xl sm:text-3xl md:text-4xl font-bold text-[#006B6B] mb-4 sm:mb-6">
|
||||||
Contact
|
Contact
|
||||||
</h1>
|
</h1>
|
||||||
<p className="text-gray-600 leading-relaxed mb-6 sm:mb-8 text-sm sm:text-base">
|
<p className="text-gray-600 leading-relaxed mb-6 sm:mb-8 text-sm sm:text-base">
|
||||||
@@ -14,69 +16,27 @@ export default function Contact() {
|
|||||||
</p>
|
</p>
|
||||||
<div className="space-y-5 text-gray-700">
|
<div className="space-y-5 text-gray-700">
|
||||||
<div>
|
<div>
|
||||||
<h2 className="font-semibold text-green-700 mb-1">Adresse</h2>
|
<h2 className="font-semibold text-[#006B6B] mb-1">Adresse</h2>
|
||||||
<p className="text-sm sm:text-base">ThéTipTop<br />18 rue Léon Frot<br />75011 Paris, France</p>
|
<p className="text-sm sm:text-base">ThéTipTop<br />18 rue Léon Frot<br />75011 Paris, France</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<h2 className="font-semibold text-green-700 mb-1">Email</h2>
|
<h2 className="font-semibold text-[#006B6B] mb-1">Email</h2>
|
||||||
<a href="mailto:contact@thetiptop.fr" className="text-sm sm:text-base hover:text-green-700">contact@thetiptop.fr</a>
|
<a href="mailto:contact@thetiptop.fr" className="text-sm sm:text-base hover:text-[#006B6B]">contact@thetiptop.fr</a>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<h2 className="font-semibold text-green-700 mb-1">Téléphone</h2>
|
<h2 className="font-semibold text-[#006B6B] mb-1">Téléphone</h2>
|
||||||
<a href="tel:+33184802034" className="text-sm sm:text-base hover:text-green-700">01 84 80 20 34</a>
|
<a href="tel:+33184802034" className="text-sm sm:text-base hover:text-[#006B6B]">01 84 80 20 34</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
{/* Formulaire */}
|
{/* Image */}
|
||||||
<section className="bg-white rounded-2xl shadow p-5 sm:p-8 md:p-10">
|
<section className="rounded-2xl shadow overflow-hidden h-64 sm:h-80 md:h-117 md:self-start">
|
||||||
<h2 className="text-xl sm:text-2xl font-bold text-green-800 mb-4 sm:mb-6">
|
<img
|
||||||
Envoyez-nous un message
|
src={imgContact}
|
||||||
</h2>
|
alt="Une personne savourant un thé"
|
||||||
<form className="space-y-4 sm:space-y-5">
|
className="w-full h-full object-cover"
|
||||||
<div>
|
|
||||||
<label htmlFor="contact-name" className="block text-gray-700 mb-1.5 text-sm sm:text-base">Nom</label>
|
|
||||||
<input
|
|
||||||
type="text"
|
|
||||||
id="contact-name"
|
|
||||||
placeholder="Votre nom"
|
|
||||||
className="w-full border border-gray-300 rounded-xl px-4 py-2.5 sm:py-3 text-sm sm:text-base focus:outline-none focus:ring-2 focus:ring-green-600"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<label htmlFor="contact-email" className="block text-gray-700 mb-1.5 text-sm sm:text-base">Email</label>
|
|
||||||
<input
|
|
||||||
type="email"
|
|
||||||
id="contact-email"
|
|
||||||
placeholder="Votre email"
|
|
||||||
className="w-full border border-gray-300 rounded-xl px-4 py-2.5 sm:py-3 text-sm sm:text-base focus:outline-none focus:ring-2 focus:ring-green-600"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<label htmlFor="contact-subject" className="block text-gray-700 mb-1.5 text-sm sm:text-base">Sujet</label>
|
|
||||||
<input
|
|
||||||
type="text"
|
|
||||||
id="contact-subject"
|
|
||||||
placeholder="Sujet de votre demande"
|
|
||||||
className="w-full border border-gray-300 rounded-xl px-4 py-2.5 sm:py-3 text-sm sm:text-base focus:outline-none focus:ring-2 focus:ring-green-600"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<label htmlFor="contact-message" className="block text-gray-700 mb-1.5 text-sm sm:text-base">Message</label>
|
|
||||||
<textarea
|
|
||||||
id="contact-message"
|
|
||||||
rows="4"
|
|
||||||
placeholder="Votre message..."
|
|
||||||
className="w-full border border-gray-300 rounded-xl px-4 py-2.5 sm:py-3 text-sm sm:text-base focus:outline-none focus:ring-2 focus:ring-green-600 resize-none"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<button
|
|
||||||
type="submit"
|
|
||||||
className="w-full bg-green-700 hover:bg-green-800 text-white font-semibold py-2.5 sm:py-3 rounded-xl transition text-sm sm:text-base"
|
|
||||||
>
|
|
||||||
Envoyer le message
|
|
||||||
</button>
|
|
||||||
</form>
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -195,7 +195,7 @@ export default function Inscription() {
|
|||||||
className="mt-0.5 w-4 h-4 accent-[#006B6B] flex-shrink-0" />
|
className="mt-0.5 w-4 h-4 accent-[#006B6B] flex-shrink-0" />
|
||||||
<span className="text-xs text-gray-500 leading-relaxed">
|
<span className="text-xs text-gray-500 leading-relaxed">
|
||||||
J'accepte les{' '}
|
J'accepte les{' '}
|
||||||
<Link to="/mentions-legales" className="text-[#006B6B] hover:underline font-medium">conditions d'utilisation</Link>{' '}
|
<Link to="/cgu" className="text-[#006B6B] hover:underline font-medium">conditions d'utilisation</Link>{' '}
|
||||||
et la{' '}
|
et la{' '}
|
||||||
<Link to="/confidentialite" className="text-[#006B6B] hover:underline font-medium">politique de confidentialité</Link>
|
<Link to="/confidentialite" className="text-[#006B6B] hover:underline font-medium">politique de confidentialité</Link>
|
||||||
</span>
|
</span>
|
||||||
|
|||||||
@@ -1,16 +1,17 @@
|
|||||||
export default function MentionsLegales() {
|
export default function MentionsLegales() {
|
||||||
return (
|
return (
|
||||||
<main className="bg-green-50 min-h-screen px-4 sm:px-6 py-10 sm:py-16">
|
<main className="bg-gray-50 min-h-screen px-4 sm:px-6 py-10 sm:py-16">
|
||||||
<div className="max-w-5xl mx-auto bg-white rounded-2xl shadow p-5 sm:p-8 md:p-10">
|
<div className="max-w-5xl mx-auto bg-white rounded-2xl shadow p-5 sm:p-8 md:p-10">
|
||||||
|
|
||||||
<h1 className="text-2xl sm:text-3xl md:text-4xl font-bold text-green-800 mb-4 sm:mb-6">
|
<h1 className="text-2xl sm:text-3xl md:text-4xl font-bold text-[#006B6B] mb-4 sm:mb-6">
|
||||||
Mentions légales
|
Mentions légales
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<p className="text-gray-600 mb-8 sm:mb-10 text-sm sm:text-base">
|
<p className="text-gray-600 mb-8 sm:mb-10 text-sm sm:text-base">
|
||||||
Conformément à la loi n°2004-575 du 21 juin 2004 pour la Confiance dans l'Économie
|
Conformément à la loi n°2004-575 du 21 juin 2004 pour la Confiance dans l'Économie
|
||||||
Numérique (LCEN), les présentes mentions légales précisent les informations relatives
|
Numérique (LCEN), les présentes mentions légales précisent l'identité des différents
|
||||||
au site du jeu-concours « 100% Gagnant » de Thé Tip Top.
|
intervenants dans la conception et le suivi du site internet dédié au jeu-concours
|
||||||
|
« 100% Gagnant » de la société Thé Tip Top.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
{[
|
{[
|
||||||
@@ -22,45 +23,217 @@ export default function MentionsLegales() {
|
|||||||
<p><strong>Forme juridique :</strong> Société à Responsabilité Limitée (SARL)</p>
|
<p><strong>Forme juridique :</strong> Société à Responsabilité Limitée (SARL)</p>
|
||||||
<p><strong>Capital social :</strong> 150 000 €</p>
|
<p><strong>Capital social :</strong> 150 000 €</p>
|
||||||
<p><strong>Siège social :</strong> 18 rue Léon Frot, 75011 Paris, France</p>
|
<p><strong>Siège social :</strong> 18 rue Léon Frot, 75011 Paris, France</p>
|
||||||
<p><strong>Représentant légal :</strong> Eric Bourdon, Gérant</p>
|
<p><strong>Représentant légal :</strong> M. Eric Bourdon, Gérant</p>
|
||||||
|
<p><strong>Directeur de la publication :</strong> M. Eric Bourdon, en sa qualité de Gérant</p>
|
||||||
<p><strong>SIRET :</strong> 362 521 879 00054</p>
|
<p><strong>SIRET :</strong> 362 521 879 00054</p>
|
||||||
<p><strong>TVA intracommunautaire :</strong> FR12 948140589</p>
|
<p><strong>TVA intracommunautaire :</strong> FR83362521879</p>
|
||||||
<p><strong>Email :</strong> contact@thetiptop.fr</p>
|
<p><strong>Email :</strong> contact@thetiptop.fr</p>
|
||||||
<p><strong>Téléphone :</strong> 01 84 80 20 34</p>
|
<p><strong>Téléphone :</strong> 01 84 80 20 34</p>
|
||||||
|
<p className="pt-2">
|
||||||
|
Le règlement du jeu-concours a été déposé auprès de Maître Arnaud Rick,
|
||||||
|
Commissaire de Justice. Il est consultable gratuitement sur simple demande
|
||||||
|
à l'adresse contact@thetiptop.fr.
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Article 2 – Développement du site',
|
title: 'Article 2 – Agence de développement',
|
||||||
content: <p className="text-gray-700 text-sm sm:text-base">Le site du jeu-concours « 100% Gagnant » a été conçu et développé par Furious Ducks, responsable de la conception technique, de l'application web, de l'API et de l'infrastructure.</p>,
|
content: (
|
||||||
|
<div className="text-gray-700 space-y-2 text-sm sm:text-base">
|
||||||
|
<p><strong>Dénomination sociale :</strong> Furious Ducks</p>
|
||||||
|
<p><strong>Statut juridique :</strong> Société par Actions Simplifiée (SAS)</p>
|
||||||
|
<p><strong>Capital social :</strong> 200 000 €</p>
|
||||||
|
<p><strong>Siège social :</strong> 13 Avenue Jean Moulin, 93240 Stains</p>
|
||||||
|
<p><strong>Directeur Général :</strong> M. Guido Brasletti</p>
|
||||||
|
<p><strong>Effectif :</strong> 45 employés</p>
|
||||||
|
<p><strong>RCS :</strong> Bobigny 500 234 567</p>
|
||||||
|
<p><strong>Code APE / NAF :</strong> 6201Z – Développement de logiciels</p>
|
||||||
|
<p><strong>Année de création :</strong> 2007</p>
|
||||||
|
<p><strong>Spécialité :</strong> Technologies open source</p>
|
||||||
|
<p><strong>Téléphone :</strong> 01 35 52 40 49</p>
|
||||||
|
<p className="pt-2">
|
||||||
|
L'agence Furious Ducks est responsable de la conception technique du site, de
|
||||||
|
l'API, de la webApp et de l'infrastructure de déploiement. Cependant, elle n'est
|
||||||
|
pas responsable des contenus éditoriaux publiés par la société Thé Tip Top.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Article 3 – Hébergement',
|
title: 'Article 3 – Hébergeur du site',
|
||||||
content: <p className="text-gray-700 text-sm sm:text-base">Le site est hébergé par HexaCloud Hostinger.</p>,
|
content: (
|
||||||
|
<div className="text-gray-700 space-y-2 text-sm sm:text-base">
|
||||||
|
<p><strong>Raison sociale :</strong> Vercel Inc.</p>
|
||||||
|
<p><strong>Adresse :</strong> 440 N Barranca Avenue #4133, Covina, CA 91723, États-Unis</p>
|
||||||
|
<p><strong>Contact :</strong> privacy@vercel.com</p>
|
||||||
|
<p><strong>Site internet :</strong> https://www.vercel.com</p>
|
||||||
|
</div>
|
||||||
|
),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Article 4 – Propriété intellectuelle',
|
title: 'Article 4 – Propriété intellectuelle',
|
||||||
content: <p className="text-gray-700 leading-relaxed text-sm sm:text-base">L'ensemble des éléments présents sur le site appartient à Thé Tip Top ou à ses partenaires. Toute reproduction ou utilisation sans autorisation préalable est interdite.</p>,
|
content: (
|
||||||
|
<div className="text-gray-700 space-y-4 text-sm sm:text-base leading-relaxed">
|
||||||
|
<div>
|
||||||
|
<h3 className="font-semibold text-gray-800 mb-1">4.1 – Droits de la société Thé Tip Top</h3>
|
||||||
|
<p>
|
||||||
|
L'ensemble des éléments constituant le présent site internet (textes, graphiques,
|
||||||
|
logiciels, photographies, images, sons, vidéos, noms, logos, marques, créations et
|
||||||
|
œuvres protégeables) est la propriété exclusive de la société Thé Tip Top ou de ses
|
||||||
|
partenaires, et est protégé par les lois françaises et internationales relatives à
|
||||||
|
la propriété intellectuelle.
|
||||||
|
</p>
|
||||||
|
<p className="mt-2">
|
||||||
|
La marque « Thé Tip Top », ses logos, son identité visuelle refondue dans le cadre
|
||||||
|
du présent projet et ses mélanges signatures sont des éléments protégés. Toute
|
||||||
|
utilisation non autorisée constitue une contrefaçon sanctionnée par les articles
|
||||||
|
L.713-1 et suivants du Code de la propriété intellectuelle.
|
||||||
|
</p>
|
||||||
|
<p className="mt-2">
|
||||||
|
Toute reproduction, représentation, modification, publication ou adaptation de
|
||||||
|
tout ou partie des éléments du Site, quel que soit le moyen ou le procédé utilisé,
|
||||||
|
est strictement interdite sans autorisation écrite préalable de la société Thé Tip
|
||||||
|
Top, sous peine de poursuites judiciaires.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3 className="font-semibold text-gray-800 mb-1">4.2 – Droits de l'agence Furious Ducks</h3>
|
||||||
|
<p>
|
||||||
|
Les développements techniques réalisés par l'agence Furious Ducks (API, webApp,
|
||||||
|
infrastructure de déploiement, workflow CI/CD) font l'objet de droits distincts,
|
||||||
|
définis contractuellement dans le contrat de prestation signé entre les parties.
|
||||||
|
L'agence Furious Ducks cède à la société Thé Tip Top les droits d'exploitation
|
||||||
|
nécessaires à l'utilisation du site dans les conditions prévues au contrat, sans
|
||||||
|
que cela n'implique un transfert de propriété des outils et technologies
|
||||||
|
propriétaires de l'agence.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3 className="font-semibold text-gray-800 mb-1">4.3 – Contenu soumis par les utilisateurs</h3>
|
||||||
|
<p>
|
||||||
|
L'utilisateur garantit qu'il dispose de tous les droits nécessaires sur les
|
||||||
|
informations qu'il communique sur le Site. Il accorde à la société Thé Tip Top
|
||||||
|
une licence non exclusive d'utilisation de ces données dans le seul cadre de la
|
||||||
|
fourniture des services du jeu-concours.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Article 5 – Cookies',
|
title: 'Article 5 – Cookies et traceurs',
|
||||||
content: <p className="text-gray-700 leading-relaxed text-sm sm:text-base">Le site peut utiliser des cookies nécessaires à son fonctionnement ainsi que des cookies d'analyse. L'utilisateur peut gérer ses préférences à tout moment.</p>,
|
content: (
|
||||||
|
<div className="text-gray-700 space-y-3 text-sm sm:text-base leading-relaxed">
|
||||||
|
<p>
|
||||||
|
Le site est susceptible d'utiliser des cookies et traceurs afin d'améliorer
|
||||||
|
l'expérience utilisateur, d'analyser le trafic et de permettre les fonctionnalités
|
||||||
|
d'authentification via Google.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Lors de votre première visite, un bandeau de consentement conforme au RGPD et aux
|
||||||
|
recommandations de la CNIL (Commission Nationale de l'Informatique et des Libertés)
|
||||||
|
vous informe de la présence de cookies et recueille votre accord. Vous pouvez à
|
||||||
|
tout moment modifier vos préférences via le gestionnaire de cookies disponible sur
|
||||||
|
le Site ou les paramètres de votre navigateur.
|
||||||
|
</p>
|
||||||
|
<p>Les cookies utilisés sont les suivants :</p>
|
||||||
|
<ul className="list-disc list-inside space-y-2">
|
||||||
|
<li>
|
||||||
|
<strong>Cookies de session :</strong> nécessaires au bon fonctionnement du site
|
||||||
|
(authentification, suivi de participation, sécurité). Non soumis à consentement.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<strong>Cookies analytiques (Google Analytics 4) :</strong> permettent de mesurer
|
||||||
|
l'audience du Site (visiteurs uniques, sources de trafic, comportements de
|
||||||
|
navigation, tunnel de conversion inscription → participation → réclamation de
|
||||||
|
lot). Soumis à consentement.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<strong>Cookies publicitaires et sociaux (Meta Business Suite – Instagram/Facebook) :</strong>{' '}
|
||||||
|
utilisés dans le cadre des campagnes Meta Ads et du suivi des performances
|
||||||
|
sociales. Soumis à consentement.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<strong>Cookies Google :</strong> liés aux fonctionnalités d'authentification via
|
||||||
|
compte Google. Soumis aux politiques de confidentialité respectives de ces
|
||||||
|
plateformes.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Article 6 – Responsabilité',
|
title: 'Article 6 – Responsabilité',
|
||||||
content: <p className="text-gray-700 leading-relaxed text-sm sm:text-base">Thé Tip Top s'efforce de fournir des informations exactes. Toutefois, la société ne peut être tenue responsable des erreurs, interruptions de service ou dommages liés à l'utilisation d'Internet.</p>,
|
content: (
|
||||||
|
<div className="text-gray-700 space-y-3 text-sm sm:text-base leading-relaxed">
|
||||||
|
<p>
|
||||||
|
La société Thé Tip Top s'efforce d'assurer l'exactitude et la mise à jour des
|
||||||
|
informations diffusées sur le Site. Toutefois, elle ne peut garantir l'exactitude,
|
||||||
|
la complétude ou l'actualité de l'ensemble des informations publiées et décline
|
||||||
|
toute responsabilité pour :
|
||||||
|
</p>
|
||||||
|
<ul className="list-disc list-inside space-y-2">
|
||||||
|
<li>Toute inexactitude ou omission portant sur des informations disponibles sur le Site</li>
|
||||||
|
<li>Tout dommage résultant d'une intrusion frauduleuse d'un tiers ayant entraîné une modification des informations</li>
|
||||||
|
<li>Tout dommage lié à l'utilisation d'Internet (rupture de service, virus, intrusion extérieure)</li>
|
||||||
|
<li>Tout dysfonctionnement lié à l'infrastructure technique gérée par l'agence Furious Ducks ou son hébergeur</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Article 7 – Droit applicable',
|
title: 'Article 7 – Droit applicable',
|
||||||
content: <p className="text-gray-700 text-sm sm:text-base">Le présent site est soumis au droit français. Tout litige relève des juridictions françaises compétentes.</p>,
|
content: (
|
||||||
|
<p className="text-gray-700 text-sm sm:text-base">
|
||||||
|
Le présent Site et ses contenus sont soumis au droit français. En cas de litige
|
||||||
|
relatif à l'interprétation ou à l'exécution des présentes mentions légales, et à
|
||||||
|
défaut de résolution amiable, les tribunaux français seront seuls compétents.
|
||||||
|
</p>
|
||||||
|
),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Article 8 – Engagement responsable',
|
title: 'Article 8 – Accessibilité',
|
||||||
content: <p className="text-gray-700 leading-relaxed text-sm sm:text-base">Thé Tip Top s'engage dans une démarche responsable : optimisation des ressources numériques, limitation de la collecte des données personnelles et utilisation de technologies adaptées.</p>,
|
content: (
|
||||||
|
<p className="text-gray-700 leading-relaxed text-sm sm:text-base">
|
||||||
|
Le présent site internet a été développé en conformité avec les normes
|
||||||
|
d'accessibilité internationales WCAG 2.1 niveau AA et le Référentiel Général
|
||||||
|
d'Amélioration de l'Accessibilité (RGAA 4.1) afin de garantir une accessibilité
|
||||||
|
maximale aux utilisateurs en situation de handicap. Une déclaration d'accessibilité
|
||||||
|
complète est disponible sur la page{' '}
|
||||||
|
<a href="/accessibilite" className="text-[#006B6B] hover:underline font-medium">
|
||||||
|
Accessibilité
|
||||||
|
</a>.
|
||||||
|
</p>
|
||||||
|
),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Article 9 – Engagement RSE et éco-responsabilité',
|
||||||
|
content: (
|
||||||
|
<div className="text-gray-700 space-y-3 text-sm sm:text-base leading-relaxed">
|
||||||
|
<p>
|
||||||
|
La société Thé Tip Top et l'agence Furious Ducks s'engagent dans une démarche de
|
||||||
|
Responsabilité Sociale et Environnementale (RSE) pour la conception et
|
||||||
|
l'exploitation du site du jeu-concours 100% Gagnant. Cet engagement comprend
|
||||||
|
notamment :
|
||||||
|
</p>
|
||||||
|
<ul className="list-disc list-inside space-y-2">
|
||||||
|
<li>L'utilisation de technologies et d'infrastructures respectueuses de l'environnement</li>
|
||||||
|
<li>L'optimisation de la consommation d'énergie et de l'empreinte carbone du site</li>
|
||||||
|
<li>L'hébergement auprès de fournisseurs certifiés pour leurs pratiques durables</li>
|
||||||
|
<li>La limitation de la collecte de données personnelles aux seules données nécessaires</li>
|
||||||
|
<li>L'utilisation de technologies open source réduisant les dépendances propriétaires</li>
|
||||||
|
<li>La sensibilisation des utilisateurs aux bonnes pratiques numériques</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
Toute question relative à ces engagements peut être adressée à : dpo@thetiptop.fr
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
),
|
||||||
},
|
},
|
||||||
].map((article) => (
|
].map((article) => (
|
||||||
<section key={article.title} className="mb-6 sm:mb-8">
|
<section key={article.title} className="mb-6 sm:mb-8">
|
||||||
<h2 className="text-lg sm:text-xl md:text-2xl font-bold text-green-700 mb-2 sm:mb-3">
|
<h2 className="text-lg sm:text-xl md:text-2xl font-bold text-[#006B6B] mb-2 sm:mb-3">
|
||||||
{article.title}
|
{article.title}
|
||||||
</h2>
|
</h2>
|
||||||
{article.content}
|
{article.content}
|
||||||
|
|||||||
@@ -6,12 +6,12 @@ export default function ReglesJeu() {
|
|||||||
const isLoggedIn = !!user
|
const isLoggedIn = !!user
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="bg-green-50 min-h-screen">
|
<div className="bg-gray-50 min-h-screen">
|
||||||
|
|
||||||
{/* Hero */}
|
{/* Hero */}
|
||||||
<section className="max-w-7xl mx-auto px-4 sm:px-6 py-12 sm:py-16 md:py-20">
|
<section className="max-w-7xl mx-auto px-4 sm:px-6 py-12 sm:py-16 md:py-20">
|
||||||
<div className="text-center max-w-3xl mx-auto">
|
<div className="text-center max-w-3xl mx-auto">
|
||||||
<h1 className="text-3xl sm:text-4xl md:text-5xl font-bold text-green-800 mb-4 sm:mb-6">
|
<h1 className="text-3xl sm:text-4xl md:text-5xl font-bold text-[#006B6B] mb-4 sm:mb-6">
|
||||||
Règles du jeu
|
Règles du jeu
|
||||||
</h1>
|
</h1>
|
||||||
<p className="text-base sm:text-xl text-gray-600">
|
<p className="text-base sm:text-xl text-gray-600">
|
||||||
@@ -23,7 +23,7 @@ export default function ReglesJeu() {
|
|||||||
|
|
||||||
{/* Comment participer */}
|
{/* Comment participer */}
|
||||||
<section className="max-w-6xl mx-auto px-4 sm:px-6 pb-12 sm:pb-16">
|
<section className="max-w-6xl mx-auto px-4 sm:px-6 pb-12 sm:pb-16">
|
||||||
<h2 className="text-2xl sm:text-3xl font-bold text-green-800 text-center mb-8 sm:mb-10">
|
<h2 className="text-2xl sm:text-3xl font-bold text-[#006B6B] text-center mb-8 sm:mb-10">
|
||||||
Comment participer ?
|
Comment participer ?
|
||||||
</h2>
|
</h2>
|
||||||
<div className="grid sm:grid-cols-2 md:grid-cols-3 gap-4 sm:gap-6">
|
<div className="grid sm:grid-cols-2 md:grid-cols-3 gap-4 sm:gap-6">
|
||||||
@@ -45,7 +45,7 @@ export default function ReglesJeu() {
|
|||||||
},
|
},
|
||||||
].map((step) => (
|
].map((step) => (
|
||||||
<div key={step.num} className="bg-white rounded-2xl shadow p-6 sm:p-8 text-center">
|
<div key={step.num} className="bg-white rounded-2xl shadow p-6 sm:p-8 text-center">
|
||||||
<div className="text-3xl sm:text-4xl font-bold text-green-700 mb-3 sm:mb-4">{step.num}</div>
|
<div className="text-3xl sm:text-4xl font-bold text-[#006B6B] mb-3 sm:mb-4">{step.num}</div>
|
||||||
<h3 className="text-lg sm:text-xl font-semibold mb-2 sm:mb-3">{step.title}</h3>
|
<h3 className="text-lg sm:text-xl font-semibold mb-2 sm:mb-3">{step.title}</h3>
|
||||||
<p className="text-gray-600 text-sm sm:text-base">{step.text}</p>
|
<p className="text-gray-600 text-sm sm:text-base">{step.text}</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -56,7 +56,7 @@ export default function ReglesJeu() {
|
|||||||
{/* Lots */}
|
{/* Lots */}
|
||||||
<section className="max-w-5xl mx-auto px-4 sm:px-6 pb-12 sm:pb-16">
|
<section className="max-w-5xl mx-auto px-4 sm:px-6 pb-12 sm:pb-16">
|
||||||
<div className="bg-white rounded-2xl shadow p-6 sm:p-10">
|
<div className="bg-white rounded-2xl shadow p-6 sm:p-10">
|
||||||
<h2 className="text-2xl sm:text-3xl font-bold text-green-800 mb-4 sm:mb-6 text-center">
|
<h2 className="text-2xl sm:text-3xl font-bold text-[#006B6B] mb-4 sm:mb-6 text-center">
|
||||||
Que pouvez-vous gagner ?
|
Que pouvez-vous gagner ?
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-gray-600 text-base sm:text-lg text-center leading-relaxed mb-6 sm:mb-8">
|
<p className="text-gray-600 text-base sm:text-lg text-center leading-relaxed mb-6 sm:mb-8">
|
||||||
@@ -64,8 +64,8 @@ export default function ReglesJeu() {
|
|||||||
d'un infuseur à thé à un coffret découverte d'une valeur de 69€,
|
d'un infuseur à thé à un coffret découverte d'une valeur de 69€,
|
||||||
en passant par des thés détox et des thés signatures.
|
en passant par des thés détox et des thés signatures.
|
||||||
</p>
|
</p>
|
||||||
<div className="bg-green-50 rounded-xl p-4 sm:p-6 text-center">
|
<div className="bg-gray-100 rounded-xl p-4 sm:p-6 text-center">
|
||||||
<h3 className="text-xl sm:text-2xl font-bold text-green-700 mb-2">Grand gagnant</h3>
|
<h3 className="text-xl sm:text-2xl font-bold text-[#006B6B] mb-2">Grand gagnant</h3>
|
||||||
<p className="text-gray-700 text-sm sm:text-base">
|
<p className="text-gray-700 text-sm sm:text-base">
|
||||||
Le participant tiré au sort remportera une année de thé d'une valeur de 360€ !
|
Le participant tiré au sort remportera une année de thé d'une valeur de 360€ !
|
||||||
</p>
|
</p>
|
||||||
@@ -75,7 +75,7 @@ export default function ReglesJeu() {
|
|||||||
|
|
||||||
{/* CTA */}
|
{/* CTA */}
|
||||||
<section className="max-w-5xl mx-auto px-4 sm:px-6 pb-12 sm:pb-20">
|
<section className="max-w-5xl mx-auto px-4 sm:px-6 pb-12 sm:pb-20">
|
||||||
<div className="bg-green-700 rounded-2xl p-6 sm:p-10 text-center text-white">
|
<div className="bg-[#006B6B] rounded-2xl p-6 sm:p-10 text-center text-white">
|
||||||
<h2 className="text-2xl sm:text-3xl font-bold mb-3 sm:mb-4">
|
<h2 className="text-2xl sm:text-3xl font-bold mb-3 sm:mb-4">
|
||||||
Ne manquez pas votre chance !
|
Ne manquez pas votre chance !
|
||||||
</h2>
|
</h2>
|
||||||
@@ -86,14 +86,14 @@ export default function ReglesJeu() {
|
|||||||
{!isLoggedIn && (
|
{!isLoggedIn && (
|
||||||
<Link
|
<Link
|
||||||
to="/inscription"
|
to="/inscription"
|
||||||
className="bg-white text-green-700 px-6 sm:px-8 py-3 rounded-xl font-semibold hover:bg-green-50 text-sm sm:text-base"
|
className="bg-white text-[#006B6B] px-6 sm:px-8 py-3 rounded-xl font-semibold hover:bg-[#006B6B] hover:text-white text-sm sm:text-base"
|
||||||
>
|
>
|
||||||
Inscrivez-vous
|
Inscrivez-vous
|
||||||
</Link>
|
</Link>
|
||||||
)}
|
)}
|
||||||
<Link
|
<Link
|
||||||
to="/saisir-code-unique"
|
to="/saisir-code-unique"
|
||||||
className="border border-white px-6 sm:px-8 py-3 rounded-xl font-semibold hover:bg-green-800 text-sm sm:text-base"
|
className="border border-white px-6 sm:px-8 py-3 rounded-xl font-semibold hover:bg-[#006B6B] hover:text-white text-sm sm:text-base"
|
||||||
>
|
>
|
||||||
Entrer mon code de ticket
|
Entrer mon code de ticket
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@@ -36,23 +36,25 @@ const sections = [
|
|||||||
title: 'Informations légales',
|
title: 'Informations légales',
|
||||||
links: [
|
links: [
|
||||||
{ label: 'Mentions légales', to: '/mentions-legales', desc: 'Informations légales du site' },
|
{ label: 'Mentions légales', to: '/mentions-legales', desc: 'Informations légales du site' },
|
||||||
|
{ label: 'CGU', to: '/cgu', desc: "Conditions générales d'utilisation" },
|
||||||
{ label: 'Politique de confidentialité', to: '/confidentialite', desc: 'Gestion des données personnelles' },
|
{ label: 'Politique de confidentialité', to: '/confidentialite', desc: 'Gestion des données personnelles' },
|
||||||
|
{ label: 'Accessibilité', to: '/accessibilite', desc: 'Déclaration de conformité RGAA' },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
export default function Sitemap() {
|
export default function Sitemap() {
|
||||||
const { user } = useAuth()
|
const { user } = useAuth()
|
||||||
const isAdmin = user?.role === 'admin'
|
const isAdmin = user?.role === 'ADMIN'
|
||||||
const visibleSections = sections.filter(
|
const visibleSections = sections.filter(
|
||||||
(section) => section.title !== 'Espaces professionnels' || isAdmin
|
(section) => section.title !== 'Espaces professionnels' || isAdmin
|
||||||
)
|
)
|
||||||
return (
|
return (
|
||||||
<main className="bg-green-50 min-h-screen px-4 sm:px-6 py-10 sm:py-16">
|
<main className="bg-gray-50 min-h-screen px-4 sm:px-6 py-10 sm:py-16">
|
||||||
<div className="max-w-4xl mx-auto">
|
<div className="max-w-4xl mx-auto">
|
||||||
|
|
||||||
<div className="mb-8 sm:mb-10">
|
<div className="mb-8 sm:mb-10">
|
||||||
<h1 className="text-2xl sm:text-3xl md:text-4xl font-bold text-green-800 mb-2">
|
<h1 className="text-2xl sm:text-3xl md:text-4xl font-bold text-[#006B6B] mb-2">
|
||||||
Plan du site
|
Plan du site
|
||||||
</h1>
|
</h1>
|
||||||
<p className="text-gray-500 text-sm sm:text-base">
|
<p className="text-gray-500 text-sm sm:text-base">
|
||||||
@@ -63,7 +65,7 @@ export default function Sitemap() {
|
|||||||
<div className="grid sm:grid-cols-2 gap-6">
|
<div className="grid sm:grid-cols-2 gap-6">
|
||||||
{visibleSections.map((section) => (
|
{visibleSections.map((section) => (
|
||||||
<div key={section.title} className="bg-white rounded-2xl shadow p-5 sm:p-6">
|
<div key={section.title} className="bg-white rounded-2xl shadow p-5 sm:p-6">
|
||||||
<h2 className="text-base sm:text-lg font-bold text-green-700 mb-4 pb-2 border-b border-gray-100">
|
<h2 className="text-base sm:text-lg font-bold text-[#006B6B] mb-4 pb-2 border-b border-gray-100">
|
||||||
{section.title}
|
{section.title}
|
||||||
</h2>
|
</h2>
|
||||||
<ul className="space-y-3">
|
<ul className="space-y-3">
|
||||||
|
|||||||
Reference in New Issue
Block a user