"use client";

import { useRouter } from "next/navigation";

import { INTERNAL_PAGES } from "@/constants/pages-mapping/internal-pages-mapping";
import BrandsSection from "@/components/pages/participant/business-panel/partials/brands-section";
import FeatureSection from "@/components/pages/participant/business-panel/partials/features-section";
import FinalCTASection from "@/components/pages/participant/business-panel/partials/final-cta-section";
import IntroSection from "@/components/pages/participant/business-panel/partials/intro-section";
import LatestOpportunities from "@/components/pages/participant/business-panel/partials/latest-opportunities";
import StatsSection from "@/components/pages/participant/business-panel/partials/stats-section";
import SuitableForSection from "@/components/pages/participant/business-panel/partials/suitable-section";

type BusinessPanelHomeProps = {
  isLoggedIn: boolean;
};

function BusinessPanelHome({ isLoggedIn }: BusinessPanelHomeProps) {
  const router = useRouter();

  const handleClickSignup = () => {
    isLoggedIn
      ? router.push(INTERNAL_PAGES.participant.opportunities.main)
      : router.push(INTERNAL_PAGES.participant.signup.main);
  };

  return (
    <main id="main-content">
      <IntroSection
        isLoggedIn={isLoggedIn}
        onClickJoinCommunity={handleClickSignup}
      />
      <StatsSection isLoggedIn={isLoggedIn} onClick={handleClickSignup} />
      <FeatureSection />
      <BrandsSection />
      <SuitableForSection
        isLoggedIn={isLoggedIn}
        onClickSignup={handleClickSignup}
      />
      <LatestOpportunities />
      {!isLoggedIn && <FinalCTASection onClickSignup={handleClickSignup} />}
    </main>
  );
}

export default BusinessPanelHome;
