"use client";
import { useState, type FC } from "react";
import { HiPlus } from "react-icons/hi";

import Button from "@/components/Button";
import PackageForm from "@/components/packages/package-form";
import ResellerParentPackageList from "@/components/packages/reseller-parent-package-list";
import ResellerChildrenPackageForm from "@/components/reseller-packages/reseller-children-package-form";
import ResellerChildrenPackageList from "@/components/reseller-packages/reseller-children-package-list";
import { usePermission } from "@/utils/auth/permission";
import { useSession } from "next-auth/react";

const ResellerPackageListContent: FC = () => {
  const [isOpen, setOpen] = useState(false);
  const { data: session }: any = useSession();
  return (
    <>
      <div className="block items-center justify-between border-b border-gray-200 bg-white p-4 dark:border-gray-700 dark:bg-gray-800 sm:flex">
        <div className="mb-1 w-full">
          <div className="flex">
            <h1 className="text-xl font-semibold text-gray-900 dark:text-white sm:text-2xl">
              Reseller Packages
            </h1>
            <div className="ml-auto flex items-center space-x-2 sm:space-x-3">
              {usePermission("packages.create") && (
                <>
                  <Button color="blue" onClick={() => setOpen(true)}>
                    <HiPlus className="text-xl" />
                    Add
                  </Button>
                  {session?.user?.reseller_id ? (
                    <ResellerChildrenPackageForm
                      isOpen={isOpen}
                      setOpen={setOpen}
                      package_type="reseller_package"
                    />
                  ) : (
                    <PackageForm
                      isOpen={isOpen}
                      setOpen={setOpen}
                      type="reseller"
                    />
                  )}
                </>
              )}
            </div>
          </div>
        </div>
      </div>
      <div className="flex flex-col">
        <div className="overflow-x-auto">
          <div className="inline-block min-w-full align-middle">
            <div className="overflow-hidden shadow">
              {session?.user?.reseller_id ? (
                <ResellerChildrenPackageList package_type="reseller_package" />
              ) : (
                <ResellerParentPackageList />
              )}
            </div>
          </div>
        </div>
      </div>
    </>
  );
};

export default ResellerPackageListContent;
