import { useDispatch, useSelector } from "react-redux"; import { removeRecipientAsync, removeSelectedRecipient, // setSigningOrder, updateRecipientOrder, } from "../../../store/slices/selectedRecipientsSlice"; import { AppDispatch, RootState } from "../../../store/store"; import { ImBin } from "react-icons/im"; import { FaUsersLine } from "react-icons/fa6"; import { useState } from "react"; import SigningOrderDiagram from "../../../SigningOrderDiagram "; import { IoCloseOutline } from "react-icons/io5"; import { useParams } from "react-router-dom"; import { FiEdit } from "react-icons/fi"; import { RiPencilFill } from "react-icons/ri"; const getInitials = (name: string) => { if (!name) return ""; return name .split(" ") .map((n) => n[0]) .join("") .toUpperCase(); }; type CardsData = { editRecipient: any; setEditRecipient: (recipient: any) => void; // Replace `any` with the actual type if known setEditCase: (string: any) => void; transactionTemplateToggle: string }; const RecipientCards = ({ editRecipient, setEditRecipient, setEditCase, transactionTemplateToggle }: CardsData) => { const templateId = useParams<{ templateId: string }>().templateId; let { accountId, transactionId } = useParams<{ accountId: string, transactionId: string }>(); const dispatch = useDispatch(); if (!transactionId) { transactionId = templateId; } const recipients = useSelector((state: RootState) => state.selectedRecipients.recipients); console.log("recipients.length", recipients) // const signingOrder = useSelector((state: RootState) => state.selectedRecipients.signingOrder); const signType = useSelector((state: RootState) => state.selectedDocuments.signType); const [signingOrderModal, setSigningOrderModal] = useState({ open: false }); const handleOrderChange = (id: string, value: number) => { dispatch(updateRecipientOrder({ id, routingOrder: value })); }; const handleEditRecipient = (recipient) => { // alert(JSON.stringify(recipient)) setEditCase('Edit') setEditRecipient(recipient) } const handleRemoveRecipient = (recipient) => { if (!accountId || !transactionId) return; // dispatch(removeSelectedRecipient(recipient)) // dispatch(removeRecipientAsync([{ // recipientId: recipient.id, // email: recipient.email, // accountId: accountId, // transactionId: transactionId, // }])) // ======= if (recipient.uuid) { dispatch(removeSelectedRecipient(recipient)) } else { dispatch(removeRecipientAsync({ recipientId: recipient.id, email: recipient.email, accountId: accountId, transactionId: transactionId, })) } if (recipients.length === 2) { let leftRecipient = recipients.filter((obj) => { if ("id" in obj && "id" in recipient) { if (obj.id !== recipient.id) return true } if ("email" in obj && "email" in recipient) { if (obj.email !== recipient.email) return true } return false }) dispatch(updateRecipientOrder({ id: leftRecipient[0].id || leftRecipient[0].email, routingOrder: 1 })); } } return (
{recipients.length > 0 ? ( <> {recipients.length > 1 && (

Recipients ({recipients.length})

{/* */}
)}
{recipients.map((recipient, idx) => { // if(recipient.id === editRecipient.id) return return (
{/* {signingOrder && ( */} {recipients.length > 1 ?
handleOrderChange(recipient.id || recipient.email, Number(e.target.value)) } className="w-10 h-6 text-center rounded text-sm text-gray-600 focus:outline-none focus:ring-[var(--primary)] border border-dashed border-gray-400 bg-slate-100" /> {/* */}
: handleOrderChange(recipient.id || recipient.email, Number(e.target.value)) } className="w-8 text-center rounded text-sm text-gray-700 border-none focus:outline-none focus:ring-[var(--primary)]" />} {/* )} */}
{getInitials(`${recipient.firstName} ${recipient.lastName || ""}`)}

{recipient.firstName} {recipient.lastName || ""}

{recipient.email} | {recipient.type} {recipient.roleName ? `| Role : ${recipient.roleName}` : ""}

{signType !== "self-sign" && (
{/* Edit Button */} {/* Delete Button */}
)}
) })}
) : (
No Recipients Added
)} {signingOrderModal.open &&

Signing Order

setSigningOrderModal({ ...signingOrderModal, open: false })} className="text-xl cursor-pointer hover:text-gray-200 transition-all">
}
); }; export default RecipientCards;