"use client"; import { useEffect, useState } from "react"; import { Navbar } from "@/features/home/components/Navbar"; import { Hero } from "@/features/home/components/Hero"; import dynamic from "next/dynamic"; import { Button } from "@/components/ui/button"; import { Sparkles } from "lucide-react"; // Dynamically load below-the-fold components to improve initial response time and rendering speed const Features = dynamic(() => import("@/features/home/components/Features").then(mod => mod.Features), { ssr: true }); const HowItWorks = dynamic(() => import("@/features/home/components/HowItWorks").then(mod => mod.HowItWorks), { ssr: true }); const Stats = dynamic(() => import("@/features/home/components/Stats").then(mod => mod.Stats), { ssr: true }); const Footer = dynamic(() => import("@/features/home/components/Footer").then(mod => mod.Footer), { ssr: true }); function LoadingScreen({ onComplete }: { onComplete: () => void }) { const [progress, setProgress] = useState(0); useEffect(() => { const interval = setInterval(() => { setProgress((prev) => { if (prev >= 100) { clearInterval(interval); setTimeout(onComplete, 300); return 100; } return prev + Math.random() * 15; }); }, 100); return () => clearInterval(interval); }, [onComplete]); return (
Loading amazing experience...