import React, { useState } from "react"; import { useOrganizationModal, useOrganizationsList } from "../../hooks/useOrganization"; import { ITEMS_PER_PAGE } from "../../utils/constants"; import Avatar from "../common/Avatar"; import { useDebounce } from "../../utils/appUtils"; import Pagination from "../common/Pagination"; const OrganizationsList = ({searchText}) => { const [currentPage, setCurrentPage] = useState(1); const searchString = useDebounce(searchText,500) const { data = [], isLoading, isFetching, isError, error, } = useOrganizationsList(ITEMS_PER_PAGE, 1, true,null,searchString); const {onClose, startStep, flowType, onOpen,orgData } = useOrganizationModal(); const organizationsColumns = [ { key: "name", label: "Organization Name", getValue: (org) => (
{org?.name || "N/A"}
), align: "text-start", }, { key: "contactPerson", label: "Contact Person", getValue: (org) => ( (
{org?.name || "N/A"}
) ), align: "text-start", }, { key: "contactNumber", label: "Phone Number", getValue: (org) => org.contactNumber || "N/A", align: "text-start", }, { key: "email", label: "Email", getValue: (org) => ( {org?.email || "N/A"} ), align: "text-start", }, { key: "sprid", label: "SPRID Id", getValue: (org) => org.sprid || "N/A", align: "text-center", }, ]; const paginate = (page) => { if (page >= 1 && page <= (data?.totalPages ?? 1)) { setCurrentPage(page); } }; if (isFetching && !isFetching) return
Loading...
; if (isError) return
{error?.message || "Something went wrong"}
; return (
{organizationsColumns.map((col) => ( ))} {data?.data?.length > 0 ? ( data?.data?.map((org) => ( {organizationsColumns.map((col) => ( ))} )) ) : ( )}
{col.label}
Action
{col.customRender ? col.customRender(org) : col.getValue(org)}
onOpen({startStep:5,orgData:org.id,flowType:"view"})}> onOpen({startStep:4,orgData:org,flowType:"edit"})}>

{isLoading ? "Loading....":"Not Found Organization"}

{data?.data?.length > 0 && ( )}
); }; export default OrganizationsList;