import Footer from "@/components/footer/Footer";
import NavBar from "@/components/navBar/NavBar";
import ScrollToTop from "@/components/scrollToTop/ScrollToTop";
import ThemeWrapper from "@/components/themeWrapper/ThemeWrapper";
import WebSettingProvider from "@/context/webSettingContext";
import instance from "@/utils/instance";
import { Metadata } from "next";
import "react-loading-skeleton/dist/skeleton.css";
import Script from "next/script";

// react-datepicker css
import "react-datepicker/dist/react-datepicker.css";

// slick css
import "slick-carousel/slick/slick.css";

//global css
import "./globals.css";
import DynamicFavicon from "@/components/dynamicFavicon/DynamicFavicon";
import BottomNavBar from "@/components/navBar/BottomNavBar";
export async function generateMetadata(): Promise<Metadata> {
  try {
    const { data } = await instance.get("/metadata");
    const { title, image, meta_keyword, meta_description, site_name, favicon } = data?.data || {};
    return {
      title: title || "Default Title",
      description: meta_description || "Default Description",
      keywords: meta_keyword ? [meta_keyword] : [],
      metadataBase: new URL("https://www.newsonewsu.com"),
      openGraph: {
        title: title || "Default Title",
        description: meta_description || "Default Description",
        url: site_name || "https://www.newsonewsu.com",
        siteName: site_name || "NewsOne NewsU",
        images: [
          {
            url: image || "https://www.newsonewsu.com/default-image.jpg",
            secureUrl: image || "https://www.newsonewsu.com/default-image.jpg",
            width: 800,
            height: 600,
          },
        ],
        type: "website",
      },
      icons: {
        icon: favicon || "/favicon.ico",
      },
    };
  } catch (error) {
    console.error("Error fetching metadata", error);
    return {
      title: "NewsO NewsU",
      description: "Latest News And Update",
      metadataBase: new URL("https://www.newsonewsu.com"),
    };
  }
}



export default function RootLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  return (
    <html lang="en">
      <head>
      {/* Google AdSense */}
        <Script
          async
          id="adsbygoogle-init"
          strategy="afterInteractive"
          src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1833755971344323"
          crossOrigin="anonymous"
        />
        <Script
          id="gtm-script"
          strategy="afterInteractive"
          dangerouslySetInnerHTML={{
            __html: `
              (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
              new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
              j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
              'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
              })(window,document,'script','dataLayer','GTM-5Q4QF8M7');
            `,
          }}
        />
        <link
          href="https://fonts.maateen.me/solaiman-lipi/font.css"
          rel="stylesheet"
        />
      </head>
      <body>
        {/* GTM NoScript */}
        <noscript>
          <iframe
            src="https://www.googletagmanager.com/ns.html?id=GTM-5Q4QF8M7"
            height="0"
            width="0"
            style={{ display: "none", visibility: "hidden" }}
          ></iframe>
        </noscript>
        <ThemeWrapper>
          <WebSettingProvider>


            <NavBar />

            {children}

            <Footer />


            <ScrollToTop />
            <BottomNavBar />

            <DynamicFavicon />
          </WebSettingProvider>
        </ThemeWrapper>
      </body>
    </html>
  );
}
