import SearchPageRender from "@/components/search/search-page-render";
import { fetchViewSettings } from "@/lib/common/fetch-view-settings";
import { getSeoSettings } from "@/lib/common/fetch-seo-settings";
import SearchLayout from "@/components/layout/search-layout";
import { redirectDefaultPage } from "@/lib/utils";
import { PageConfig, SEO } from "@/types/common";
import { PAGE_CONFIG } from "@/lib/appConstant";
import { Metadata } from "next";

const config: PageConfig = PAGE_CONFIG.search;

export default async function SearchPage(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.path ? `/${viewSettings.path}` : '';
      redirectDefaultPage(layoutViewPage, servicePath);
    }
  }
  return (
    <SearchLayout header={true} footer={true} bodyMegreLayout={true}>
      <SearchPageRender { ...props }/>
    </SearchLayout>
  );
}

export const generateMetadata = async (): Promise<Metadata> => {
  const settings: SEO = await getSeoSettings(config);
  return {
    title: settings.title,
    description: settings.metaDescription
  };
};