From c5c4f0fa17d091a74ce47cd7bd0499b8b99a61c8 Mon Sep 17 00:00:00 2001 From: =bhagwanSingh <=bhagwan.r@hicglobalsolutions.com> Date: Mon, 4 Aug 2025 15:34:16 +0530 Subject: [PATCH] Auto Save - done --- .../processStepTwo/DocumentContainer.tsx | 68 ++++++++++--------- .../process/processStepTwo/NavTwo.tsx | 6 +- .../process/processStepTwo/ProcessStepTwo.tsx | 8 ++- 3 files changed, 46 insertions(+), 36 deletions(-) diff --git a/src/components/process/processStepTwo/DocumentContainer.tsx b/src/components/process/processStepTwo/DocumentContainer.tsx index 22f1b3a..5663c1a 100644 --- a/src/components/process/processStepTwo/DocumentContainer.tsx +++ b/src/components/process/processStepTwo/DocumentContainer.tsx @@ -40,11 +40,13 @@ export const droppedTagsDefaultField: DroppedTagsDefaultFieldType = { } interface DocumentContainerProps { + transactionSaving: boolean; + setTransactionSaving: React.Dispatch>; isSend: boolean | null; setIsSend: React.Dispatch>; } -const DocumentContainer: React.FC = ({ isSend }) => { +const DocumentContainer: React.FC = ({ transactionSaving, setTransactionSaving, isSend }) => { let transactionTemplateToggle = TRANSACTION_TEMPLATE_TOGGLE.TRANSACTIONS; const dispatch = useDispatch(); const params = useParams<{ accountId?: string; transactionId?: string; templateId?: string }>(); @@ -75,8 +77,6 @@ const DocumentContainer: React.FC = ({ isSend }) => { selectedDocuments.length === 0 && dispatch(fetchDocuments({ accountId, transactionId })); }, []) - console.log(droppedItems, "line 78") - // FETCHING TAG - START useEffect(() => { if (selectedRecipients.length === 0) return; @@ -165,8 +165,8 @@ const DocumentContainer: React.FC = ({ isSend }) => { updatedData[recipientId] = updateTags } - - const requests = Object.entries(updatedData).map(([recipientId, tags]) => { + const requests = Object.entries(updatedData).filter(([recipientId, tags]) => { + if (tags.length === 0) return false; return api.put( `/api/accounts/${accountId}/${transactionTemplateToggle}/${transactionId}/recipients/${recipientId}/tags`, tags @@ -192,7 +192,7 @@ const DocumentContainer: React.FC = ({ isSend }) => { const handleTransactionProcess = async (save: boolean = false) => { console.log(droppedItems, "called Line 189"); - + if (Object.keys(droppedItems).length === 0) return; if (!save && isSend === null) return; !save && dispatch(showLoader("Loading ...")) @@ -293,28 +293,21 @@ const DocumentContainer: React.FC = ({ isSend }) => { } } - // for(const recipient of selectedRecipients) { - // const recrecipient - // } - - tagsData = groupByRecipientId(tagsData); - console.log(tagsData, "Line 302"); + + console.log("Hefre is the line 299", tagsData); await sendTagsToRecipients(tagsData, accountId, transactionId); - // SENDING Transaction - START - // if (!save) { - // const res = await api.put(`/api/accounts/${accountId}/${transactionTemplateToggle}/${transactionId}`, { status: "SENT" }) - // // const res = await api.put(`/api/accounts/${accountId}/transactions/${transactionId}`, { status: "SENT" }) - // console.log(res, "Check123") - // dispatch(hideLoader()) - // } - + if (!save) { + const res = await api.put(`/api/accounts/${accountId}/${transactionTemplateToggle}/${transactionId}`, { status: "SENT" }) + // const res = await api.put(`/api/accounts/${accountId}/transactions/${transactionId}`, { status: "SENT" }) + console.log(res, "Check123") + dispatch(hideLoader()) + } // SENDING Transaction - END - } // Save Tags - START @@ -323,13 +316,24 @@ const DocumentContainer: React.FC = ({ isSend }) => { }, [isSend]) // Save Tags - END - // useEffect(() => { - // setTimeout(() => { - // setInterval(async () => { - // await handleTransactionProcess(true); - // }, 8000) - // }, 8000) - // }, []) + useEffect(() => { + // setTimeout(() => { + const interval = setInterval(async () => { + // debugger + setTransactionSaving(true) + handleTransactionProcess(true); + }, 8000) + // }, 8000) + return () => clearInterval(interval); + }, [droppedItems]) + + useEffect(() => { + if (transactionSaving) { + setTimeout(() => { + setTransactionSaving(false) + }, 1000) + } + }, [transactionSaving]) const handleDragOver = (event: React.DragEvent) => { event.preventDefault(); // Allows the drop event to work @@ -1020,6 +1024,8 @@ const DocumentContainer: React.FC = ({ isSend }) => { }); }; + console.log(droppedItems, "Line 1022") + return ( <> {/* Center Doc Container - START */} @@ -1177,9 +1183,9 @@ const DocumentContainer: React.FC = ({ isSend }) => { - { - console.log(selectedTag, droppedItems, "Line 1175") - } + { + console.log(selectedTag, droppedItems, "Line 1175") + } {selectedTag && selectedTag !== null && "key" in selectedTag && "index" in selectedTag && > isFields: boolean; setIsFields: React.Dispatch> isSend: boolean | null; @@ -45,7 +47,7 @@ const fitObj = [ }, ] -const NavTwo: React.FC = ({ isFields, setIsFields, isSend, setIsSend }) => { +const NavTwo: React.FC = ({ transactionSaving, isFields, setIsFields, isSend, setIsSend }) => { let transactionTemplateToggle = TRANSACTION_TEMPLATE_TOGGLE.TRANSACTIONS; const dispatch = useDispatch(); const params = useParams<{ accountId?: string; transactionId?: string; templateId?: string }>(); @@ -61,7 +63,7 @@ const NavTwo: React.FC = ({ isFields, setIsFields, isSend, setIsSen return null; } - const [transactionSaving, setTransactionSaving] = useState(false); + // const [transactionSaving, setTransactionSaving] = useState(false); const [dotCount, setDotCount] = useState(0); const [isFitDd, setIsFitDd] = useState(false) diff --git a/src/components/process/processStepTwo/ProcessStepTwo.tsx b/src/components/process/processStepTwo/ProcessStepTwo.tsx index 9c47219..135abee 100644 --- a/src/components/process/processStepTwo/ProcessStepTwo.tsx +++ b/src/components/process/processStepTwo/ProcessStepTwo.tsx @@ -15,10 +15,12 @@ export interface IsSendInterface { } const ProcessStepTwo = () => { - + const [isFields, setIsFields] = useState(true); const [selectedRecipient, setSelectedRecipient] = useState(0); + const [transactionSaving, setTransactionSaving] = useState(false); + const [isSend, setIsSend] = useState(null); const globalLoader = useSelector((state: RootState) => state.loader) const dispatch = useDispatch(); @@ -31,11 +33,11 @@ const ProcessStepTwo = () => { return (
- +
- +
{globalLoader.isLoading && }