diff --git a/src/app/appointments/page.tsx b/src/app/appointments/page.tsx new file mode 100644 index 0000000..9059e4c --- /dev/null +++ b/src/app/appointments/page.tsx @@ -0,0 +1,109 @@ +"use client"; + +import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import ReactLenis from "lenis/react"; +import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay'; +import FooterLogoReveal from '@/components/sections/footer/FooterLogoReveal'; +import ContactSplitForm from '@/components/sections/contact/ContactSplitForm'; +import { useState } from 'react'; +import { CheckCircle } from 'lucide-react'; + +export default function AppointmentsPage() { + const [isBooked, setIsBooked] = useState(false); + const [formData, setFormData] = useState>({}); + + const handleSubmit = (data: Record) => { + setFormData(data); + setIsBooked(true); + // In a real app, you would send this data to a backend for actual booking + console.log("Booking data:", data); + }; + + const navItems = [ + { name: "Home", id: "/" }, + { name: "About Us", id: "/#about" }, + { name: "Services", id: "/#services" }, + { name: "Reviews", id: "/#reviews" }, + { name: "FAQ", id: "/#faq" }, + { name: "Contact", id: "/#contact" }, + { name: "Book Now", id: "/appointments" } + ]; + + return ( + + + + +
+ {!isBooked ? ( +
+ +
+ ) : ( +
+
+ +

Appointment Confirmed!

+

Thank you, {formData.fullName || 'Valued Customer'}!

+

Your appointment request for {formData.movingDate} at {formData.timeSlot} has been received. We will contact you shortly at {formData.email} or {formData.phone} to finalize the details.

+ + Go to Home Page + +
+
+ )} +
+ + +
+
+ ); +} \ No newline at end of file diff --git a/src/app/booking/page.tsx b/src/app/booking/page.tsx new file mode 100644 index 0000000..0edc07a --- /dev/null +++ b/src/app/booking/page.tsx @@ -0,0 +1,75 @@ +"use client"; + +import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import ReactLenis from "lenis/react"; +import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay'; +import HeroSignup from '@/components/sections/hero/HeroSignup'; +import FooterLogoReveal from '@/components/sections/footer/FooterLogoReveal'; + +export default function BookingPage() { + const navItems = [ + { name: "Home", id: "#home" }, + { name: "About Us", id: "#about" }, + { name: "Services", id: "#services" }, + { name: "Reviews", id: "#reviews" }, + { name: "FAQ", id: "#faq" }, + { name: "Contact", id: "#contact" }, + { name: "Book Now", id: "/booking" }, + ]; + + return ( + + + + +
+ { + console.log("Booking email submitted:", email); + alert(`Booking request for ${email} received! We'll contact you soon.`); + }} + /> +
+ + +
+
+ ); +} \ No newline at end of file diff --git a/src/app/page.tsx b/src/app/page.tsx index 35975e8..cf290e5 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -44,11 +44,13 @@ export default function LandingPage() { name: "FAQ", id: "#faq"}, { name: "Contact", id: "#contact"}, + { + name: "Book Now", id: "/booking"}, ]} logoSrc="http://img.b2bpic.net/free-photo/plug-hybrid-electric-vehicle-using-batteries-fuel-power-electric-motor_482257-118136.jpg" brandName="ABC Movers Riverside" button={{ - text: "Get a Free Quote", href: "#contact"}} + text: "Get a Free Quote", href: "/booking"}} /> @@ -135,17 +137,17 @@ export default function LandingPage() { useInvertedBackground={false} products={[ { - id: "apartment-move", name: "Apartment Move", price: "Starting at $399", imageSrc: "http://img.b2bpic.net/free-photo/romantic-people-relaxing-together-living-room-floor-talking-about-decorations-future-family-enjoying-relocation-taking-break-after-moving-relationship-achievement-top-view_482257-44774.jpg", imageAlt: "Movers carrying sofa into apartment"}, + id: "apartment-move", name: "Apartment Move", price: "Starting at $399", imageSrc: "http://img.b2bpic.net/free-photo/romantic-people-relaxing-together-living-room-floor-talking-about-decorations-future-family-enjoying-relocation-taking-break-after-moving-relationship-achievement-top-view_482257-44774.jpg", imageAlt: "Movers carrying sofa into apartment", priceButtonProps: { text: "Book Now", href: "/booking"}}, { - id: "house-relocation", name: "House Relocation", price: "Starting at $799", imageSrc: "http://img.b2bpic.net/free-photo/woman-handling-belongings-cardboard-boxes-moving-new-house_23-2149086804.jpg", imageAlt: "Family house moving truck"}, + id: "house-relocation", name: "House Relocation", price: "Starting at $799", imageSrc: "http://img.b2bpic.net/free-photo/woman-handling-belongings-cardboard-boxes-moving-new-house_23-2149086804.jpg", imageAlt: "Family house moving truck", priceButtonProps: { text: "Book Now", href: "/booking"}}, { - id: "office-move", name: "Office Move", price: "Custom Quote", imageSrc: "http://img.b2bpic.net/free-photo/top-view-warehouse-supervisor-packing-client-clothes-order-cardboard-box-while-checking-shipping-details-laptop-computer-team-working-storehouse-delivery-department_482257-66036.jpg", imageAlt: "Office furniture movers"}, + id: "office-move", name: "Office Move", price: "Custom Quote", imageSrc: "http://img.b2bpic.net/free-photo/top-view-warehouse-supervisor-packing-client-clothes-order-cardboard-box-while-checking-shipping-details-laptop-computer-team-working-storehouse-delivery-department_482257-66036.jpg", imageAlt: "Office furniture movers", priceButtonProps: { text: "Book Now", href: "/booking"}}, { - id: "packing-service", name: "Full Packing Service", price: "Per Hour + Materials", imageSrc: "http://img.b2bpic.net/free-photo/crop-man-carrying-things-box_23-2147782375.jpg", imageAlt: "Packing fragile items"}, + id: "packing-service", name: "Full Packing Service", price: "Per Hour + Materials", imageSrc: "http://img.b2bpic.net/free-photo/crop-man-carrying-things-box_23-2147782375.jpg", imageAlt: "Packing fragile items", priceButtonProps: { text: "Book Now", href: "/booking"}}, { - id: "storage-solutions", name: "Secure Storage", price: "Starting at $99/month", imageSrc: "http://img.b2bpic.net/free-photo/still-life-yoga-equipment_23-2151725266.jpg", imageAlt: "Storage unit interior"}, + id: "storage-solutions", name: "Secure Storage", price: "Starting at $99/month", imageSrc: "http://img.b2bpic.net/free-photo/still-life-yoga-equipment_23-2151725266.jpg", imageAlt: "Storage unit interior", priceButtonProps: { text: "Book Now", href: "/booking"}}, { - id: "specialty-transport", name: "Specialty Item Transport", price: "Custom Quote", imageSrc: "http://img.b2bpic.net/free-photo/young-delivery-man-blue-polo-blue-cap-white-jeans-backpack-holding-box-yellow_140725-14687.jpg", imageAlt: "Movers transporting a piano"}, + id: "specialty-transport", name: "Specialty Item Transport", price: "Custom Quote", imageSrc: "http://img.b2bpic.net/free-photo/young-delivery-man-blue-polo-blue-cap-white-jeans-backpack-holding-box-yellow_140725-14687.jpg", imageAlt: "Movers transporting a piano", priceButtonProps: { text: "Book Now", href: "/booking"}}, ]} title="Our Tailored Moving & Storage Packages" description="Choose from our flexible service options designed to fit your budget and specific relocation requirements. We offer transparent pricing with no hidden fees." @@ -214,10 +216,10 @@ export default function LandingPage() { variant: "radial-gradient"}} tag="Contact Us" title="Ready for a Smooth, Stress-Free Move?" - description="Get your free, no-obligation moving quote today! Our friendly team is ready to assist you with personalized service and expert advice." + description="Get your free, no-obligation moving quote or book your appointment today! Our friendly team is ready to assist you with personalized service and expert advice and explore flexible appointment booking options." buttons={[ { - text: "Get My Free Quote", href: "#"}, + text: "Get My Free Quote", href: "/booking"}, { text: "Call Now: (800) 771-0151", href: "tel:+18007710151"}, ]} @@ -237,4 +239,4 @@ export default function LandingPage() { ); -} +} \ No newline at end of file