import React, { useEffect, useState } from "react";
import MiniSite from "@/components/miniSite/[...id]";
import Head from "next/head";
import { apiClient, FirstletterCapital, } from "@/components/common/common";
import { BROWSER_TAB } from "@/utils/staticValues";

const MiniSiteHome = ({ query, shop }) => {
  const [render, setRender] = useState<any>(false);
  useEffect(() => {
    setRender(true);
  }, []);
  return (
    <>
      <Head>
        <title>
          {`${BROWSER_TAB} - ${query?.id?.[0] ? FirstletterCapital(query?.id?.[0]) : ""}`}
        </title>
        <meta name="description" content={shop?.description ?? ""} />
        <meta property="og:description" content={shop?.description ?? ""} />
        <meta name="categories" content={shop?.categories ?? ""} />
        <meta name="title" content={shop?.name ?? ""} />
        <meta property="og:title" content={shop?.name ?? ""} />
        <meta property="og:type" content="shop" />
        <meta property="og:site_name" content={shop?.name ?? ""} />
        <meta name="tracking-page-name" content="mini-site" />
      </Head>
      <div style={{ position: "relative" }}>{render && <MiniSite />}</div>
    </>
  );
};

export default MiniSiteHome;

export async function getServerSideProps({ query }) {
  const subdomainName = query.subdomain;

  if (subdomainName == "undefined") {
    return {
      props: { query },
    };
  } else {
    try {
      let params: any = await apiClient(
        `front/minisite/metaTags?shop_slug=${subdomainName ?? ""}`,
        "get"
      );

      if (!params?.shop) {
        return {
          props: { query },
        };
      }
      return {
        props: { query, shop: params?.shop },
      };
    } catch (error) {
      return { props: { query } };
    }
  }
}
