import "./globals.css";

import type { Metadata, Viewport } from "next";
import { Quicksand } from "next/font/google";
import { ReactNode } from 'react';
import { brands, settings, stores } from '@/lib/actions'
import { Footer, Header, ScrollTopButton } from '@/components'

const quicksand = Quicksand({
    variable: "--font-quicksand",
    subsets: ["latin"],
    weight: ['300', '400', '500', '600', '700'],
})

export const generateMetadata = async (): Promise<Metadata> => {
    const {data: websiteSettings} = await settings.getSettings()

    return {
        title: "Importer and Wholesaler from Nepal - Bigmandu",
        description: "Importer and Wholesaler from Nepal",
        icons: {
            icon: websiteSettings?.favicon,
            apple: websiteSettings?.favicon,
        },
    }
}

export const viewport: Viewport = {
    colorScheme: "light",
};

export default async function RootLayout({
                                             children,
                                         }: Readonly<{
    children: ReactNode;
}>) {
    const [
        {data: websiteSettings},
        {data: topMenu},
        {data: mainMenu},
        {data: footerMenu},
        {data: storesList},
        {data: brandsList},
    ] = await Promise.all([
        settings.getSettings(),
        settings.getMenu({menu_type: 'top'}),
        settings.getMenu({menu_type: 'main'}),
        settings.getMenu({menu_type: 'footer'}),
        stores.getStores(),
        brands.getBrands(),
    ])

    return (
        <html
            lang="en"
            className={`${quicksand.className} h-full antialiased`}
        >
            <body className="min-h-full flex flex-col">
                <main>
                    <Header
                        settings={websiteSettings}
                        topMenu={topMenu}
                        mainMenu={mainMenu}
                        stores={storesList}
                        brands={brandsList}
                    />

                    <div className="px-7">{children}</div>

                    <ScrollTopButton />

                    <Footer
                        settings={websiteSettings}
                        footerMenu={footerMenu}
                    />
                </main>
            </body>
        </html>
    );
}
