Compare commits
4 Commits
version_1_
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 679180f948 | |||
|
|
c70a6eb817 | ||
| 3c272801e8 | |||
| 0010fd0bf3 |
@@ -5,15 +5,15 @@
|
||||
|
||||
:root {
|
||||
/* @colorThemes/lightTheme/grayNavyBlue */
|
||||
--background: #f5faff;
|
||||
--card: #ffffff;
|
||||
--foreground: #001122;
|
||||
--primary-cta: #15479c;
|
||||
--primary-cta-text: #f5faff;
|
||||
--background: #111111;
|
||||
--card: #1a1a1a;
|
||||
--foreground: #ffffff;
|
||||
--primary-cta: #d4af37;
|
||||
--primary-cta-text: #111111;
|
||||
--secondary-cta: #ffffff;
|
||||
--secondary-cta-text: #001122;
|
||||
--accent: #a8cce8;
|
||||
--background-accent: #7ba3cf;
|
||||
--secondary-cta-text: #111111;
|
||||
--accent: #a3a3a3;
|
||||
--background-accent: #222222;
|
||||
|
||||
/* @layout/border-radius/rounded */
|
||||
--radius: 1.5rem;
|
||||
|
||||
@@ -1,199 +1,33 @@
|
||||
import AboutTestimonial from '@/components/sections/about/AboutTestimonial';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FeaturesComparison from '@/components/sections/features/FeaturesComparison';
|
||||
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
|
||||
import HeroBrand from '@/components/sections/hero/HeroBrand';
|
||||
import MetricsFeatureCards from '@/components/sections/metrics/MetricsFeatureCards';
|
||||
import TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards';
|
||||
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 SobreSection from './HomePage/sections/Sobre';
|
||||
import MenuSection from './HomePage/sections/Menu';
|
||||
import GaleriaSection from './HomePage/sections/Galeria';
|
||||
import AvaliacoesSection from './HomePage/sections/Avaliacoes';
|
||||
import LocalSection from './HomePage/sections/Local';
|
||||
import ContactSection from './HomePage/sections/Contact';
|
||||
|
||||
export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroBrand
|
||||
brand="Saigon Flavours"
|
||||
description="Autêntica comida vietnamita no coração do Porto. Frescura, tradição e sabores vibrantes à sua mesa."
|
||||
primaryButton={{
|
||||
text: "Reservar Mesa",
|
||||
href: "tel:+351933088259",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Ver Menu",
|
||||
href: "#menu",
|
||||
}}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/seafood-with-sliced-lime_140725-3707.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="sobre" data-section="sobre">
|
||||
<SectionErrorBoundary name="sobre">
|
||||
<AboutTestimonial
|
||||
tag="Sobre Nós"
|
||||
quote="Uma pequena viagem familiar de Hanói até ao Porto. Utilizamos ingredientes frescos e receitas ancestrais para lhe oferecer o sabor real do Vietname."
|
||||
author="Família Saigon Flavours"
|
||||
role="Fundadores"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/young-women-new-york-city-daytime_23-2149488492.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<SobreSection />
|
||||
|
||||
<div id="menu" data-section="menu">
|
||||
<SectionErrorBoundary name="menu">
|
||||
<FeaturesRevealCardsBento
|
||||
tag="Menu de Destaques"
|
||||
title="Sabores Imperdíveis"
|
||||
description="Do clássico Pho ao Bun Bo, explore os nossos pratos de assinatura."
|
||||
items={[
|
||||
{
|
||||
title: "Pho Bo",
|
||||
description: "Sopa tradicional aromática com carne de vaca.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/bowl-caesar-salad-served-with-bread-sticks_140725-5979.jpg",
|
||||
},
|
||||
{
|
||||
title: "Bun Bo",
|
||||
description: "Salada de massa de arroz com carne e ervas.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/delicious-thai-food-still-life_23-2149508968.jpg",
|
||||
},
|
||||
{
|
||||
title: "Spring Rolls",
|
||||
description: "Rolinhos crocantes com molho especial.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/stir-fried-shrimp-noodles-black-bowl_84443-85686.jpg",
|
||||
},
|
||||
{
|
||||
title: "Grelhados",
|
||||
description: "Carne grelhada ao estilo vietnamita com arroz.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/healthy-breakfast-buddha-bowl-with-rice-mango-avocado-salmon-fresh-salad-with-tomatoes-avocado-arugula-seeds-salmon-salmon-sandwich-with-avocado-creame-cheese-microgreen-healt_2829-19999.jpg",
|
||||
},
|
||||
{
|
||||
title: "Mango Sticky Rice",
|
||||
description: "Sobremesa clássica de manga e arroz doce.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/thai-sweet-sticky-rice-with-durian-dessert_1150-23439.jpg",
|
||||
},
|
||||
{
|
||||
title: "Papaya Salad",
|
||||
description: "Salada fresca de papaia verde crocante.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/bowl-with-salmon-rice-fresh-vegetables-poke-top-view-banner_127032-2416.jpg",
|
||||
},
|
||||
{
|
||||
title: "Café Vietnamita",
|
||||
description: "Café tradicional com leite condensado.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cool-breakfast-composition_23-2147658656.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<MenuSection />
|
||||
|
||||
<div id="galeria" data-section="galeria">
|
||||
<SectionErrorBoundary name="galeria">
|
||||
<FeaturesComparison
|
||||
tag="Experiência"
|
||||
title="Mais que Comida, uma Experiência"
|
||||
description="O ambiente perfeito para desfrutar da culinária autêntica vietnamita."
|
||||
negativeItems={[
|
||||
"Comida industrial",
|
||||
"Ambiente frio",
|
||||
"Pressa",
|
||||
]}
|
||||
positiveItems={[
|
||||
"Ingredientes frescos",
|
||||
"Ambiente acolhedor",
|
||||
"Tradição familiar",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<GaleriaSection />
|
||||
|
||||
<div id="avaliacoes" data-section="avaliacoes">
|
||||
<SectionErrorBoundary name="avaliacoes">
|
||||
<TestimonialMarqueeCards
|
||||
tag="Avaliações"
|
||||
title="O que dizem os nossos clientes (4.7 ⭐ no Google)"
|
||||
description="Obrigado por nos escolherem como o vosso refúgio asiático no Porto."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Maria Silva",
|
||||
role: "Cliente Local",
|
||||
quote: "Melhor Pho que já comi no Porto!",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-happy-woman-talking-waitress-cafe_637285-8070.jpg",
|
||||
},
|
||||
{
|
||||
name: "John Doe",
|
||||
role: "Turista",
|
||||
quote: "Authentic taste and cozy vibes.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/indoor-shot-beautiful-happy-student-girl-blue-sweatshirt-using-wireless-headphones-having-online-examination-sitting-home-people-education-learning-technology-electronic-gadgets_343059-1924.jpg",
|
||||
},
|
||||
{
|
||||
name: "Pedro Costa",
|
||||
role: "Foodie",
|
||||
quote: "Ingredientes super frescos, recomendo vivamente.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-cute-girl-looking-away_23-2148436134.jpg",
|
||||
},
|
||||
{
|
||||
name: "Ana Santos",
|
||||
role: "Frequente",
|
||||
quote: "Ambiente fantástico e comida divina.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-dining-table-arrangement_23-2150312219.jpg",
|
||||
},
|
||||
{
|
||||
name: "Carlos M.",
|
||||
role: "Foodie",
|
||||
quote: "O Bun Bo é simplesmente inesquecível.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/thrilled-confident-manager-business-attire-celebrates-victorious-milestone_482257-111932.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<AvaliacoesSection />
|
||||
|
||||
<div id="local" data-section="local">
|
||||
<SectionErrorBoundary name="local">
|
||||
<MetricsFeatureCards
|
||||
tag="Localização"
|
||||
title="Visite-nos no Porto"
|
||||
description="R. de Mouzinho da Silveira 221, 4050-421 Porto."
|
||||
metrics={[
|
||||
{
|
||||
value: "Seg-Dom",
|
||||
title: "Horários",
|
||||
features: [
|
||||
"Seg: 12-16/18-22h30",
|
||||
"Ter: 12-21h",
|
||||
"Qua: Fechado",
|
||||
"Qui-Dom: 12-16/18-22h30",
|
||||
],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<LocalSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Reservas"
|
||||
text="Pronto para provar os sabores de Saigon?"
|
||||
primaryButton={{
|
||||
text: "WhatsApp",
|
||||
href: "https://wa.me/351933088259",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Ligar",
|
||||
href: "tel:+351933088259",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
52
src/pages/HomePage/sections/Avaliacoes.tsx
Normal file
52
src/pages/HomePage/sections/Avaliacoes.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 "avaliacoes" section.
|
||||
|
||||
import React from 'react';
|
||||
import TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function AvaliacoesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="avaliacoes" data-section="avaliacoes">
|
||||
<SectionErrorBoundary name="avaliacoes">
|
||||
<TestimonialMarqueeCards
|
||||
tag="Avaliações"
|
||||
title="O que dizem os nossos clientes (4.7 ⭐ no Google)"
|
||||
description="Obrigado por nos escolherem como o vosso refúgio asiático no Porto."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Maria Silva",
|
||||
role: "Cliente Local",
|
||||
quote: "Melhor Pho que já comi no Porto!",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-happy-woman-talking-waitress-cafe_637285-8070.jpg",
|
||||
},
|
||||
{
|
||||
name: "John Doe",
|
||||
role: "Turista",
|
||||
quote: "Authentic taste and cozy vibes.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/indoor-shot-beautiful-happy-student-girl-blue-sweatshirt-using-wireless-headphones-having-online-examination-sitting-home-people-education-learning-technology-electronic-gadgets_343059-1924.jpg",
|
||||
},
|
||||
{
|
||||
name: "Pedro Costa",
|
||||
role: "Foodie",
|
||||
quote: "Ingredientes super frescos, recomendo vivamente.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-cute-girl-looking-away_23-2148436134.jpg",
|
||||
},
|
||||
{
|
||||
name: "Ana Santos",
|
||||
role: "Frequente",
|
||||
quote: "Ambiente fantástico e comida divina.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-dining-table-arrangement_23-2150312219.jpg",
|
||||
},
|
||||
{
|
||||
name: "Carlos M.",
|
||||
role: "Foodie",
|
||||
quote: "O Bun Bo é simplesmente inesquecível.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/thrilled-confident-manager-business-attire-celebrates-victorious-milestone_482257-111932.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</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="Reservas"
|
||||
text="Pronto para provar os sabores de Saigon?"
|
||||
primaryButton={{
|
||||
text: "WhatsApp",
|
||||
href: "https://wa.me/351933088259",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Ligar",
|
||||
href: "tel:+351933088259",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
30
src/pages/HomePage/sections/Galeria.tsx
Normal file
30
src/pages/HomePage/sections/Galeria.tsx
Normal file
@@ -0,0 +1,30 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "galeria" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesComparison from '@/components/sections/features/FeaturesComparison';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function GaleriaSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="galeria" data-section="galeria">
|
||||
<SectionErrorBoundary name="galeria">
|
||||
<FeaturesComparison
|
||||
tag="Experiência"
|
||||
title="Mais que Comida, uma Experiência"
|
||||
description="O ambiente perfeito para desfrutar da culinária autêntica vietnamita."
|
||||
negativeItems={[
|
||||
"Comida industrial",
|
||||
"Ambiente frio",
|
||||
"Pressa",
|
||||
]}
|
||||
positiveItems={[
|
||||
"Ingredientes frescos",
|
||||
"Ambiente acolhedor",
|
||||
"Tradição familiar",
|
||||
]}
|
||||
/>
|
||||
</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 HeroBrand from '@/components/sections/hero/HeroBrand';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroBrand
|
||||
brand="Saigon Flavours"
|
||||
description="Autêntica comida vietnamita no coração do Porto. Frescura, tradição e sabores vibrantes à sua mesa."
|
||||
primaryButton={{
|
||||
text: "Reservar Mesa",
|
||||
href: "tel:+351933088259",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Ver Menu",
|
||||
href: "#menu",
|
||||
}}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/seafood-with-sliced-lime_140725-3707.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
32
src/pages/HomePage/sections/Local.tsx
Normal file
32
src/pages/HomePage/sections/Local.tsx
Normal file
@@ -0,0 +1,32 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "local" section.
|
||||
|
||||
import React from 'react';
|
||||
import MetricsFeatureCards from '@/components/sections/metrics/MetricsFeatureCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function LocalSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="local" data-section="local">
|
||||
<SectionErrorBoundary name="local">
|
||||
<MetricsFeatureCards
|
||||
tag="Localização"
|
||||
title="Visite-nos no Porto"
|
||||
description="R. de Mouzinho da Silveira 221, 4050-421 Porto."
|
||||
metrics={[
|
||||
{
|
||||
value: "Seg-Dom",
|
||||
title: "Horários",
|
||||
features: [
|
||||
"Seg: 12-16/18-22h30",
|
||||
"Ter: 12-21h",
|
||||
"Qua: Fechado",
|
||||
"Qui-Dom: 12-16/18-22h30",
|
||||
],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
64
src/pages/HomePage/sections/Menu.tsx
Normal file
64
src/pages/HomePage/sections/Menu.tsx
Normal file
@@ -0,0 +1,64 @@
|
||||
// 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 FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function MenuSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="menu" data-section="menu">
|
||||
<SectionErrorBoundary name="menu">
|
||||
<FeaturesRevealCardsBento
|
||||
tag="Menu de Destaques"
|
||||
title="Sabores Imperdíveis"
|
||||
description="Do clássico Pho ao Bun Bo, explore os nossos pratos de assinatura."
|
||||
items={[
|
||||
{
|
||||
title: "Pho Bo",
|
||||
description: "Sopa tradicional aromática com carne de vaca.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/bowl-caesar-salad-served-with-bread-sticks_140725-5979.jpg",
|
||||
},
|
||||
{
|
||||
title: "Bun Bo",
|
||||
description: "Salada de massa de arroz com carne e ervas.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/delicious-thai-food-still-life_23-2149508968.jpg",
|
||||
},
|
||||
{
|
||||
title: "Spring Rolls",
|
||||
description: "Rolinhos crocantes com molho especial.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/stir-fried-shrimp-noodles-black-bowl_84443-85686.jpg",
|
||||
},
|
||||
{
|
||||
title: "Grelhados",
|
||||
description: "Carne grelhada ao estilo vietnamita com arroz.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/healthy-breakfast-buddha-bowl-with-rice-mango-avocado-salmon-fresh-salad-with-tomatoes-avocado-arugula-seeds-salmon-salmon-sandwich-with-avocado-creame-cheese-microgreen-healt_2829-19999.jpg",
|
||||
},
|
||||
{
|
||||
title: "Mango Sticky Rice",
|
||||
description: "Sobremesa clássica de manga e arroz doce.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/thai-sweet-sticky-rice-with-durian-dessert_1150-23439.jpg",
|
||||
},
|
||||
{
|
||||
title: "Papaya Salad",
|
||||
description: "Salada fresca de papaia verde crocante.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/bowl-with-salmon-rice-fresh-vegetables-poke-top-view-banner_127032-2416.jpg",
|
||||
},
|
||||
{
|
||||
title: "Café Vietnamita",
|
||||
description: "Café tradicional com leite condensado.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cool-breakfast-composition_23-2147658656.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
22
src/pages/HomePage/sections/Sobre.tsx
Normal file
22
src/pages/HomePage/sections/Sobre.tsx
Normal file
@@ -0,0 +1,22 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "sobre" section.
|
||||
|
||||
import React from 'react';
|
||||
import AboutTestimonial from '@/components/sections/about/AboutTestimonial';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function SobreSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="sobre" data-section="sobre">
|
||||
<SectionErrorBoundary name="sobre">
|
||||
<AboutTestimonial
|
||||
tag="Sobre Nós"
|
||||
quote="Uma pequena viagem familiar de Hanói até ao Porto. Utilizamos ingredientes frescos e receitas ancestrais para lhe oferecer o sabor real do Vietname."
|
||||
author="Família Saigon Flavours"
|
||||
role="Fundadores"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/young-women-new-york-city-daytime_23-2149488492.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user