From b2197e23dd4201d8d7e19d908ea47ba8fc3cd62f Mon Sep 17 00:00:00 2001 From: bender Date: Mon, 9 Mar 2026 16:23:39 +0000 Subject: [PATCH] Update src/app/page.tsx --- src/app/page.tsx | 562 ++++++++++------------------------------------- 1 file changed, 111 insertions(+), 451 deletions(-) diff --git a/src/app/page.tsx b/src/app/page.tsx index ccecf78..61d37b1 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,502 +1,162 @@ "use client"; +import React from "react"; +import { ThemeProvider } from "@/components/theme/ThemeProvider"; import NavbarStyleApple from "@/components/navbar/NavbarStyleApple/NavbarStyleApple"; -import HeroLogoBillboardSplit from "@/components/sections/hero/HeroLogoBillboardSplit"; +import HeroBillboardGallery from "@/components/sections/hero/HeroBillboardGallery"; import SplitAbout from "@/components/sections/about/SplitAbout"; -import ProductCardOne from "@/components/sections/product/ProductCardOne"; -import FeatureCardTwentyFour from "@/components/sections/feature/FeatureCardTwentyFour"; -import TestimonialCardThirteen from "@/components/sections/testimonial/TestimonialCardThirteen"; -import PricingCardOne from "@/components/sections/pricing/PricingCardOne"; -import SocialProofOne from "@/components/sections/socialProof/SocialProofOne"; -import FaqSplitText from "@/components/sections/faq/FaqSplitText"; -import FooterLogoEmphasis from "@/components/sections/footer/FooterLogoEmphasis"; -import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; -import { Award, CheckCircle, Crown, Heart, Shield, Sparkles, Calendar, Clock, Users } from "lucide-react"; -import React, { useState, useEffect } from "react"; +import FeatureCardSix from "@/components/sections/feature/FeatureCardSix"; +import TestimonialCardTwelve from "@/components/sections/testimonial/TestimonialCardTwelve"; +import ContactText from "@/components/sections/contact/ContactText"; +import FooterLogoReveal from "@/components/sections/footer/FooterLogoReveal"; +import { Sparkles, CheckCircle, Heart } from "lucide-react"; -interface TimeSlot { - time: string; - available: boolean; -} +const navItems = [ + { name: "Home", id: "/" }, + { name: "About", id: "#about" }, + { name: "Features", id: "#features" }, + { name: "Testimonials", id: "#testimonials" }, + { name: "Contact", id: "#contact" }, +]; -interface DaySlots { - date: string; - day: string; - slots: TimeSlot[]; -} +const heroMediaItems = [ + { imageSrc: "asset://beauty-product-1", imageAlt: "Premium cosmetics collection" }, + { imageSrc: "asset://beauty-product-2", imageAlt: "Natural skincare products" }, + { imageSrc: "asset://beauty-product-3", imageAlt: "Luxury beauty essentials" }, + { imageSrc: "asset://beauty-product-4", imageAlt: "Cruelty-free cosmetics" }, + { imageSrc: "asset://beauty-product-5", imageAlt: "Dermatologist-tested skincare" }, +]; -export default function LandingPage() { - const [calendarData, setCalendarData] = useState([]); - const [selectedDate, setSelectedDate] = useState(null); - const [selectedSlot, setSelectedSlot] = useState(null); +const aboutBulletPoints = [ + { + title: "Natural Ingredients", description: "Crafted with premium natural ingredients sourced responsibly from around the world", icon: Sparkles, + }, + { + title: "Dermatologist-Tested", description: "All products are rigorously tested and approved by leading dermatologists", icon: CheckCircle, + }, + { + title: "Cruelty-Free", description: "100% cruelty-free and ethically produced for conscious beauty lovers", icon: Heart, + }, +]; - useEffect(() => { - // Generate availability calendar for next 7 days - const generateCalendar = () => { - const days: DaySlots[] = []; - const today = new Date(); +const features = [ + { + id: 1, + title: "Cleanse & Purify", description: "Our gentle cleansing formulas remove impurities while maintaining skin's natural balance for a fresh, radiant complexion", imageSrc: "asset://feature-cleanse"}, + { + id: 2, + title: "Nourish & Hydrate", description: "Rich moisturizing treatments infused with antioxidants and vitamins to deeply hydrate and restore skin vitality", imageSrc: "asset://feature-nourish"}, + { + id: 3, + title: "Protect & Glow", description: "Advanced sun protection and brightening serums that shield your skin while enhancing natural radiance", imageSrc: "asset://feature-protect"}, +]; - for (let i = 0; i < 7; i++) { - const date = new Date(today); - date.setDate(date.getDate() + i); - const dateStr = date.toISOString().split('T')[0]; - const dayName = date.toLocaleDateString('en-US', { weekday: 'short' }); - - const slots: TimeSlot[] = []; - const hours = [9, 10, 11, 13, 14, 15, 16, 17]; - - for (const hour of hours) { - // Simulate availability - 80% slots available - const available = Math.random() > 0.2; - slots.push({ - time: `${hour.toString().padStart(2, '0')}:00`, - available, - }); - } - - days.push({ - date: dateStr, - day: dayName, - slots, - }); - } - - setCalendarData(days); - if (days.length > 0) { - setSelectedDate(days[0].date); - } - }; - - generateCalendar(); - }, []); - - const getAvailableCount = (date: string): number => { - const day = calendarData.find(d => d.date === date); - return day ? day.slots.filter(s => s.available).length : 0; - }; - - const getSelectedDaySlots = (): TimeSlot[] => { - const day = calendarData.find(d => d.date === selectedDate); - return day ? day.slots : []; - }; +const testimonials = [ + { + id: "1", name: "Sarah Johnson", imageSrc: "asset://testimonial-avatar-1"}, + { + id: "2", name: "Emily Chen", imageSrc: "asset://testimonial-avatar-2"}, + { + id: "3", name: "Jessica Martinez", imageSrc: "asset://testimonial-avatar-3"}, + { + id: "4", name: "Amanda Wilson", imageSrc: "asset://testimonial-avatar-4"}, +]; +export default function Page() { return ( - +
-
-
- -
-
-
-
-
- +
-
-
- {/* Header */} -
-
- - Consultation Booking -
-

Schedule Your Personal Consultation

-

Book a consultation with our beauty experts to find the perfect products and routine for your skin type.

-
- -
- {/* Calendar */} -
-
-

- - Available Dates -

- -
- {calendarData.map((day) => ( - - ))} -
- - {/* Time Slots */} -
-

- - Available Times -

-
- {getSelectedDaySlots().map((slot, idx) => ( - - ))} -
-
-
-
- - {/* Booking Summary */} -
-
-

- - Booking Summary -

- -
-
-

Selected Date

-

- {selectedDate - ? new Date(selectedDate).toLocaleDateString('en-US', { weekday: 'long', month: 'long', day: 'numeric' }) - : 'No date selected'} -

-
- -
-

Selected Time

-

- {selectedSlot ? selectedSlot : 'No time selected'} -

-
- -
-

Consultation Type

-

30-Minute Personal Consultation

-
- -
-

What to Expect:

-
    -
  • - - Personalized skin analysis -
  • -
  • - - Product recommendations -
  • -
  • - - Custom routine guidance -
  • -
-
- - -
-
-
-
-
-
- -
- -
- -
- -
- - +
); }