From c95b43c633516aad0dbed1df3252de2c2e1659d8 Mon Sep 17 00:00:00 2001 From: kudinDmitriyUp Date: Sun, 14 Jun 2026 11:26:53 +0000 Subject: [PATCH 1/2] Bob AI: fix build error in src/pages/HomePage.tsx --- src/pages/HomePage.tsx | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/pages/HomePage.tsx b/src/pages/HomePage.tsx index dab38e1..eb79dbe 100644 --- a/src/pages/HomePage.tsx +++ b/src/pages/HomePage.tsx @@ -1,7 +1,24 @@ import AboutMediaOverlay from '@/components/sections/about/AboutMediaOverlay'; import ContactCta from '@/components/sections/contact/ContactCta'; -import FeaturesBento from '@/components/sections/features/FeaturesBento'; -import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento'; +import FeaturesBentoOriginal from '@/components/sections/features/FeaturesBento'; +import FeaturesRevealCardsBentoOriginal from '@/components/sections/features/FeaturesRevealCardsBento'; + +const fixBentoItems = (items: any) => Array.isArray(items) ? items.map((item: any) => { + if (item.bentoComponent === 'media-stack' && item.imageSrc) { + return { ...item, mediaItems: [{ imageSrc: item.imageSrc }] }; + } + return item; +}) : items; + +const fixProps = (props: any) => { + const newProps = { ...props }; + if (newProps.items) newProps.items = fixBentoItems(newProps.items); + if (newProps.features) newProps.features = fixBentoItems(newProps.features); + return newProps; +}; + +const FeaturesBento = (props: any) => ; +const FeaturesRevealCardsBento = (props: any) => ; import HeroBillboardCarousel from '@/components/sections/hero/HeroBillboardCarousel'; import MetricsIconCards from '@/components/sections/metrics/MetricsIconCards'; import PricingSplitCards from '@/components/sections/pricing/PricingSplitCards'; -- 2.49.1 From 2553640327a91651c6a6b61b9b61ef65fd8c72f8 Mon Sep 17 00:00:00 2001 From: bender Date: Sun, 14 Jun 2026 11:27:02 +0000 Subject: [PATCH 2/2] Update src/pages/HomePage.tsx --- src/pages/HomePage.tsx | 358 +++++++++++++---------------------------- 1 file changed, 115 insertions(+), 243 deletions(-) diff --git a/src/pages/HomePage.tsx b/src/pages/HomePage.tsx index eb79dbe..56fe0a9 100644 --- a/src/pages/HomePage.tsx +++ b/src/pages/HomePage.tsx @@ -1,24 +1,7 @@ import AboutMediaOverlay from '@/components/sections/about/AboutMediaOverlay'; import ContactCta from '@/components/sections/contact/ContactCta'; -import FeaturesBentoOriginal from '@/components/sections/features/FeaturesBento'; -import FeaturesRevealCardsBentoOriginal from '@/components/sections/features/FeaturesRevealCardsBento'; - -const fixBentoItems = (items: any) => Array.isArray(items) ? items.map((item: any) => { - if (item.bentoComponent === 'media-stack' && item.imageSrc) { - return { ...item, mediaItems: [{ imageSrc: item.imageSrc }] }; - } - return item; -}) : items; - -const fixProps = (props: any) => { - const newProps = { ...props }; - if (newProps.items) newProps.items = fixBentoItems(newProps.items); - if (newProps.features) newProps.features = fixBentoItems(newProps.features); - return newProps; -}; - -const FeaturesBento = (props: any) => ; -const FeaturesRevealCardsBento = (props: any) => ; +import FeaturesBento from '@/components/sections/features/FeaturesBento'; +import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento'; import HeroBillboardCarousel from '@/components/sections/hero/HeroBillboardCarousel'; import MetricsIconCards from '@/components/sections/metrics/MetricsIconCards'; import PricingSplitCards from '@/components/sections/pricing/PricingSplitCards'; @@ -29,244 +12,133 @@ import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; export default function HomePage() { return ( <> -
- +
+ - -
+ tag="Gastronomía Gallega" + title="Donde Galicia sabe como siempre debió saber" + description="Marisco fresco, recetas tradicionales y una terraza bajo parras que convierte cada comida en un recuerdo." + primaryButton={{ text: "Reservar mesa", href: "#reservas" }} + secondaryButton={{ text: "Ver carta", href: "#platos" }} + items={[ + { imageSrc: "http://img.b2bpic.net/free-photo/woman-blue-hat-sits-windowsill-cafe_8353-194.jpg" }, + { imageSrc: "http://img.b2bpic.net/free-photo/raw-oysters-with-lemon-ice_93675-128853.jpg" }, + { imageSrc: "http://img.b2bpic.net/free-photo/rustic-patio-with-deck-furniture-vegetation_23-2150698362.jpg" }, + { imageSrc: "http://img.b2bpic.net/free-photo/top-view-plate-delicious-calamari-prepared-with-ink-sauces_181624-33998.jpg" }, + { imageSrc: "http://img.b2bpic.net/free-photo/medieval-historical-rendering-meal_23-2151060267.jpg" }, + { imageSrc: "http://img.b2bpic.net/free-photo/caesar-salad-with-grilled-chicken-fillet_114579-3764.jpg" } + ]} + /> +
+
-
- +
+ - -
+ tag="Nuestra esencia" + title="No es solo comer. Es volver." + description="En O’Pereiro, cada plato cuenta una historia que empieza en el mar y termina en tu mesa. Aquí no seguimos tendencias. Cocinamos como siempre: con producto fresco, recetas de casa y tiempo." + imageSrc="http://img.b2bpic.net/free-photo/high-angle-raw-eggplants-still-life_23-2150561810.jpg" + /> +
+
-
- +
+ - -
+ tag="Menú" + title="Nuestros imprescindibles" + description="Platos que se terminan, y recuerdos que duran años." + items={[ + { title: "Rape", description: "Con patatas y salsa de langostinos", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/fried-fish-with-sauce-herbs_140725-2749.jpg" }, + { title: "Almejas", description: "A la marinera", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/squid-plate-with-knife-lemon-slices_23-2148461622.jpg" }, + { title: "Zamburiñas", description: "A la plancha", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/roast-chicken-with-red-wine-sauce_1203-9215.jpg" }, + { title: "Arroz", description: "Con bogavante", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/oyster_74190-5824.jpg" }, + { title: "Cocido", description: "Tradicional gallego", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/top-view-shrimp-toast-with-vegetable-salad-slice-lemon-with-glass-beer_141793-4126.jpg" }, + { title: "Pulpo", description: "A feira", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/top-view-assortment-bowls-with-tomatoes-clams_23-2148643601.jpg" }, + { title: "Vino", description: "D.O. Rías Baixas", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/raw-oysters-with-lemon-ice_93675-128857.jpg" } + ]} + /> +
+
-
- +
+ - -
+ tag="El ambiente" + title="Comer bajo las parras" + description="Nuestra terraza es uno de esos lugares que no se olvidan. Sombra natural, aire fresco y el sonido tranquilo de Galicia." + features={[ + { + title: "Sombra Natural", description: "Protección bajo parras reales.", bentoComponent: "media-stack", mediaItems: [ + { imageSrc: "http://img.b2bpic.net/free-photo/beautiful-influencer-scenery-with-flowers_23-2149172435.jpg" }, + { imageSrc: "http://img.b2bpic.net/free-photo/beautifully-decorated-interiors-beach-restaurant-day_181624-59566.jpg" }, + { imageSrc: "http://img.b2bpic.net/free-photo/traditional-delicious-gulas-dish-arrangement_23-2149072563.jpg" } + ] + } + ]} + /> +
+
- -
- +
+ - -
+ quote="Estaba espectacular. No dejamos nada en la olla. Repetimos todos los veranos. Relación calidad precio de 10." + rating={5} + author="Clientes fieles" + avatars={[ + { name: "Juan", imageSrc: "http://img.b2bpic.net/free-photo/successful-young-man-stylish-hat-relaxing-alone-cozy-cafeteria-lunch-break-looking-with-happy-expression_273609-1935.jpg" }, + { name: "Ana", imageSrc: "http://img.b2bpic.net/free-photo/smiling-waitress-talking-customers-using-touchpad-while-taking-orders-cafe_637285-3962.jpg" }, + { name: "Luis", imageSrc: "http://img.b2bpic.net/free-photo/friends-eating-pizza-side-view_23-2149872410.jpg" }, + { name: "Marta", imageSrc: "http://img.b2bpic.net/free-photo/front-view-woman-with-delicious-burger_23-2150347940.jpg" }, + { name: "Pedro", imageSrc: "http://img.b2bpic.net/free-photo/stylish-smiling-woman-colorful-outfit-retro-vintage-50-s-cafe-dancing-drinking-milk-shake-cocktail-blue-skirt-red-shirt-wearing-sunglasses-having-fun-cheerful-mood_285396-10399.jpg" } + ]} + /> +
+
-
- +
+ - -
+ tag="Para todos" + title="Un lugar para disfrutar" + description="Ideal para todas las ocasiones." + metrics={[ + { icon: "Users", title: "Familias", value: "Ideal" }, + { icon: "Star", title: "Terraza", value: "Única" }, + { icon: "Fish", title: "Marisco", value: "Fresco" } + ]} + /> +
+
-
- +
+ - -
+ tag="Atención" + text="Especialmente en verano y fines de semana. Las mesas en terraza son limitadas." + primaryButton={{ text: "Reservar mesa", href: "#" }} + secondaryButton={{ text: "Llamar ahora", href: "tel:000000000" }} + /> +
+
); -} +} \ No newline at end of file -- 2.49.1