143 lines
5.3 KiB
TypeScript
143 lines
5.3 KiB
TypeScript
"use client";
|
|
|
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
|
import ReactLenis from "lenis/react";
|
|
import { useState } from "react";
|
|
import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
|
|
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
|
|
import FooterBaseCard from '@/components/sections/footer/FooterBaseCard';
|
|
import HeroSplitTestimonial from '@/components/sections/hero/HeroSplitTestimonial';
|
|
import MediaAbout from '@/components/sections/about/MediaAbout';
|
|
import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple';
|
|
import PricingCardThree from '@/components/sections/pricing/PricingCardThree';
|
|
import ProductCardThree from '@/components/sections/product/ProductCardThree';
|
|
import TestimonialCardFive from '@/components/sections/testimonial/TestimonialCardFive';
|
|
|
|
export default function LandingPage() {
|
|
const [order, setOrder] = useState({ weight: 0, flavor: "" });
|
|
|
|
const handleQuantityChange = (id: string, qty: number) => {
|
|
// Logic for 3lb weight limit restriction
|
|
console.log(`Setting product ${id} to ${qty} lbs`);
|
|
};
|
|
|
|
return (
|
|
<ThemeProvider
|
|
defaultButtonVariant="elastic-effect"
|
|
defaultTextAnimation="entrance-slide"
|
|
borderRadius="rounded"
|
|
contentWidth="small"
|
|
sizing="largeSizeMediumTitles"
|
|
background="circleGradient"
|
|
cardStyle="solid"
|
|
primaryButtonStyle="double-inset"
|
|
secondaryButtonStyle="glass"
|
|
headingFontWeight="extrabold"
|
|
>
|
|
<ReactLenis root>
|
|
<div id="nav" data-section="nav">
|
|
<NavbarStyleApple
|
|
navItems={[
|
|
{ name: "Home", id: "hero" },
|
|
{ name: "About", id: "about" },
|
|
{ name: "Products", id: "products" },
|
|
{ name: "Catering", id: "pricing" },
|
|
{ name: "Contact", id: "contact" },
|
|
]}
|
|
brandName="Artisanal Bakes"
|
|
/>
|
|
</div>
|
|
|
|
<div id="hero" data-section="hero">
|
|
<HeroSplitTestimonial
|
|
useInvertedBackground={true}
|
|
background={{ variant: "gradient-bars" }}
|
|
title="Artisanal Baking, Elevated Every Day"
|
|
description="Handcrafted pastries and custom cakes made from premium ingredients. Order online or visit us for an exceptional tasting experience."
|
|
testimonials={[]}
|
|
imageSrc="http://img.b2bpic.net/free-photo/delicious-homemade-bread-table_23-2148361967.jpg?_wi=2"
|
|
mediaAnimation="blur-reveal"
|
|
/>
|
|
</div>
|
|
|
|
<div id="about" data-section="about">
|
|
<MediaAbout
|
|
useInvertedBackground={false}
|
|
title="Craftsmanship at Our Core"
|
|
description={["We believe that the best baked goods start with patience, quality ingredients, and traditional techniques. Every pastry is a testament to our passion."]}
|
|
imageSrc="http://img.b2bpic.net/free-photo/chef-using-flour-knead-dough-so-it-won-t-stick-hands_23-2148742217.jpg?_wi=2"
|
|
/>
|
|
</div>
|
|
|
|
<div id="products" data-section="products">
|
|
<ProductCardThree
|
|
title="Custom Order Form"
|
|
description="Select your items and weight. Orders are limited to 3lbs max for custom designs."
|
|
textboxLayout="default"
|
|
gridVariant="four-items-2x2-equal-grid"
|
|
animationType="slide-up"
|
|
useInvertedBackground={true}
|
|
products={[
|
|
{ id: "1", name: "Custom Cake Base", price: "$50", imageSrc: "http://img.b2bpic.net/free-photo/delicious-baked-pastry-bangle-formed-inside-pan-bright-pastry-cookie-biscuit-sweet-sugar_140725-32072.jpg?_wi=2", onQuantityChange: handleQuantityChange },
|
|
{ id: "2", name: "Specialty Filling", price: "$10", imageSrc: "http://img.b2bpic.net/free-photo/baker-holds-homemade-craft-bread-his-hands_166373-749.jpg?_wi=2", onQuantityChange: handleQuantityChange },
|
|
]}
|
|
/>
|
|
</div>
|
|
|
|
<div id="testimonials" data-section="testimonials">
|
|
<TestimonialCardFive
|
|
textboxLayout="split"
|
|
useInvertedBackground={false}
|
|
testimonials={[]}
|
|
title="Loved by Our Community"
|
|
description="Discover why our patrons choose us for their daily delights."
|
|
/>
|
|
</div>
|
|
|
|
<div id="faq" data-section="faq">
|
|
<FaqSplitMedia
|
|
textboxLayout="default"
|
|
useInvertedBackground={true}
|
|
faqs={[]}
|
|
title="Frequently Asked Questions"
|
|
description="Have questions about our catering, ingredients, or online orders?"
|
|
faqsAnimation="slide-up"
|
|
/>
|
|
</div>
|
|
|
|
<div id="pricing" data-section="pricing">
|
|
<PricingCardThree
|
|
animationType="slide-up"
|
|
textboxLayout="default"
|
|
useInvertedBackground={false}
|
|
plans={[]}
|
|
title="Catering Packages"
|
|
description="Perfect for office meetings or elegant social events."
|
|
/>
|
|
</div>
|
|
|
|
<div id="contact" data-section="contact">
|
|
<ContactSplitForm
|
|
useInvertedBackground={true}
|
|
title="Visit or Order With Us"
|
|
description="Drop us a note for inquiries or catering requests."
|
|
inputs={[
|
|
{ name: "name", type: "text", placeholder: "Name" },
|
|
{ name: "email", type: "email", placeholder: "Email" },
|
|
]}
|
|
textarea={{ name: "message", placeholder: "Your message" }}
|
|
imageSrc="http://img.b2bpic.net/free-photo/view-beautiful-woman-looking-away-with-coffee_197531-33702.jpg"
|
|
/>
|
|
</div>
|
|
|
|
<div id="footer" data-section="footer">
|
|
<FooterBaseCard
|
|
logoText="Artisanal Bakes"
|
|
columns={[]}
|
|
/>
|
|
</div>
|
|
</ReactLenis>
|
|
</ThemeProvider>
|
|
);
|
|
}
|