"use client"; import { ExclamationIcon, EyeIcon, PencilSquareIcon, TrashIcon, } from "@/assets/icons"; import EmptyListWrapper from "@/components/HOC/EmptyListWrapper"; import ConfirmationModal from "@/components/ui/ConfirmationModal"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/components/ui/table"; import TableSkeleton from "@/components/ui/TableSkeleton"; import { _TooltipDefaultParams } from "@/constants/tooltip"; import { formatPhoneNumber, getPaginatedRowNumber } from "@/utils/shared"; import { Tooltip } from "react-tooltip"; import { useCompanyListPresenter } from "./useCompanyListPresenter"; import ListHeader from "@/components/ui/ListHeader"; import Modal from "@/components/ui/modal"; import CompanyListFilters from "./CompanyListFilters"; const CompaniesTable = () => { const { isPending, pathName, columns, allCompanies, setIsModalOpen, router, isModalOpen, setCurrentCompany, onConfirmDelete, modalConfig, isFilterModalOpen, setIsFilterModalOpen, filterRegister, handleFilterSubmit, search, watch, setFilterValue, isMutating, } = useCompanyListPresenter(); const companies = allCompanies.filter( (c): c is NonNullable => c != null, ); return (
setIsFilterModalOpen(true)} createButtonText="Create Company" /> {columns.map((columns) => ( {columns} ))} {isPending && } {companies.map((company, index) => ( {getPaginatedRowNumber({ index })} {company.name} {company.email} {formatPhoneNumber(company.phone)} {company.address.country} {company.address.state} {company.language} {company.currency} {company.employee_count}
))}
setIsFilterModalOpen(false)} classNames="w-full xl:w-1/2" showButtons={false} > {isModalOpen && ( { onConfirmDelete(); }} onCancel={() => setIsModalOpen(false)} /> )}
); }; export default CompaniesTable;