Compare commits
2 Commits
version_1_
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 8a7bcfb7eb | |||
|
|
fb53402ab2 |
@@ -1,231 +1,38 @@
|
||||
import AboutMediaOverlay from '@/components/sections/about/AboutMediaOverlay';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqTwoColumn from '@/components/sections/faq/FaqTwoColumn';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import HeroBillboardCarousel from '@/components/sections/hero/HeroBillboardCarousel';
|
||||
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
import TestimonialQuoteCards from '@/components/sections/testimonial/TestimonialQuoteCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
// AUTO-GENERATED shell by per-section-migrate.
|
||||
// Section bodies live in ./<PageBase>/sections/<X>.tsx. Edit the section
|
||||
// files directly. Non-block content (wrappers, non-inlinable sections) is
|
||||
// preserved inline; extracted section blocks become <XSection/> refs.
|
||||
|
||||
export default function HomePage() {
|
||||
import React from 'react';
|
||||
import HeroSection from './HomePage/sections/Hero';
|
||||
import AboutSection from './HomePage/sections/About';
|
||||
import MenuSection from './HomePage/sections/Menu';
|
||||
import MetricsSection from './HomePage/sections/Metrics';
|
||||
import TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
import SocialSection from './HomePage/sections/Social';
|
||||
import FaqSection from './HomePage/sections/Faq';
|
||||
import ContactSection from './HomePage/sections/Contact';
|
||||
|
||||
|
||||
import CertificationsSection from './HomePage/sections/Certifications';export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroBillboardCarousel
|
||||
tag="Gelato Artisanal"
|
||||
title="Le Goût de l'Italie à Dakar"
|
||||
description="Découvrez l'expérience authentique du vrai gelato italien, préparé chaque jour avec des ingrédients frais et naturels."
|
||||
primaryButton={{
|
||||
text: "Découvrir le Menu",
|
||||
href: "#menu",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Nous Contacter",
|
||||
href: "#contact",
|
||||
}}
|
||||
items={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-cooking-pizza-kitchen_158595-2120.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/ice-lollies-with-blueberries-cherries_23-2148216294.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-food-concept_23-2148578404.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/colored-cloths-arrangement-with-natural-pigments_23-2148734437.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/pistachio-ice-cream-with-pistachios_23-2151988819.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/vertical-shot-glass-delicious-ice-cream-with-chocolate-syrup-whipped-cream_181624-57869.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
<CertificationsSection />
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutMediaOverlay
|
||||
tag="Notre Histoire"
|
||||
title="La Passion du Gelato"
|
||||
description="Chez Taq Taq, nous sélectionnons les meilleurs ingrédients pour vous offrir une texture onctueuse et des saveurs inoubliables. Chaque recette est un hommage à la tradition italienne, adaptée aux produits locaux du Sénégal."
|
||||
imageSrc="http://img.b2bpic.net/free-photo/crop-hand-with-spoon-sugar_23-2147758390.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<AboutSection />
|
||||
|
||||
<div id="menu" data-section="menu">
|
||||
<SectionErrorBoundary name="menu">
|
||||
<FeaturesImageBento
|
||||
tag="Menu Signature"
|
||||
title="Nos Parfums Favoris"
|
||||
description="Une sélection de glaces artisanales fabriquées avec amour."
|
||||
items={[
|
||||
{
|
||||
title: "Pistache",
|
||||
description: "Pistaches de Sicile torréfiées.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-green-ice-cream-plate_52683-92471.jpg",
|
||||
},
|
||||
{
|
||||
title: "Chocolat Noir",
|
||||
description: "Cacao intense 70%.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-bowl-with-chocolate-flavored-ice-cream_23-2148422052.jpg",
|
||||
},
|
||||
{
|
||||
title: "Fraise Fraîche",
|
||||
description: "Fraises locales de saison.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-ice-creams-glass_23-2148507965.jpg",
|
||||
},
|
||||
{
|
||||
title: "Vanille Bourbon",
|
||||
description: "Gousses de vanille de Madagascar.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-ice-cream-with-nuts_23-2148507941.jpg",
|
||||
},
|
||||
{
|
||||
title: "Caramel au Beurre Salé",
|
||||
description: "Une pointe de sel marin.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-little-creamy-cake-with-chocolate-cookies-dark-surface-biscuit-cake-sweet-pie-sugar-cookie_140725-118183.jpg",
|
||||
},
|
||||
{
|
||||
title: "Noisette",
|
||||
description: "Noisettes croquantes.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/chocolate-ice-cream-texture_23-2149450689.jpg",
|
||||
},
|
||||
{
|
||||
title: "Citron Sorbet",
|
||||
description: "Rafraîchissant et acidulé.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-granita-dessert-with-various-ingredients_23-2149400149.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<MenuSection />
|
||||
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<MetricsMediaCards
|
||||
tag="La Qualité avant tout"
|
||||
title="Nos Engagements"
|
||||
description="La promesse d'une qualité exceptionnelle à chaque bouchée."
|
||||
metrics={[
|
||||
{
|
||||
value: "100%",
|
||||
title: "Ingrédients naturels",
|
||||
description: "Sans colorants ni conservateurs artificiels.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/ripe-fruits-veggies-homegrown-sold-farmers-market-stand_482257-77543.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<MetricsSection />
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialQuoteCards
|
||||
tag="Nos clients"
|
||||
title="Ce qu'ils pensent de nous"
|
||||
description="Les retours de nos fidèles amateurs de glaces à Dakar."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Fatou Ndiaye",
|
||||
role: "Passionnée",
|
||||
quote: "La meilleure glace de Dakar, sans aucune hésitation !",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/laugh-is-way-happiness_329181-2893.jpg",
|
||||
},
|
||||
{
|
||||
name: "Marc L.",
|
||||
role: "Habitué",
|
||||
quote: "Une texture incroyablement onctueuse, authentique et savoureuse.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-people-with-paper-wrapped-sandwiches_23-2151309966.jpg",
|
||||
},
|
||||
{
|
||||
name: "Aminata S.",
|
||||
role: "Client fidéle",
|
||||
quote: "L'endroit idéal pour une pause sucrée après une longue journée.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-with-two-raised-fingers_1187-1103.jpg",
|
||||
},
|
||||
{
|
||||
name: "Jean B.",
|
||||
role: "Gourmand",
|
||||
quote: "Le parfum pistache est une pure merveille. Je reviens chaque semaine.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/positive-woman-denim-jacket-undershirt-looks-sun-bright-backdrop-brunette-girl-light-pants-sunglasses-poses-yellow-background_197531-28011.jpg",
|
||||
},
|
||||
{
|
||||
name: "Sophie D.",
|
||||
role: "Gourmande",
|
||||
quote: "L'accueil est chaleureux et la glace est divine. Bravo Taq Taq !",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/outdoor-street-portrait-happy-woman-eating-ice-cream_197531-22772.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TestimonialsSection />
|
||||
|
||||
<div id="social" data-section="social">
|
||||
<SectionErrorBoundary name="social">
|
||||
<SocialProofMarquee
|
||||
tag="Nos partenaires"
|
||||
title="Ils nous font confiance"
|
||||
description="Nous collaborons avec les meilleurs services de Dakar."
|
||||
names={[
|
||||
"Glovo",
|
||||
"Dakar E-commerce",
|
||||
"Local Farms Coop",
|
||||
"Artisan Alliance",
|
||||
"Qualité Dakar",
|
||||
"Le Meilleur de Dakar",
|
||||
"EcoFriendly Label",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<SocialSection />
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqTwoColumn
|
||||
tag="FAQ"
|
||||
title="Des questions ?"
|
||||
description="Retrouvez les réponses aux questions les plus fréquentes."
|
||||
items={[
|
||||
{
|
||||
question: "Quels sont vos horaires ?",
|
||||
answer: "Nous sommes ouverts tous les jours de 10h à minuit.",
|
||||
},
|
||||
{
|
||||
question: "Proposez-vous la livraison ?",
|
||||
answer: "Oui, nous livrons via nos partenaires habituels sur toute la zone de Dakar.",
|
||||
},
|
||||
{
|
||||
question: "Les glaces sont-elles artisanales ?",
|
||||
answer: "Absolument, chaque bac est préparé manuellement chaque matin.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FaqSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Nous trouver"
|
||||
text="Venez goûter à la magie de Taq Taq MammaMia Gelato dès aujourd'hui !"
|
||||
primaryButton={{
|
||||
text: "Itinéraire (Google Maps)",
|
||||
href: "https://maps.google.com",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Appeler : 33 873 66 66",
|
||||
href: "tel:338736666",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
21
src/pages/HomePage/sections/About.tsx
Normal file
21
src/pages/HomePage/sections/About.tsx
Normal file
@@ -0,0 +1,21 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "about" section.
|
||||
|
||||
import React from 'react';
|
||||
import AboutMediaOverlay from '@/components/sections/about/AboutMediaOverlay';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function AboutSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutMediaOverlay
|
||||
tag="Notre Histoire"
|
||||
title="La Passion du Gelato"
|
||||
description="Chez Taq Taq, nous sélectionnons les meilleurs ingrédients pour vous offrir une texture onctueuse et des saveurs inoubliables. Chaque recette est un hommage à la tradition italienne, adaptée aux produits locaux du Sénégal."
|
||||
imageSrc="http://img.b2bpic.net/free-photo/crop-hand-with-spoon-sugar_23-2147758390.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
63
src/pages/HomePage/sections/Certifications.tsx
Normal file
63
src/pages/HomePage/sections/Certifications.tsx
Normal file
@@ -0,0 +1,63 @@
|
||||
import { Leaf, ShieldCheck, Award } from 'lucide-react';
|
||||
import ScrollReveal from '@/components/ui/ScrollReveal';
|
||||
import TextAnimation from '@/components/ui/TextAnimation';
|
||||
|
||||
export default function CertificationsSection() {
|
||||
const features = [
|
||||
{
|
||||
icon: Leaf,
|
||||
title: "Ingrédients Naturels",
|
||||
description: "Nos glaces sont préparées avec des ingrédients 100% naturels, sans colorants ni conservateurs artificiels."
|
||||
},
|
||||
{
|
||||
icon: ShieldCheck,
|
||||
title: "Hygiène & Sécurité",
|
||||
description: "Notre laboratoire de production respecte les normes d'hygiène les plus strictes pour garantir votre sécurité."
|
||||
},
|
||||
{
|
||||
icon: Award,
|
||||
title: "Qualité Premium",
|
||||
description: "Nous sélectionnons rigoureusement nos fournisseurs pour vous garantir des produits frais et de première qualité."
|
||||
}
|
||||
];
|
||||
|
||||
return (
|
||||
<section id="certifications" data-webild-section="certifications" className="py-24 bg-background">
|
||||
<div className="w-content-width mx-auto">
|
||||
<div className="text-center mb-16">
|
||||
<ScrollReveal variant="fade">
|
||||
<span className="inline-block py-1 px-3 rounded-full bg-primary-cta/10 text-primary-cta text-sm font-medium mb-4">
|
||||
Qualité & Sécurité
|
||||
</span>
|
||||
</ScrollReveal>
|
||||
<TextAnimation
|
||||
text="Nos Engagements & Certifications"
|
||||
variant="fade-blur"
|
||||
tag="h2"
|
||||
gradientText={false}
|
||||
className="text-4xl md:text-5xl font-bold text-foreground mb-6"
|
||||
/>
|
||||
<ScrollReveal variant="fade" delay={0.1}>
|
||||
<p className="text-lg text-accent max-w-2xl mx-auto">
|
||||
Nous nous engageons à vous offrir le meilleur gelato, préparé dans le strict respect des normes d'hygiène et de sécurité alimentaire. Nos ingrédients sont soigneusement sélectionnés pour garantir une qualité exceptionnelle.
|
||||
</p>
|
||||
</ScrollReveal>
|
||||
</div>
|
||||
|
||||
<div className="grid grid-cols-1 md:grid-cols-3 gap-8">
|
||||
{features.map((feature, index) => (
|
||||
<ScrollReveal variant="fade" key={index} delay={0.2 + index * 0.1}>
|
||||
<div className="card p-8 h-full flex flex-col items-center text-center">
|
||||
<div className="w-16 h-16 rounded-full bg-primary-cta/10 flex items-center justify-center mb-6 text-primary-cta">
|
||||
<feature.icon className="w-8 h-8" />
|
||||
</div>
|
||||
<h3 className="text-xl font-bold text-foreground mb-4">{feature.title}</h3>
|
||||
<p className="text-accent">{feature.description}</p>
|
||||
</div>
|
||||
</ScrollReveal>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
27
src/pages/HomePage/sections/Contact.tsx
Normal file
27
src/pages/HomePage/sections/Contact.tsx
Normal file
@@ -0,0 +1,27 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "contact" section.
|
||||
|
||||
import React from 'react';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ContactSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Nous trouver"
|
||||
text="Venez goûter à la magie de Taq Taq MammaMia Gelato dès aujourd'hui !"
|
||||
primaryButton={{
|
||||
text: "Itinéraire (Google Maps)",
|
||||
href: "https://maps.google.com",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Appeler : 33 873 66 66",
|
||||
href: "tel:338736666",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
34
src/pages/HomePage/sections/Faq.tsx
Normal file
34
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,34 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "faq" section.
|
||||
|
||||
import React from 'react';
|
||||
import FaqTwoColumn from '@/components/sections/faq/FaqTwoColumn';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FaqSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqTwoColumn
|
||||
tag="FAQ"
|
||||
title="Des questions ?"
|
||||
description="Retrouvez les réponses aux questions les plus fréquentes."
|
||||
items={[
|
||||
{
|
||||
question: "Quels sont vos horaires ?",
|
||||
answer: "Nous sommes ouverts tous les jours de 10h à minuit.",
|
||||
},
|
||||
{
|
||||
question: "Proposez-vous la livraison ?",
|
||||
answer: "Oui, nous livrons via nos partenaires habituels sur toute la zone de Dakar.",
|
||||
},
|
||||
{
|
||||
question: "Les glaces sont-elles artisanales ?",
|
||||
answer: "Absolument, chaque bac est préparé manuellement chaque matin.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
48
src/pages/HomePage/sections/Hero.tsx
Normal file
48
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,48 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "hero" section.
|
||||
|
||||
import React from 'react';
|
||||
import HeroBillboardCarousel from '@/components/sections/hero/HeroBillboardCarousel';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroBillboardCarousel
|
||||
tag="Gelato Artisanal"
|
||||
title="Le Goût de l'Italie à Dakar"
|
||||
description="Découvrez l'expérience authentique du vrai gelato italien, préparé chaque jour avec des ingrédients frais et naturels."
|
||||
primaryButton={{
|
||||
text: "Découvrir le Menu",
|
||||
href: "#menu",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Nous Contacter",
|
||||
href: "#contact",
|
||||
}}
|
||||
items={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-cooking-pizza-kitchen_158595-2120.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/ice-lollies-with-blueberries-cherries_23-2148216294.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-food-concept_23-2148578404.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/colored-cloths-arrangement-with-natural-pigments_23-2148734437.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/pistachio-ice-cream-with-pistachios_23-2151988819.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/vertical-shot-glass-delicious-ice-cream-with-chocolate-syrup-whipped-cream_181624-57869.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
57
src/pages/HomePage/sections/Menu.tsx
Normal file
57
src/pages/HomePage/sections/Menu.tsx
Normal file
@@ -0,0 +1,57 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "menu" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function MenuSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="menu" data-section="menu">
|
||||
<SectionErrorBoundary name="menu">
|
||||
<FeaturesImageBento
|
||||
tag="Menu Signature"
|
||||
title="Nos Parfums Favoris"
|
||||
description="Une sélection de glaces artisanales fabriquées avec amour."
|
||||
items={[
|
||||
{
|
||||
title: "Pistache",
|
||||
description: "Pistaches de Sicile torréfiées.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-green-ice-cream-plate_52683-92471.jpg",
|
||||
},
|
||||
{
|
||||
title: "Chocolat Noir",
|
||||
description: "Cacao intense 70%.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-bowl-with-chocolate-flavored-ice-cream_23-2148422052.jpg",
|
||||
},
|
||||
{
|
||||
title: "Fraise Fraîche",
|
||||
description: "Fraises locales de saison.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-ice-creams-glass_23-2148507965.jpg",
|
||||
},
|
||||
{
|
||||
title: "Vanille Bourbon",
|
||||
description: "Gousses de vanille de Madagascar.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-ice-cream-with-nuts_23-2148507941.jpg",
|
||||
},
|
||||
{
|
||||
title: "Caramel au Beurre Salé",
|
||||
description: "Une pointe de sel marin.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-little-creamy-cake-with-chocolate-cookies-dark-surface-biscuit-cake-sweet-pie-sugar-cookie_140725-118183.jpg",
|
||||
},
|
||||
{
|
||||
title: "Noisette",
|
||||
description: "Noisettes croquantes.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/chocolate-ice-cream-texture_23-2149450689.jpg",
|
||||
},
|
||||
{
|
||||
title: "Citron Sorbet",
|
||||
description: "Rafraîchissant et acidulé.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-granita-dessert-with-various-ingredients_23-2149400149.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
28
src/pages/HomePage/sections/Metrics.tsx
Normal file
28
src/pages/HomePage/sections/Metrics.tsx
Normal file
@@ -0,0 +1,28 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "metrics" section.
|
||||
|
||||
import React from 'react';
|
||||
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function MetricsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<MetricsMediaCards
|
||||
tag="La Qualité avant tout"
|
||||
title="Nos Engagements"
|
||||
description="La promesse d'une qualité exceptionnelle à chaque bouchée."
|
||||
metrics={[
|
||||
{
|
||||
value: "100%",
|
||||
title: "Ingrédients naturels",
|
||||
description: "Sans colorants ni conservateurs artificiels.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/ripe-fruits-veggies-homegrown-sold-farmers-market-stand_482257-77543.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
29
src/pages/HomePage/sections/Social.tsx
Normal file
29
src/pages/HomePage/sections/Social.tsx
Normal file
@@ -0,0 +1,29 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "social" section.
|
||||
|
||||
import React from 'react';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function SocialSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="social" data-section="social">
|
||||
<SectionErrorBoundary name="social">
|
||||
<SocialProofMarquee
|
||||
tag="Nos partenaires"
|
||||
title="Ils nous font confiance"
|
||||
description="Nous collaborons avec les meilleurs services de Dakar."
|
||||
names={[
|
||||
"Glovo",
|
||||
"Dakar E-commerce",
|
||||
"Local Farms Coop",
|
||||
"Artisan Alliance",
|
||||
"Qualité Dakar",
|
||||
"Le Meilleur de Dakar",
|
||||
"EcoFriendly Label",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
52
src/pages/HomePage/sections/Testimonials.tsx
Normal file
52
src/pages/HomePage/sections/Testimonials.tsx
Normal file
@@ -0,0 +1,52 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "testimonials" section.
|
||||
|
||||
import React from 'react';
|
||||
import TestimonialQuoteCards from '@/components/sections/testimonial/TestimonialQuoteCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TestimonialsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialQuoteCards
|
||||
tag="Nos clients"
|
||||
title="Ce qu'ils pensent de nous"
|
||||
description="Les retours de nos fidèles amateurs de glaces à Dakar."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Fatou Ndiaye",
|
||||
role: "Passionnée",
|
||||
quote: "La meilleure glace de Dakar, sans aucune hésitation !",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/laugh-is-way-happiness_329181-2893.jpg",
|
||||
},
|
||||
{
|
||||
name: "Marc L.",
|
||||
role: "Habitué",
|
||||
quote: "Une texture incroyablement onctueuse, authentique et savoureuse.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-people-with-paper-wrapped-sandwiches_23-2151309966.jpg",
|
||||
},
|
||||
{
|
||||
name: "Aminata S.",
|
||||
role: "Client fidéle",
|
||||
quote: "L'endroit idéal pour une pause sucrée après une longue journée.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-with-two-raised-fingers_1187-1103.jpg",
|
||||
},
|
||||
{
|
||||
name: "Jean B.",
|
||||
role: "Gourmand",
|
||||
quote: "Le parfum pistache est une pure merveille. Je reviens chaque semaine.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/positive-woman-denim-jacket-undershirt-looks-sun-bright-backdrop-brunette-girl-light-pants-sunglasses-poses-yellow-background_197531-28011.jpg",
|
||||
},
|
||||
{
|
||||
name: "Sophie D.",
|
||||
role: "Gourmande",
|
||||
quote: "L'accueil est chaleureux et la glace est divine. Bravo Taq Taq !",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/outdoor-street-portrait-happy-woman-eating-ice-cream_197531-22772.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user