import HomePageRender from "@/components/home/home-page-render";
import { Metadata } from "next";
import { PAGE_CONFIG } from "@/lib/appConstant";
import { PageConfig, SEO } from "@/types/common";
import { getSeoSettings } from "@/lib/common/fetch-seo-settings";
import DefaultLayout from "@/components/layout/default-layout";
import { fetchViewSettings } from "@/lib/common/fetch-view-settings";
import { redirectDefaultPage } from "@/lib/utils";

const config: PageConfig = PAGE_CONFIG.home;

export default async function HomePage(props: any) {
  const viewSettings = await fetchViewSettings();
  
    if (viewSettings) {
      const layoutViewPage = viewSettings.layoutSettingResponse?.viewPage;
      if (config.layout && config.layout.filter(item => layoutViewPage === item).length === 0) {
        const servicePath = viewSettings.servicePath ? `/${viewSettings.servicePath}` : '';
        redirectDefaultPage(layoutViewPage, servicePath);
      }
    }
  return (
    <DefaultLayout header={true} footer={true} sideBar={true} banner={true} page="home" bodyMegreLayout={true} sort={true} autoIpLogin={true}>
      <HomePageRender {...props}/>
    </DefaultLayout>
  )
}

export const generateMetadata = async (): Promise<Metadata> => {
  const settings: SEO = await getSeoSettings(config);
  return {
    title: settings.title,
    description: settings.metaDescription
  };
};