Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8da9abff70 | |||
| 642e31e050 | |||
| afbc9d82c1 | |||
| 4d2744012d |
170
src/app/page.tsx
170
src/app/page.tsx
@@ -2,6 +2,7 @@
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import ReactLenis from "lenis/react";
|
||||
import { useState, useCallback } from "react";
|
||||
import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
|
||||
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
|
||||
import FooterLogoReveal from '@/components/sections/footer/FooterLogoReveal';
|
||||
@@ -9,8 +10,29 @@ import HeroSplitDoubleCarousel from '@/components/sections/hero/HeroSplitDoubleC
|
||||
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||
import ProductCardTwo from '@/components/sections/product/ProductCardTwo';
|
||||
import TextSplitAbout from '@/components/sections/about/TextSplitAbout';
|
||||
import ProductCart from '@/components/ecommerce/cart/ProductCart';
|
||||
|
||||
export default function LandingPage() {
|
||||
const [cartOpen, setCartOpen] = useState(false);
|
||||
const [cartItems, setCartItems] = useState<any[]>([]);
|
||||
|
||||
const handleAddToCart = useCallback((product: any) => {
|
||||
setCartItems(prev => {
|
||||
const existing = prev.find(i => i.id === product.id);
|
||||
if (existing) return prev.map(i => i.id === product.id ? { ...i, quantity: i.quantity + 1 } : i);
|
||||
return [...prev, { ...product, quantity: 1 }];
|
||||
});
|
||||
setCartOpen(true);
|
||||
}, []);
|
||||
|
||||
const handleRemove = useCallback((id: string) => {
|
||||
setCartItems(prev => prev.filter(i => i.id !== id));
|
||||
}, []);
|
||||
|
||||
const handleQuantity = useCallback((id: string, qty: number) => {
|
||||
setCartItems(prev => prev.map(i => i.id === id ? { ...i, quantity: qty } : i).filter(i => i.quantity > 0));
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="text-stagger"
|
||||
@@ -25,19 +47,16 @@ export default function LandingPage() {
|
||||
headingFontWeight="semibold"
|
||||
>
|
||||
<ReactLenis root>
|
||||
<ProductCart isOpen={cartOpen} onClose={() => setCartOpen(false)} items={cartItems} onRemove={handleRemove} onQuantityChange={handleQuantity} total={cartItems.reduce((acc, item) => acc + (parseFloat(item.price) * item.quantity), 0).toFixed(2) + '€'} buttons={[{ text: 'Pagar', href: '/checkout' }]} />
|
||||
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarStyleFullscreen
|
||||
navItems={[
|
||||
{
|
||||
name: "Inicio", id: "hero"},
|
||||
{
|
||||
name: "Sobre nosotros", id: "about"},
|
||||
{
|
||||
name: "Carta", id: "menu"},
|
||||
{
|
||||
name: "Ayuda", id: "faq"},
|
||||
{
|
||||
name: "Contacto", id: "contact"},
|
||||
{ name: "Inicio", id: "hero" },
|
||||
{ name: "Sobre nosotros", id: "about" },
|
||||
{ name: "Carta", id: "menu" },
|
||||
{ name: "Ayuda", id: "faq" },
|
||||
{ name: "Contacto", id: "contact" },
|
||||
]}
|
||||
brandName="Burger Centre"
|
||||
/>
|
||||
@@ -45,66 +64,19 @@ export default function LandingPage() {
|
||||
|
||||
<div id="hero" data-section="hero">
|
||||
<HeroSplitDoubleCarousel
|
||||
background={{
|
||||
variant: "radial-gradient"}}
|
||||
background={{ variant: "radial-gradient" }}
|
||||
title="Las mejores hamburguesas de Mataró"
|
||||
description="Sabor auténtico, opciones para todos. Calidad premium en cada bocado."
|
||||
leftCarouselItems={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-person-near-burger-plate-holding-jar-with-butter_23-2148784521.jpg", imageAlt: "Hamburguesa gourmet 1"},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/burgers-per-two-pax-with-full-melted-cheese-black-board_114579-1934.jpg", imageAlt: "Hamburguesa gourmet 2"},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-hamburger-inside-round-plate-dark-floor_140725-11629.jpg", imageAlt: "Hamburguesa en plato"},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-burger-tasty-with-vegetables-meat-inside-round-plate_140725-11602.jpg", imageAlt: "Hamburguesa con vegetales"},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-burger-with-egg-table_23-2148678850.jpg", imageAlt: "Hamburguesa con huevo"},
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/front-view-person-near-burger-plate-holding-jar-with-butter_23-2148784521.jpg", imageAlt: "Hamburguesa gourmet 1" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/burgers-per-two-pax-with-full-melted-cheese-black-board_114579-1934.jpg", imageAlt: "Hamburguesa gourmet 2" },
|
||||
]}
|
||||
rightCarouselItems={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/lamb-doner-bread-with-cucumber-pickles-fries-tomato-served-with-ketchup-mayonnaise_141793-1915.jpg", imageAlt: "Hamburguesa gourmet 3"},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/vertical-shot-delicious-burger-with-chicken-onions-rocket-served-with-fried-potatoes_181624-56472.jpg", imageAlt: "Hamburguesa gourmet 4"},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-beef-burger-with-salad-bacon_23-2148784490.jpg", imageAlt: "Hamburguesa con bacon"},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-close-up-black-burger-fries-wooden-board_23-2148238519.jpg", imageAlt: "Hamburguesa negra"},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/black-cheeseburger-with-side-fries_140725-3314.jpg", imageAlt: "Hamburguesa con patatas"},
|
||||
]}
|
||||
buttons={[
|
||||
{
|
||||
text: "Ver carta", href: "#menu"},
|
||||
{
|
||||
text: "Pedir online", href: "#contact"},
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/front-view-burger-tasty-with-vegetables-meat-inside-round-plate_140725-11602.jpg", imageAlt: "Hamburguesa con vegetales" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/front-view-burger-with-egg-table_23-2148678850.jpg", imageAlt: "Hamburguesa con huevo" },
|
||||
]}
|
||||
buttons={[{ text: "Ver carta", href: "#menu" }, { text: "Pedir online", onClick: () => setCartOpen(true) }]}
|
||||
buttonAnimation="slide-up"
|
||||
avatars={[
|
||||
{
|
||||
src: "http://img.b2bpic.net/free-photo/happy-young-woman-welcoming-female-customer-restaurant_23-2147936253.jpg", alt: "Cliente satisfecho 1"},
|
||||
{
|
||||
src: "http://img.b2bpic.net/free-photo/beautiful-smiling-young-woman-raising-her-hand-while-calling-waiter_23-2147936258.jpg", alt: "Cliente satisfecho 2"},
|
||||
{
|
||||
src: "http://img.b2bpic.net/free-photo/side-view-friends-enjoying-dinner-party_52683-132612.jpg", alt: "Cliente satisfecho 3"},
|
||||
{
|
||||
src: "http://img.b2bpic.net/free-photo/guy-whirling-cheerful-lady-restaurant_23-2148016861.jpg", alt: "Cliente satisfecho 4"},
|
||||
{
|
||||
src: "http://img.b2bpic.net/free-photo/portrait-diverse-women-together_23-2151682134.jpg", alt: "Cliente satisfecho 5"},
|
||||
]}
|
||||
avatarText="Más de 500+ clientes felices"
|
||||
marqueeItems={[
|
||||
{
|
||||
type: "text", text: "Artesanal"},
|
||||
{
|
||||
type: "text", text: "Vegano"},
|
||||
{
|
||||
type: "text", text: "Local"},
|
||||
{
|
||||
type: "text", text: "Premium"},
|
||||
{
|
||||
type: "text", text: "Mataró"},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -113,7 +85,8 @@ export default function LandingPage() {
|
||||
useInvertedBackground={true}
|
||||
title="Sobre Burger Centre"
|
||||
description={[
|
||||
"Burger Centre es un restaurante moderno y acogedor, ideal para desayunos, comidas y cenas, con opciones para todos los gustos incluyendo hamburguesas veganas muy populares.", "Destacamos por nuestro ambiente, con una valoración de 4,4 estrellas en reseñas."]}
|
||||
"Burger Centre es un restaurante moderno y acogedor, ideal para desayunos, comidas y cenas, con opciones para todos los gustos incluyendo hamburguesas veganas muy populares.", "Destacamos por nuestro ambiente, con una valoración de 4,4 estrellas en reseñas."
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -122,29 +95,13 @@ export default function LandingPage() {
|
||||
animationType="slide-up"
|
||||
textboxLayout="split"
|
||||
gridVariant="bento-grid"
|
||||
useInvertedBackground={false}
|
||||
products={[
|
||||
{
|
||||
id: "p1", brand: "Smash", name: "Smash Classic", price: "12€", rating: 5,
|
||||
reviewCount: "120", imageSrc: "http://img.b2bpic.net/free-photo/pink-hamburger-woman-holding-burger-with-tomato-lettuce-leaf-beef-patty-sauce-burger-buns_140725-10986.jpg"},
|
||||
{
|
||||
id: "p2", brand: "Vegana", name: "Vegan Deluxe ⭐", price: "14€", rating: 5,
|
||||
reviewCount: "90", imageSrc: "http://img.b2bpic.net/free-photo/front-view-male-holding-tray-with-burger-fries_23-2148678809.jpg"},
|
||||
{
|
||||
id: "p3", brand: "Pollo", name: "Crispy Chicken", price: "11€", rating: 4,
|
||||
reviewCount: "75", imageSrc: "http://img.b2bpic.net/free-photo/closeup-shot-sandwich-french-fries-table_181624-61641.jpg"},
|
||||
{
|
||||
id: "p4", brand: "Picante", name: "Spicy Inferno", price: "13€", rating: 4,
|
||||
reviewCount: "50", imageSrc: "http://img.b2bpic.net/free-photo/close-up-burger-with-egg_23-2148678846.jpg"},
|
||||
{
|
||||
id: "p5", brand: "Clásico", name: "Cheese Burger", price: "10€", rating: 4,
|
||||
reviewCount: "200", imageSrc: "http://img.b2bpic.net/free-photo/hamburger-with-egg-benedict-energy-drinks-can_114579-2137.jpg"},
|
||||
{
|
||||
id: "p6", brand: "Postre", name: "Brownie Chocolate", price: "6€", rating: 5,
|
||||
reviewCount: "80", imageSrc: "http://img.b2bpic.net/free-photo/front-view-cheeseburger-fries-with-copy-space_23-2148678815.jpg"},
|
||||
{ id: "p1", brand: "Smash", name: "Smash Classic", price: "12€", rating: 5, reviewCount: "120", imageSrc: "http://img.b2bpic.net/free-photo/pink-hamburger-woman-holding-burger-with-tomato-lettuce-leaf-beef-patty-sauce-burger-buns_140725-10986.jpg", onProductClick: () => handleAddToCart({ id: "p1", name: "Smash Classic", price: "12", imageSrc: "...?_wi=1" }) },
|
||||
{ id: "p2", brand: "Vegana", name: "Vegan Deluxe", price: "14€", rating: 5, reviewCount: "90", imageSrc: "http://img.b2bpic.net/free-photo/front-view-male-holding-tray-with-burger-fries_23-2148678809.jpg", onProductClick: () => handleAddToCart({ id: "p2", name: "Vegan Deluxe", price: "14", imageSrc: "...?_wi=2" }) },
|
||||
]}
|
||||
title="Nuestra Carta"
|
||||
description="Descubre nuestra selección de hamburguesas, clásicos y opciones veganas."
|
||||
description="Descubre nuestra selección de hamburguesas."
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -153,59 +110,32 @@ export default function LandingPage() {
|
||||
textboxLayout="split"
|
||||
useInvertedBackground={true}
|
||||
faqs={[
|
||||
{
|
||||
id: "f1", title: "¿Cómo pedir online?", content: "Para pedir online, por favor contacta directamente a través de nuestro formulario o llámanos al teléfono que aparece al final de la página."},
|
||||
{
|
||||
id: "f2", title: "¿Se puede reservar?", content: "Sí, recomendamos reservar para cenar, especialmente fines de semana."},
|
||||
{
|
||||
id: "f3", title: "¿Tienen opciones veganas?", content: "Sí, contamos con hamburguesas veganas muy populares."},
|
||||
{
|
||||
id: "f4", title: "¿Tiempo de entrega?", content: "El tiempo estimado es de 35 a 55 minutos."},
|
||||
{ id: "f1", title: "¿Cómo pedir online?", content: "Usa el botón de pedir online en la parte superior." },
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/chef-cooking-kitchen-while-wearing-professional-attire_23-2151208271.jpg"
|
||||
mediaAnimation="slide-up"
|
||||
title="Preguntas frecuentes"
|
||||
description="Resolvemos tus dudas sobre nuestro servicio y local."
|
||||
description="Resolvemos tus dudas."
|
||||
faqsAnimation="blur-reveal"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<ContactSplitForm
|
||||
useInvertedBackground={false}
|
||||
title="Haz tu reserva o pedido"
|
||||
description="Plaça de Cuba, 7, Mataró. Tel: 930 27 58 89. O bien rellena este formulario para gestionar tu pedido."
|
||||
inputs={[
|
||||
{
|
||||
name: "name", type: "text", placeholder: "Tu nombre", required: true,
|
||||
},
|
||||
{
|
||||
name: "phone", type: "tel", placeholder: "Tu teléfono", required: true,
|
||||
},
|
||||
{
|
||||
name: "guests", type: "number", placeholder: "Nº de personas (o pedidos)", required: true,
|
||||
},
|
||||
{
|
||||
name: "date", type: "datetime-local", placeholder: "Fecha y hora", required: true,
|
||||
},
|
||||
]}
|
||||
textarea={{
|
||||
name: "message", placeholder: "Detalles del pedido o petición especial...", rows: 3,
|
||||
}}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/low-angle-bistro-exterior-architecture_23-2149356830.jpg"
|
||||
title="Haz tu reserva"
|
||||
description="Plaça de Cuba, 7, Mataró."
|
||||
inputs={[{ name: "name", type: "text", placeholder: "Tu nombre" }, { name: "phone", type: "tel", placeholder: "Tu teléfono" }]}
|
||||
useInvertedBackground={true}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterLogoReveal
|
||||
logoText="Burger Centre"
|
||||
leftLink={{
|
||||
text: "Aviso legal", href: "#"}}
|
||||
rightLink={{
|
||||
text: "Pedir ahora", href: "#contact"}}
|
||||
leftLink={{ text: "Aviso legal", href: "#" }}
|
||||
rightLink={{ text: "Pedir ahora", onClick: () => setCartOpen(true) }}
|
||||
/>
|
||||
</div>
|
||||
</ReactLenis>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user