/* eslint-disable react-hooks/rules-of-hooks */
import { Row, Col } from "react-bootstrap";
import ProtectedRoute from "@/ProtectedRoute";
import { useCollapsed } from "@/components/Context/CollapsedContext"; 

/* eslint-disable react-hooks/rules-of-hooks */
import React, { useState, useEffect } from "react";
import Layout from "@/components/layouts/Layout";
import Head from "next/head";
import {
  getPorts,
  getStates,
  CarriesCordinates,
  getCarries,
  getcarrierbyid,
} from "@/services/public";
import LandingDashboardCarrier from "@/components/ui/mapDashboard/LandingDashboardCarrier";

interface Props {
  datacordinates: any;
  breadcrumbs: {
    title: string;
    path: string;
  }[];
  cordinates: any;
  Carriesdata: any;
}

function Customer(props: Props) {
  const [hidden, setHidden] = useState(false);
  const [updatecarrier] = useState();
  const [address] = useState();
  const [tableListing, setTableListing] = useState([]);
  const [getiddata] = useState();
  const [getstateName] = useState();
  const [MapState] = useState();

  const fetchDatas = async () => {
    const allDataSet = await Promise.all([
      getPorts(),
      getStates(),
      getCarries(),
      CarriesCordinates(),
      getcarrierbyid(null, getiddata),
    ]);
    setTableListing(allDataSet[2]);
  };
  const { isCollapsed } = useCollapsed(); 

  const RenderData = () => {
    return (
      <>
        <Layout>
          <Head>
            <title>Carriers - Draydex</title>
          </Head>
          <div className={` ${isCollapsed ? 'collapsed-body' : 'content-body'}`}>
            <Row className="page-titles mx-0">
              <Col className="p-md-0"></Col>
            </Row>
            <Row>
              <Col>
                <div>
                  <div>
                    <LandingDashboardCarrier
                      MapState={MapState}
                      stateName={getstateName}
                      address={address}
                      updatecarriers={updatecarrier}
                      dataByid={getiddata?.data}
                      carries={undefined}
                      carrier={tableListing as any}
                      dataQuotes={undefined}
                      breadcrumbs={[]}
                      hide={setHidden as any}
                      state={hidden}
                      filter={address === undefined ? true : false}
                      keys="1"
                    />
                  </div>
                </div>
              </Col>
            </Row>
          </div>
        </Layout>
      </>
    );
  };
  useEffect(() => {
    fetchDatas();
  }, []);

  return RenderData();
}

export async function getServerSideProps(context: any) {
  return {
    props: {
      breadcrumbs: [
        {
          title: "Dashboard",
          path: "/dashboard",
        },
        {
          title: "Carriers",
          path: "/carriers",
        },
      ],
    },
  };
}
export default ProtectedRoute(Customer);
