Bob AI: Configure contact buttons to open a modal with a contact for
This commit is contained in:
@@ -4,8 +4,29 @@ import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
import SiteBackgroundSlot from "@/components/ui/SiteBackgroundSlot";
|
||||
import { Outlet } from 'react-router-dom';
|
||||
import { StyleProvider } from "@/components/ui/StyleProvider";
|
||||
import { useEffect, useRef } from 'react';
|
||||
import Modal from '@/components/ui/Modal';
|
||||
import Input from '@/components/ui/Input';
|
||||
import Textarea from '@/components/ui/Textarea';
|
||||
import Label from '@/components/ui/Label';
|
||||
import Button from '@/components/ui/Button';
|
||||
|
||||
export default function Layout() {
|
||||
const triggerRef = useRef<HTMLButtonElement>(null);
|
||||
|
||||
useEffect(() => {
|
||||
const handleClick = (e: MouseEvent) => {
|
||||
const target = e.target as HTMLElement;
|
||||
const link = target.closest('a');
|
||||
if (link && link.getAttribute('href') === '#contact-modal') {
|
||||
e.preventDefault();
|
||||
triggerRef.current?.click();
|
||||
}
|
||||
};
|
||||
document.addEventListener('click', handleClick);
|
||||
return () => document.removeEventListener('click', handleClick);
|
||||
}, []);
|
||||
|
||||
const navItems = [
|
||||
{
|
||||
"name": "Bemutatkozás",
|
||||
@@ -45,13 +66,38 @@ export default function Layout() {
|
||||
logo="A Te Szertartásvezetőd"
|
||||
ctaButton={{
|
||||
text: "Ajánlatkérés",
|
||||
href: "#contact",
|
||||
href: "#contact-modal",
|
||||
}}
|
||||
navItems={navItems} />
|
||||
</SectionErrorBoundary>
|
||||
<main className="flex-grow">
|
||||
<Outlet />
|
||||
</main>
|
||||
<Modal
|
||||
trigger={<button ref={triggerRef} className="hidden" />}
|
||||
title="Foglald le a napodat!"
|
||||
description="A 2026-os és már a 2027-es naptáram is nyitva!"
|
||||
>
|
||||
<form className="space-y-4 mt-4" onSubmit={(e) => e.preventDefault()}>
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="name">Név</Label>
|
||||
<Input id="name" placeholder="A ti nevetek" />
|
||||
</div>
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="email">Email</Label>
|
||||
<Input id="email" type="email" placeholder="email@cim.hu" />
|
||||
</div>
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="date">Esküvő tervezett dátuma</Label>
|
||||
<Input id="date" placeholder="ÉÉÉÉ. HH. NN." />
|
||||
</div>
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="message">Üzenet</Label>
|
||||
<Textarea id="message" placeholder="Meséljetek magatokról és az elképzeléseitekről..." rows={4} />
|
||||
</div>
|
||||
<Button text="Üzenet küldése" className="w-full" />
|
||||
</form>
|
||||
</Modal>
|
||||
<SectionErrorBoundary name="footer">
|
||||
<FooterBrand
|
||||
brand="A Te Szertartásvezetőd – Tóth Eszter"
|
||||
|
||||
@@ -1,197 +1,33 @@
|
||||
import AboutText from '@/components/sections/about/AboutText';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqTwoColumn from '@/components/sections/faq/FaqTwoColumn';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import FeaturesRevealCards from '@/components/sections/features/FeaturesRevealCards';
|
||||
import HeroBillboard from '@/components/sections/hero/HeroBillboard';
|
||||
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 FeaturesSection from './HomePage/sections/Features';
|
||||
import PortfolioSection from './HomePage/sections/Portfolio';
|
||||
import ProcessSection from './HomePage/sections/Process';
|
||||
import TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
import ContactSection from './HomePage/sections/Contact';
|
||||
|
||||
export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroBillboard
|
||||
title="A Te Szertartásvezetőd – Tóth Eszter"
|
||||
description="Mert egy szertartás olyan legyen, mint maga a pár. Személyes, őszinte és rólatok szóljon."
|
||||
primaryButton={{
|
||||
text: "Vegyük fel a kapcsolatot",
|
||||
href: "#contact",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Ismerj meg",
|
||||
href: "#about",
|
||||
}}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/happy-wedding-couple-is-walking-by-beautiful-garden_613910-6039.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutText
|
||||
title="Tóth Eszter okleveles szertartásvezető, aki hisz abban, hogy a ceremónia a legmeghatóbb pillanata az esküvőnek. Számára ez több mint egy ünnepi beszéd – személyes történetekből, közös emlékekből épül fel minden szertartás."
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<AboutSection />
|
||||
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesRevealCards
|
||||
tag="Miért én?"
|
||||
title="Személyes odafigyelés, profi keretek között."
|
||||
description="Célom, hogy a szertartásotok ne csak egy része legyen az esküvőnek, hanem az a felejthetetlen pillanat, amikor minden rátok figyel."
|
||||
items={[
|
||||
{
|
||||
title: "Személyre szabott szertartás",
|
||||
description: "Egyedi szövegek, melyek rátok épülnek.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/gardener-reading-from-book-being-surrounded-by-plants_23-2148435673.jpg",
|
||||
},
|
||||
{
|
||||
title: "Okleveles szakember",
|
||||
description: "Profi háttér, elegáns megjelenés.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/female-wedding-planner-working-ceremony_23-2150167259.jpg",
|
||||
},
|
||||
{
|
||||
title: "2026/2027 naptár nyitva",
|
||||
description: "Foglald le az időpontodat időben.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/date-jule-23-made-wooden-cubes_1304-4692.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FeaturesSection />
|
||||
|
||||
<div id="portfolio" data-section="portfolio">
|
||||
<SectionErrorBoundary name="portfolio">
|
||||
<FeaturesImageBento
|
||||
tag="Esküvők"
|
||||
title="Pillanatok, amik örökre megmaradnak"
|
||||
description="Tekintsd meg néhány korábbi szertartásom meghitt pillanatát."
|
||||
items={[
|
||||
{
|
||||
title: "Réka & Attila",
|
||||
description: "Dudok Rendezvényház",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/romantic-engagement-happiness-couple-elegance_1153-2195.jpg",
|
||||
},
|
||||
{
|
||||
title: "Elegáns részletek",
|
||||
description: "Szabadtéri szertartás",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/bouquet-white-ranunculus-flowers-blurred-background-with-heart_169016-49445.jpg",
|
||||
},
|
||||
{
|
||||
title: "Örök pillanatok",
|
||||
description: "Meghitt igent mondás",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-young-man-wearing-black-suit-standing-along-with-his-bride_1157-13253.jpg",
|
||||
},
|
||||
{
|
||||
title: "Különleges dekor",
|
||||
description: "Romantikus hangulat",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/look-from-white-chairs-standing-around-wedding-altar_8353-730.jpg",
|
||||
},
|
||||
{
|
||||
title: "Tiszta öröm",
|
||||
description: "Boldog szertartásvezetés",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/bride-groom-exchanging-vows-wedding-ceremony_23-2150292060.jpg",
|
||||
},
|
||||
{
|
||||
title: "Személyes elemek",
|
||||
description: "Minden rólatok szól",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/glamour-color-lovely-decoration-green_1304-2510.jpg",
|
||||
},
|
||||
{
|
||||
title: "Szeretettel",
|
||||
description: "Esküvői emlékképek",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/couple-love-kissing-nature-travel-mountains_1328-1862.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<PortfolioSection />
|
||||
|
||||
<div id="process" data-section="process">
|
||||
<SectionErrorBoundary name="process">
|
||||
<FaqTwoColumn
|
||||
tag="Hogyan dolgozom?"
|
||||
title="Az első lépéstől a nagy napig."
|
||||
description="Egyszerű és átlátható folyamat, hogy a szervezés ne stresszel járjon."
|
||||
items={[
|
||||
{
|
||||
question: "1. Egyeztetés",
|
||||
answer: "Találkozunk, megismerjük egymást és átbeszéljük az elképzeléseiteket.",
|
||||
},
|
||||
{
|
||||
question: "2. Szertartás tervezés",
|
||||
answer: "Megírom a személyes szöveget és megtervezzük a szertartás menetét.",
|
||||
},
|
||||
{
|
||||
question: "3. Az igazi nap",
|
||||
answer: "Mindent biztosítok, hogy a szertartás zökkenőmentes és emlékezetes legyen.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ProcessSection />
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialQuoteCards
|
||||
tag="Vélemények"
|
||||
title="Mások mondták rólunk"
|
||||
description="Hálás vagyok minden párnak, akik megtiszteltek bizalmukkal."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Nóra & Dávid",
|
||||
role: "Pár",
|
||||
quote: "Eszter elképesztően figyelmes volt, a szertartás teljesen olyan lett, mint amilyet megálmodtunk.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-sits-stairs-house-looks-up_8353-11393.jpg",
|
||||
},
|
||||
{
|
||||
name: "Kitti & Gergő",
|
||||
role: "Pár",
|
||||
quote: "Nem is lehetett volna szebb a ceremónia. Eszter szavai mindenkit könnyekre fakasztottak.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-man-hugging-stand-ocean-beach_8353-11401.jpg",
|
||||
},
|
||||
{
|
||||
name: "Anna & Balázs",
|
||||
role: "Pár",
|
||||
quote: "Profi és közvetlen, csak ajánlani tudjuk mindenkinek!",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/groom-preparing-his-wedding_1303-28306.jpg",
|
||||
},
|
||||
{
|
||||
name: "Zsófia & Péter",
|
||||
role: "Pár",
|
||||
quote: "Tökéletes választás volt Eszter, minden részletre figyelt.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-bride-white-silk-robe-sits-bed-hotel-room_8353-8280.jpg",
|
||||
},
|
||||
{
|
||||
name: "Erika & Zoltán",
|
||||
role: "Pár",
|
||||
quote: "Csodálatos hangulatot teremtett, örök emlék marad.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/groom-carries-bride-his-back-outdoors_1153-5963.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TestimonialsSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Foglald le a napodat!"
|
||||
text="A 2026-os és már a 2027-es naptáram is nyitva! Veled is szívesen dolgoznék együtt."
|
||||
primaryButton={{
|
||||
text: "Üzenetet küldök",
|
||||
href: "mailto:eszter@ateszertartasvezetod.hu",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Instagramon is írhatsz",
|
||||
href: "https://instagram.com/ateszertartasvezetod",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
18
src/pages/HomePage/sections/About.tsx
Normal file
18
src/pages/HomePage/sections/About.tsx
Normal file
@@ -0,0 +1,18 @@
|
||||
// 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 AboutText from '@/components/sections/about/AboutText';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function AboutSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutText
|
||||
title="Tóth Eszter okleveles szertartásvezető, aki hisz abban, hogy a ceremónia a legmeghatóbb pillanata az esküvőnek. Számára ez több mint egy ünnepi beszéd – személyes történetekből, közös emlékekből épül fel minden szertartás."
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
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="Foglald le a napodat!"
|
||||
text="A 2026-os és már a 2027-es naptáram is nyitva! Veled is szívesen dolgoznék együtt."
|
||||
primaryButton={{
|
||||
text: "Üzenetet küldök",
|
||||
href: "mailto:eszter@ateszertartasvezetod.hu",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Instagramon is írhatsz",
|
||||
href: "https://instagram.com/ateszertartasvezetod",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
37
src/pages/HomePage/sections/Features.tsx
Normal file
37
src/pages/HomePage/sections/Features.tsx
Normal file
@@ -0,0 +1,37 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "features" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesRevealCards from '@/components/sections/features/FeaturesRevealCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FeaturesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesRevealCards
|
||||
tag="Miért én?"
|
||||
title="Személyes odafigyelés, profi keretek között."
|
||||
description="Célom, hogy a szertartásotok ne csak egy része legyen az esküvőnek, hanem az a felejthetetlen pillanat, amikor minden rátok figyel."
|
||||
items={[
|
||||
{
|
||||
title: "Személyre szabott szertartás",
|
||||
description: "Egyedi szövegek, melyek rátok épülnek.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/gardener-reading-from-book-being-surrounded-by-plants_23-2148435673.jpg",
|
||||
},
|
||||
{
|
||||
title: "Okleveles szakember",
|
||||
description: "Profi háttér, elegáns megjelenés.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/female-wedding-planner-working-ceremony_23-2150167259.jpg",
|
||||
},
|
||||
{
|
||||
title: "2026/2027 naptár nyitva",
|
||||
description: "Foglald le az időpontodat időben.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/date-jule-23-made-wooden-cubes_1304-4692.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
28
src/pages/HomePage/sections/Hero.tsx
Normal file
28
src/pages/HomePage/sections/Hero.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 "hero" section.
|
||||
|
||||
import React from 'react';
|
||||
import HeroBillboard from '@/components/sections/hero/HeroBillboard';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroBillboard
|
||||
title="A Te Szertartásvezetőd – Tóth Eszter"
|
||||
description="Mert egy szertartás olyan legyen, mint maga a pár. Személyes, őszinte és rólatok szóljon."
|
||||
primaryButton={{
|
||||
text: "Vegyük fel a kapcsolatot",
|
||||
href: "#contact-modal",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Ismerj meg",
|
||||
href: "#about",
|
||||
}}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/happy-wedding-couple-is-walking-by-beautiful-garden_613910-6039.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
57
src/pages/HomePage/sections/Portfolio.tsx
Normal file
57
src/pages/HomePage/sections/Portfolio.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 "portfolio" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function PortfolioSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="portfolio" data-section="portfolio">
|
||||
<SectionErrorBoundary name="portfolio">
|
||||
<FeaturesImageBento
|
||||
tag="Esküvők"
|
||||
title="Pillanatok, amik örökre megmaradnak"
|
||||
description="Tekintsd meg néhány korábbi szertartásom meghitt pillanatát."
|
||||
items={[
|
||||
{
|
||||
title: "Réka & Attila",
|
||||
description: "Dudok Rendezvényház",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/romantic-engagement-happiness-couple-elegance_1153-2195.jpg",
|
||||
},
|
||||
{
|
||||
title: "Elegáns részletek",
|
||||
description: "Szabadtéri szertartás",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/bouquet-white-ranunculus-flowers-blurred-background-with-heart_169016-49445.jpg",
|
||||
},
|
||||
{
|
||||
title: "Örök pillanatok",
|
||||
description: "Meghitt igent mondás",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-young-man-wearing-black-suit-standing-along-with-his-bride_1157-13253.jpg",
|
||||
},
|
||||
{
|
||||
title: "Különleges dekor",
|
||||
description: "Romantikus hangulat",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/look-from-white-chairs-standing-around-wedding-altar_8353-730.jpg",
|
||||
},
|
||||
{
|
||||
title: "Tiszta öröm",
|
||||
description: "Boldog szertartásvezetés",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/bride-groom-exchanging-vows-wedding-ceremony_23-2150292060.jpg",
|
||||
},
|
||||
{
|
||||
title: "Személyes elemek",
|
||||
description: "Minden rólatok szól",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/glamour-color-lovely-decoration-green_1304-2510.jpg",
|
||||
},
|
||||
{
|
||||
title: "Szeretettel",
|
||||
description: "Esküvői emlékképek",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/couple-love-kissing-nature-travel-mountains_1328-1862.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
34
src/pages/HomePage/sections/Process.tsx
Normal file
34
src/pages/HomePage/sections/Process.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 "process" section.
|
||||
|
||||
import React from 'react';
|
||||
import FaqTwoColumn from '@/components/sections/faq/FaqTwoColumn';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ProcessSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="process" data-section="process">
|
||||
<SectionErrorBoundary name="process">
|
||||
<FaqTwoColumn
|
||||
tag="Hogyan dolgozom?"
|
||||
title="Az első lépéstől a nagy napig."
|
||||
description="Egyszerű és átlátható folyamat, hogy a szervezés ne stresszel járjon."
|
||||
items={[
|
||||
{
|
||||
question: "1. Egyeztetés",
|
||||
answer: "Találkozunk, megismerjük egymást és átbeszéljük az elképzeléseiteket.",
|
||||
},
|
||||
{
|
||||
question: "2. Szertartás tervezés",
|
||||
answer: "Megírom a személyes szöveget és megtervezzük a szertartás menetét.",
|
||||
},
|
||||
{
|
||||
question: "3. Az igazi nap",
|
||||
answer: "Mindent biztosítok, hogy a szertartás zökkenőmentes és emlékezetes legyen.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</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="Vélemények"
|
||||
title="Mások mondták rólunk"
|
||||
description="Hálás vagyok minden párnak, akik megtiszteltek bizalmukkal."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Nóra & Dávid",
|
||||
role: "Pár",
|
||||
quote: "Eszter elképesztően figyelmes volt, a szertartás teljesen olyan lett, mint amilyet megálmodtunk.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-sits-stairs-house-looks-up_8353-11393.jpg",
|
||||
},
|
||||
{
|
||||
name: "Kitti & Gergő",
|
||||
role: "Pár",
|
||||
quote: "Nem is lehetett volna szebb a ceremónia. Eszter szavai mindenkit könnyekre fakasztottak.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-man-hugging-stand-ocean-beach_8353-11401.jpg",
|
||||
},
|
||||
{
|
||||
name: "Anna & Balázs",
|
||||
role: "Pár",
|
||||
quote: "Profi és közvetlen, csak ajánlani tudjuk mindenkinek!",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/groom-preparing-his-wedding_1303-28306.jpg",
|
||||
},
|
||||
{
|
||||
name: "Zsófia & Péter",
|
||||
role: "Pár",
|
||||
quote: "Tökéletes választás volt Eszter, minden részletre figyelt.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-bride-white-silk-robe-sits-bed-hotel-room_8353-8280.jpg",
|
||||
},
|
||||
{
|
||||
name: "Erika & Zoltán",
|
||||
role: "Pár",
|
||||
quote: "Csodálatos hangulatot teremtett, örök emlék marad.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/groom-carries-bride-his-back-outdoors_1153-5963.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user