import { useEffect, useState } from 'react'; import { RootState } from '../../../store/store'; import { useDispatch, useSelector } from 'react-redux'; import FieldList from './FieldList'; import { addColorsToRecipient, fetchRecipients, toggleToTemplates, TRANSACTION_TEMPLATE_TOGGLE } from '../../../store/slices/selectedRecipientsSlice'; import { IoCheckmark } from 'react-icons/io5' import { MdKeyboardArrowDown } from 'react-icons/md' import { useParams } from 'react-router-dom'; import { fetchDocuments } from '../../../store/slices/documentSlice'; interface LeftSideBarProps { isFields: boolean; selectedRecipientIndx: number; setSelectedRecipient: React.Dispatch> } const LeftSideBar: React.FC = ({ isFields, selectedRecipientIndx, setSelectedRecipient }) => { let transactionTemplateToggle = TRANSACTION_TEMPLATE_TOGGLE.TRANSACTIONS; const dispatch = useDispatch(); const params = useParams<{ accountId?: string; transactionId?: string; templateId?: string }>(); const accountId = params.accountId; let transactionId = params.transactionId if (!transactionId) { transactionTemplateToggle = TRANSACTION_TEMPLATE_TOGGLE.TEMPLATES; transactionId = params.templateId; dispatch(toggleToTemplates()); } if (!accountId || !transactionId) { window.location.href = "/"; return null; } const selectedRecipients = useSelector((state: RootState) => state.selectedRecipients.recipients) const selectedDocuments = useSelector((state: RootState) => state.documents.documents) useEffect(() => { if (selectedRecipients.length === 0) { dispatch(fetchRecipients({ accountId, transactionId })); } }, [dispatch, accountId, transactionId, selectedRecipients.length]); useEffect(() => { if (selectedDocuments.length === 0) { dispatch(fetchDocuments({ accountId, transactionId })); } }, [dispatch, accountId, transactionId, selectedDocuments.length]); // For Recipient const [dropDownToggle, setDropDownToggle] = useState(false); const [dropDownTogglePage, setDropDownTogglePage] = useState(""); const selectedRecipient = selectedRecipients[selectedRecipientIndx]; useEffect(() => { if (selectedRecipients.length) { if ("color" in selectedRecipients[0]) return; dispatch(addColorsToRecipient()) } }, []) return ( <> {/* Left Side Bar - START */} { selectedRecipients.length > 0 &&
{isFields && <> {/* Fields List and Recipeint - Start */} {/* Side Bar showing Recipients */}
setDropDownToggle(false)}> {/* Selected Recipient */}
setDropDownToggle(!dropDownToggle)} className='flex items-center justify-between gap-2 w-full p-2 text-xs rounded-sm border-1 border-slate-200 cursor-pointer'>

{/* */}

{ selectedRecipient.firstName.length === 0 && selectedRecipient.lastName.length === 0 ? (selectedRecipient.email.length === 0 ? selectedRecipient.roleName : selectedRecipient.email) : `${selectedRecipient.firstName + " " + selectedRecipient.lastName}` }

{selectedRecipients.length && selectedRecipients.map((recipient, indx) => { return (
{ setSelectedRecipient(indx); setTimeout(() => { setDropDownToggle(false); }, 0) }} >

{/* */}

{ recipient.firstName.length === 0 && recipient.lastName.length === 0 ? (recipient.email.length === 0 ? recipient.roleName : recipient.email) : `${recipient.firstName + " " + recipient.lastName}` }

{selectedRecipientIndx === indx && }
) })}
{/* Side Bar showing Recipients - ENDS*/} {/* Drag Drop Tags Start */}
{/* Fields List and Recipeint - End */} } {!isFields && <> {/* Pages - START */}
{selectedDocuments.length && selectedDocuments.map((document, indx) => { return (
setDropDownTogglePage('')} >
setDropDownTogglePage(`${(dropDownTogglePage === 'pageDropDown' + indx) ? '' : 'pageDropDown' + indx}`)} className={`p-2 ${(dropDownTogglePage === 'pageDropDown' + indx) ? "bg-[var(--primary)]" : "bg-slate-200"} flex flex-col justify-center items-center gap-2 rounded`}> { document.pages != undefined && }

{document.name}

{ dropDownTogglePage === 'pageDropDown' + indx &&
{document.pages != undefined && document.pages.map((img, indx) => (

{indx + 1}

))}
}
) })}
{/* Pages - END */} }
} {/* Left Side Bar - END */} ) } export default LeftSideBar