import { useEffect, useRef, useState } from "react"; import dynamic from 'next/dynamic'; import allNavData from "../../../data/navData.json"; import ScrollTop from "../ScrollTop"; import { Toaster } from "react-hot-toast"; import Preloader from "@/components/preloader/Preloader"; import CommonAnimation from "../CommonAnimation"; import ScrollSmootherComponents from "../ScrollSmootherComponents"; // Dynamic imports for headers and footers const Header1 = dynamic(() => import("@/components/header/Header1")); const Header2 = dynamic(() => import("@/components/header/Header2")); const Header3 = dynamic(() => import("@/components/header/Header3")); const Header4 = dynamic(() => import("@/components/header/Header4")); const Header5 = dynamic(() => import("@/components/header/Header5")); const Footer1 = dynamic(() => import("@/components/footer/Footer1")); const Footer2 = dynamic(() => import("@/components/footer/Footer2")); const Footer3 = dynamic(() => import("@/components/footer/Footer3")); const Footer4 = dynamic(() => import("@/components/footer/Footer4")); const Footer5 = dynamic(() => import("@/components/footer/Footer5")); // Header component map for better performance const headerComponents = { header1: Header1, header2: Header2, header3: Header3, header4: Header4, header5: Header5 }; // Footer component map for better performance const footerComponents = { footer1: Footer1, footer2: Footer2, footer3: Footer3, footer4: Footer4, footer5: Footer5 }; const HeaderContent = ({ header, navData }) => { const HeaderComponent = headerComponents[header] || Header3; return header === "none" ? null : ; }; const FooterContent = ({ footer }) => { const FooterComponent = footerComponents[footer] || Footer3; return footer === "none" ? null : ; }; export default function RootLayout({ children, header = "", footer = "", defaultMode = "", }) { const [mode, setMode] = useState(defaultMode); const [navData, setNavData] = useState({}); useEffect(() => { setNavData(allNavData); if (mode === "dark") { document.body.classList.add("dark"); } else { document.body.classList.remove("dark"); } }, [mode]); return (
{children}
); }