import { useEffect, useState } from 'react' import DocumentContainer from '../processStepTwo/DocumentContainer' import { Link, useParams } from 'react-router-dom' import { IoMdHome } from 'react-icons/io' import { FaCheck } from 'react-icons/fa' import { useDispatch, useSelector } from 'react-redux' import { AppDispatch, RootState } from '../../../store/store' import { fetchRecipients, recipientType } from '../../../store/slices/selectedRecipientsSlice' import { fetchDocuments } from '../../../store/slices/documentSlice' import { SigningOrderDiagram } from './SigningOrderDiagram' import { SignersList } from './SignerList' import signSessionRedirect from '../../../utlity/signSessionRedirect' const TransactionSentSuccess = () => { const [isVisible, setIsVisible] = useState(false) const dispatch = useDispatch() const { accountId, transactionId } = useParams<{ accountId: string; transactionId: string }>() const selectedRecipients = useSelector((state: RootState) => state.selectedRecipients.recipients) const userDetails = useSelector((state: RootState) => state.user) const selectedDocuments = useSelector((state: RootState) => state.documents.documents) const [selfUserSign, setSelfUserSign] = useState({ sign: false, recipientId: 0 }) if (!accountId || !transactionId) { window.location.href = '/' return null } useEffect(() => { selectedRecipients.length === 0 && dispatch(fetchRecipients({ accountId, transactionId })) selectedDocuments.length === 0 && dispatch(fetchDocuments({ accountId, transactionId })) setIsVisible(true) }, []) useEffect(() => { if (selectedRecipients.length === 0) return let minRoutingOrder: number = Infinity let userEmailPresent = { present: false, routingOrder: 0, recipientId: 0, type: recipientType.CC, } for (let i = 0; i < selectedRecipients.length; i++) { const recipient = selectedRecipients[i] if (recipient.routingOrder < minRoutingOrder) { minRoutingOrder = recipient.routingOrder } if (recipient.email === userDetails.email) { userEmailPresent.present = true userEmailPresent.routingOrder = recipient.routingOrder userEmailPresent.recipientId = Number(recipient.id) userEmailPresent.type = recipient.type } } if ( userEmailPresent.present && userEmailPresent.routingOrder === minRoutingOrder && userEmailPresent.type !== recipientType.CC && userEmailPresent.type !== recipientType.INPERSONSIGNER ) { setSelfUserSign({ sign: true, recipientId: userEmailPresent.recipientId }) } }, [selectedRecipients]) return (
{/* Header */}
{/* */} {/*
*/} {/*

🎉 Awesome! The document’s been sent for signature. 🎉

*/}
{/* Content */}
{/* Success banner */}
{/*
*/}

Your Document is sent for signature

All signers will be notified via email

{/* Main two-column layout */}
{/* Left: Document Preview */}

Quick Preview

{/* Right: Signers list + actions */}
Back to Home {selfUserSign.sign && (

signSessionRedirect(accountId, transactionId, selfUserSign.recipientId + "")} className="flex-1 p-2 text-center rounded-md bg-[var(--mainPrimaryBtn)] text-white hover:shadow-sm transition-all duration-150 cursor-pointer" > Sign Now

)}
{/* Optional: Signing Order */} {/*
*/}
{/* Footer */}
) } export default TransactionSentSuccess