import React, { useState } from "react"; import Avatar from "../common/Avatar"; import Pagination from "../common/Pagination"; import { useDirectoryContext } from "../../pages/Directory/DirectoryPage"; import { useActiveInActiveContact } from "../../hooks/useDirectory"; import ConfirmModal from "../common/ConfirmModal"; import Loader from "../common/Loader"; const ListViewContact = ({ data, Pagination, isLoading }) => { const { showActive, setManageContact, setContactOpen } = useDirectoryContext(); const [deleteContact, setDeleteContact] = useState({ contactId: null, Open: false, }); const [activeContact, setActiveContact] = useState(null); const contactList = [ { key: "name", label: "Name", getValue: (e) => (
{e?.name || "N/A"}
), align: "text-center", }, { key: "email", label: "Email", getValue: (e) => ( {e?.contactEmails?.[0]?.emailAddress || "N/A"} ), align: "text-start", }, { key: "organization", label: "Organization", getValue: (e) => ( {e?.organization || "N/A"} ), align: "text-start", }, { key: "category", label: "Category", getValue: (e) => ( {e?.contactCategory?.name || "N/A"} ), align: "text-start", }, ]; const { mutate: ActiveInActive, isPending } = useActiveInActiveContact(() => setDeleteContact({ contactId: null, Open: false }) ); const handleActiveInactive = (contactId) => { ActiveInActive({ contactId: contactId, contactStatus: !showActive }); }; if(isLoading) return if(!data|| data.length === 0)return
No Contact Found
return ( <> setDeleteContact({ contactId: null, Open: false })} loading={isPending} paramData={deleteContact.contactId} isOpen={deleteContact.Open} />
{data && (
{contactList?.map((col) => ( ))} {Array.isArray(data) && data.length > 0 && ( data.map((row, i) => ( {contactList.map((col) => ( ))} )) ) }
{col.label} Action
{col.getValue(row)} {showActive ? (
setContactOpen({ contact: row, Open: true }) } > setManageContact({ isOpen: true, contactId: row.id, }) } > setDeleteContact({ contactId: row.id, Open: true, }) } >
) : ( { setActiveContact(row.id); handleActiveInactive(row.id); }} > )}
{Pagination && (
{Pagination}
)}
)}
); }; export default ListViewContact;