From a697d7814caa556eaaf9eeaf2c145dc55fad0c7b Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 3 Jun 2026 14:17:44 +0000 Subject: [PATCH] Update src/app/page.tsx --- src/app/page.tsx | 552 +++++++++++++++++++++++++---------------------- 1 file changed, 289 insertions(+), 263 deletions(-) diff --git a/src/app/page.tsx b/src/app/page.tsx index e0114b5..c48cfb6 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -2,16 +2,24 @@ import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import ReactLenis from "lenis/react"; -import ContactCTA from '@/components/sections/contact/ContactCTA'; -import FeatureBento from '@/components/sections/feature/FeatureBento'; -import FooterBaseCard from '@/components/sections/footer/FooterBaseCard'; -import HeroSplitKpi from '@/components/sections/hero/HeroSplitKpi'; -import MetricCardThree from '@/components/sections/metrics/MetricCardThree'; +import dynamic from 'next/dynamic'; +import { Suspense } from 'react'; + +// Dynamically imported sections for code splitting and lazy loading +const DynamicContactCTA = dynamic(() => import('@/components/sections/contact/ContactCTA')); +const DynamicFeatureBento = dynamic(() => import('@/components/sections/feature/FeatureBento')); +const DynamicFooterBaseCard = dynamic(() => import('@/components/sections/footer/FooterBaseCard')); +const DynamicHeroSplitKpi = dynamic(() => import('@/components/sections/hero/HeroSplitKpi')); +const DynamicMetricCardThree = dynamic(() => import('@/components/sections/metrics/MetricCardThree')); +const DynamicPricingCardThree = dynamic(() => import('@/components/sections/pricing/PricingCardThree')); +const DynamicSocialProofOne = dynamic(() => import('@/components/sections/socialProof/SocialProofOne')); +const DynamicTestimonialAboutCard = dynamic(() => import('@/components/sections/about/TestimonialAboutCard')); +const DynamicTestimonialCardOne = dynamic(() => import('@/components/sections/testimonial/TestimonialCardOne')); + +// Keep static import for Navbar as it's critical for immediate interaction import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay'; -import PricingCardThree from '@/components/sections/pricing/PricingCardThree'; -import SocialProofOne from '@/components/sections/socialProof/SocialProofOne'; -import TestimonialAboutCard from '@/components/sections/about/TestimonialAboutCard'; -import TestimonialCardOne from '@/components/sections/testimonial/TestimonialCardOne'; + +// Lucide icons, these are small and used in multiple sections, keeping them static for now import { Activity, Apple, Award, Bell, Calendar, Crown, Flame, Heart, Settings, ShoppingBag, Signal, Sparkles, Star, Trophy, User, Users, Weight } from "lucide-react"; export default function LandingPage() { @@ -56,296 +64,314 @@ export default function LandingPage() {
- + + +
- + + +
- + + ]} + title="Tailored Programs for Every Goal" + description="Explore our diverse range of fitness programs, from high-intensity training to mindful yoga, designed to fit your unique needs and help you achieve optimal results." + tag="Our Services" + /> +
- + + +
- + + +
- + + id: "elite", badge: "Ultimate", badgeIcon: Crown, + price: "$129/month", name: "Elite Membership", buttons: [ + { + text: "Choose Elite", href: "#contact"}, + ], + features: [ + "24/7 Gym Access", "All Group Classes", "Personal Training Sessions (4/month)", "Custom Meal Plan", "Priority Booking"], + }, + ]} + title="Find Your Perfect Fit" + description="Choose from our flexible membership options, designed to provide maximum value and access to all our state-of-the-art facilities and classes." + tag="Membership Plans" + /> +
- + + +
- + + +
-- 2.49.1