changement
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
import { useMemo } from 'react'
|
||||
import { Link } from 'react-router-dom'
|
||||
import usePageMeta from '../hooks/usePageMeta'
|
||||
import useGameDates from '../hooks/useGameDates'
|
||||
import { formatDay, formatRange } from '../utils/gameDates'
|
||||
import bannerImg from '../assets/img/banner-accueil.webp'
|
||||
|
||||
const gains = [
|
||||
@@ -38,10 +40,11 @@ function createTeaParticles(count) {
|
||||
}))
|
||||
}
|
||||
|
||||
const faqs = [
|
||||
// Les dates viennent du tableau de bord admin (voir useGameDates).
|
||||
const buildFaqs = ({ start, lastPlayDay, lastClaimDay }) => [
|
||||
{
|
||||
question: 'Comment obtenir un code ?',
|
||||
answer: "Achetez pour plus de 49 € dans notre boutique Thé Tip Top de Nice, entre le 2 et le 31 octobre 2026 : un code unique à 10 caractères figure sur votre ticket de caisse ou votre facture.",
|
||||
answer: `Achetez pour plus de 49 € dans notre boutique Thé Tip Top de Nice, du ${formatRange(start, lastPlayDay)} : un code unique à 10 caractères figure sur votre ticket de caisse ou votre facture.`,
|
||||
},
|
||||
{
|
||||
question: 'Quels sont les lots à gagner ?',
|
||||
@@ -62,7 +65,7 @@ const faqs = [
|
||||
},
|
||||
{
|
||||
question: 'Jusqu\'à quand puis-je jouer ?',
|
||||
answer: 'La saisie des codes est ouverte du 2 au 31 octobre 2026 inclus. Les lots sont ensuite à retirer jusqu\'au 30 novembre 2026.',
|
||||
answer: `La saisie des codes est ouverte du ${formatRange(start, lastPlayDay)} inclus. Les lots sont ensuite à retirer jusqu'au ${formatDay(lastClaimDay)}.`,
|
||||
},
|
||||
{
|
||||
question: 'Que faire si mon code n\'est pas reconnu ?',
|
||||
@@ -70,11 +73,11 @@ const faqs = [
|
||||
},
|
||||
{
|
||||
question: 'Où retirer mon lot ?',
|
||||
answer: 'Dans notre boutique de Nice, sur présentation de votre compte utilisateur validé et de la confirmation de gain affichée dans votre espace « Mes gains », jusqu\'au 30 novembre 2026.',
|
||||
answer: `Dans notre boutique de Nice, sur présentation de votre compte utilisateur validé et de la confirmation de gain affichée dans votre espace « Mes gains », jusqu'au ${formatDay(lastClaimDay)}.`,
|
||||
},
|
||||
]
|
||||
|
||||
const faqJsonLd = {
|
||||
const buildFaqJsonLd = (faqs) => ({
|
||||
'@context': 'https://schema.org',
|
||||
'@type': 'FAQPage',
|
||||
mainEntity: faqs.map((faq) => ({
|
||||
@@ -85,12 +88,18 @@ const faqJsonLd = {
|
||||
text: faq.plainAnswer || faq.answer,
|
||||
},
|
||||
})),
|
||||
}
|
||||
})
|
||||
|
||||
export default function Accueil() {
|
||||
const gameDates = useGameDates()
|
||||
const period = formatRange(gameDates.start, gameDates.lastPlayDay)
|
||||
const faqs = useMemo(() => buildFaqs(gameDates), [gameDates])
|
||||
const faqJsonLd = useMemo(() => buildFaqJsonLd(faqs), [faqs])
|
||||
const bannerAlt = `Jeu-concours 100 % Gagnant Thé Tip Top, du ${period} : tentez de gagner un an de thé d'une valeur de 360 € pour l'ouverture de notre 10e boutique à Nice.`
|
||||
|
||||
usePageMeta({
|
||||
title: 'Jeu-concours 100 % Gagnant du 2 au 31 octobre | Thé Tip Top',
|
||||
description: "Du 2 au 31 octobre, tout ticket de plus de 49 € de notre boutique de Nice porte un code 100 % gagnant. Saisissez le vôtre et repartez avec votre lot.",
|
||||
title: `Jeu-concours 100 % Gagnant du ${formatRange(gameDates.start, gameDates.lastPlayDay, { withYear: false })} | Thé Tip Top`,
|
||||
description: `Du ${formatRange(gameDates.start, gameDates.lastPlayDay, { withYear: false })}, tout ticket de plus de 49 € de notre boutique de Nice porte un code 100 % gagnant. Saisissez le vôtre et repartez avec votre lot.`,
|
||||
})
|
||||
|
||||
const teaParticles = useMemo(() => createTeaParticles(30), [])
|
||||
@@ -130,7 +139,7 @@ export default function Accueil() {
|
||||
|
||||
<div className="static lg:absolute lg:left-0 lg:top-10 max-w-full lg:max-w-md mb-6 lg:mb-0">
|
||||
<p className="inline-block text-sm sm:text-base font-bold uppercase tracking-widest text-amber-300 border border-white/70 rounded-lg px-3.5 py-2 mb-3">
|
||||
Du 02 au 31 octobre 2026
|
||||
Du {formatRange(gameDates.start, gameDates.lastPlayDay, { padDay: true })}
|
||||
</p>
|
||||
<h1 className="text-3xl sm:text-5xl lg:text-6xl font-extrabold text-white leading-[1.05]">
|
||||
Jeu-concours{' '}
|
||||
@@ -142,13 +151,13 @@ export default function Accueil() {
|
||||
<div className="relative aspect-[16/10] sm:aspect-[21/9] overflow-hidden lg:hidden">
|
||||
<img
|
||||
src={bannerImg}
|
||||
alt="Jeu-concours 100 % Gagnant Thé Tip Top, du 2 au 31 octobre 2026 : tentez de gagner un an de thé d'une valeur de 360 € pour l'ouverture de notre 10e boutique à Nice."
|
||||
alt={bannerAlt}
|
||||
className="absolute inset-y-0 right-0 w-[210%] sm:w-[130%] max-w-none h-full object-cover object-right animate-banner-image"
|
||||
/>
|
||||
</div>
|
||||
<img
|
||||
src={bannerImg}
|
||||
alt="Jeu-concours 100 % Gagnant Thé Tip Top, du 2 au 31 octobre 2026 : tentez de gagner un an de thé d'une valeur de 360 € pour l'ouverture de notre 10e boutique à Nice."
|
||||
alt={bannerAlt}
|
||||
width={2048}
|
||||
height={1152}
|
||||
className="hidden lg:block lg:absolute lg:right-[-2%] lg:top-1/2 lg:-translate-y-1/2 lg:h-[145%] xl:h-[160%] lg:w-auto lg:max-w-none object-contain drop-shadow-2xl animate-banner-image"
|
||||
|
||||
Reference in New Issue
Block a user