Auto Save - done

This commit is contained in:
=bhagwanSingh 2025-08-04 15:34:16 +05:30
parent e7a7bfbed1
commit c5c4f0fa17
3 changed files with 46 additions and 36 deletions

View File

@ -40,11 +40,13 @@ export const droppedTagsDefaultField: DroppedTagsDefaultFieldType = {
} }
interface DocumentContainerProps { interface DocumentContainerProps {
transactionSaving: boolean;
setTransactionSaving: React.Dispatch<React.SetStateAction<boolean>>;
isSend: boolean | null; isSend: boolean | null;
setIsSend: React.Dispatch<React.SetStateAction<boolean | null>>; setIsSend: React.Dispatch<React.SetStateAction<boolean | null>>;
} }
const DocumentContainer: React.FC<DocumentContainerProps> = ({ isSend }) => { const DocumentContainer: React.FC<DocumentContainerProps> = ({ transactionSaving, setTransactionSaving, isSend }) => {
let transactionTemplateToggle = TRANSACTION_TEMPLATE_TOGGLE.TRANSACTIONS; let transactionTemplateToggle = TRANSACTION_TEMPLATE_TOGGLE.TRANSACTIONS;
const dispatch = useDispatch(); const dispatch = useDispatch();
const params = useParams<{ accountId?: string; transactionId?: string; templateId?: string }>(); const params = useParams<{ accountId?: string; transactionId?: string; templateId?: string }>();
@ -75,8 +77,6 @@ const DocumentContainer: React.FC<DocumentContainerProps> = ({ isSend }) => {
selectedDocuments.length === 0 && dispatch(fetchDocuments({ accountId, transactionId })); selectedDocuments.length === 0 && dispatch(fetchDocuments({ accountId, transactionId }));
}, []) }, [])
console.log(droppedItems, "line 78")
// FETCHING TAG - START // FETCHING TAG - START
useEffect(() => { useEffect(() => {
if (selectedRecipients.length === 0) return; if (selectedRecipients.length === 0) return;
@ -165,8 +165,8 @@ const DocumentContainer: React.FC<DocumentContainerProps> = ({ isSend }) => {
updatedData[recipientId] = updateTags updatedData[recipientId] = updateTags
} }
const requests = Object.entries(updatedData).filter(([recipientId, tags]) => {
const requests = Object.entries(updatedData).map(([recipientId, tags]) => { if (tags.length === 0) return false;
return api.put( return api.put(
`/api/accounts/${accountId}/${transactionTemplateToggle}/${transactionId}/recipients/${recipientId}/tags`, `/api/accounts/${accountId}/${transactionTemplateToggle}/${transactionId}/recipients/${recipientId}/tags`,
tags tags
@ -192,7 +192,7 @@ const DocumentContainer: React.FC<DocumentContainerProps> = ({ isSend }) => {
const handleTransactionProcess = async (save: boolean = false) => { const handleTransactionProcess = async (save: boolean = false) => {
console.log(droppedItems, "called Line 189"); console.log(droppedItems, "called Line 189");
if (Object.keys(droppedItems).length === 0) return;
if (!save && isSend === null) return; if (!save && isSend === null) return;
!save && dispatch(showLoader("Loading ...")) !save && dispatch(showLoader("Loading ..."))
@ -293,28 +293,21 @@ const DocumentContainer: React.FC<DocumentContainerProps> = ({ isSend }) => {
} }
} }
// for(const recipient of selectedRecipients) {
// const recrecipient
// }
tagsData = groupByRecipientId(tagsData); tagsData = groupByRecipientId(tagsData);
console.log(tagsData, "Line 302");
console.log("Hefre is the line 299", tagsData);
await sendTagsToRecipients(tagsData, accountId, transactionId); await sendTagsToRecipients(tagsData, accountId, transactionId);
// SENDING Transaction - START // SENDING Transaction - START
// if (!save) { if (!save) {
// const res = await api.put(`/api/accounts/${accountId}/${transactionTemplateToggle}/${transactionId}`, { status: "SENT" }) const res = await api.put(`/api/accounts/${accountId}/${transactionTemplateToggle}/${transactionId}`, { status: "SENT" })
// // const res = await api.put(`/api/accounts/${accountId}/transactions/${transactionId}`, { status: "SENT" }) // const res = await api.put(`/api/accounts/${accountId}/transactions/${transactionId}`, { status: "SENT" })
// console.log(res, "Check123") console.log(res, "Check123")
// dispatch(hideLoader()) dispatch(hideLoader())
// } }
// SENDING Transaction - END // SENDING Transaction - END
} }
// Save Tags - START // Save Tags - START
@ -323,13 +316,24 @@ const DocumentContainer: React.FC<DocumentContainerProps> = ({ isSend }) => {
}, [isSend]) }, [isSend])
// Save Tags - END // Save Tags - END
// useEffect(() => { useEffect(() => {
// setTimeout(() => { // setTimeout(() => {
// setInterval(async () => { const interval = setInterval(async () => {
// await handleTransactionProcess(true); // debugger
setTransactionSaving(true)
handleTransactionProcess(true);
}, 8000)
// }, 8000) // }, 8000)
// }, 8000) return () => clearInterval(interval);
// }, []) }, [droppedItems])
useEffect(() => {
if (transactionSaving) {
setTimeout(() => {
setTransactionSaving(false)
}, 1000)
}
}, [transactionSaving])
const handleDragOver = (event: React.DragEvent<HTMLDivElement>) => { const handleDragOver = (event: React.DragEvent<HTMLDivElement>) => {
event.preventDefault(); // Allows the drop event to work event.preventDefault(); // Allows the drop event to work
@ -1020,6 +1024,8 @@ const DocumentContainer: React.FC<DocumentContainerProps> = ({ isSend }) => {
}); });
}; };
console.log(droppedItems, "Line 1022")
return ( return (
<> <>
{/* Center Doc Container - START */} {/* Center Doc Container - START */}

View File

@ -14,6 +14,8 @@ import { useNavigate, useParams } from 'react-router-dom'
import { Bounce, toast } from 'react-toastify' import { Bounce, toast } from 'react-toastify'
interface NavTwoProps { interface NavTwoProps {
transactionSaving: boolean;
// setTransactionSaving: React.Dispatch<React.SetStateAction<boolean>>
isFields: boolean; isFields: boolean;
setIsFields: React.Dispatch<React.SetStateAction<boolean>> setIsFields: React.Dispatch<React.SetStateAction<boolean>>
isSend: boolean | null; isSend: boolean | null;
@ -45,7 +47,7 @@ const fitObj = [
}, },
] ]
const NavTwo: React.FC<NavTwoProps> = ({ isFields, setIsFields, isSend, setIsSend }) => { const NavTwo: React.FC<NavTwoProps> = ({ transactionSaving, isFields, setIsFields, isSend, setIsSend }) => {
let transactionTemplateToggle = TRANSACTION_TEMPLATE_TOGGLE.TRANSACTIONS; let transactionTemplateToggle = TRANSACTION_TEMPLATE_TOGGLE.TRANSACTIONS;
const dispatch = useDispatch(); const dispatch = useDispatch();
const params = useParams<{ accountId?: string; transactionId?: string; templateId?: string }>(); const params = useParams<{ accountId?: string; transactionId?: string; templateId?: string }>();
@ -61,7 +63,7 @@ const NavTwo: React.FC<NavTwoProps> = ({ isFields, setIsFields, isSend, setIsSen
return null; return null;
} }
const [transactionSaving, setTransactionSaving] = useState<boolean>(false); // const [transactionSaving, setTransactionSaving] = useState<boolean>(false);
const [dotCount, setDotCount] = useState(0); const [dotCount, setDotCount] = useState(0);
const [isFitDd, setIsFitDd] = useState<boolean>(false) const [isFitDd, setIsFitDd] = useState<boolean>(false)

View File

@ -19,6 +19,8 @@ const ProcessStepTwo = () => {
const [isFields, setIsFields] = useState(true); const [isFields, setIsFields] = useState(true);
const [selectedRecipient, setSelectedRecipient] = useState(0); const [selectedRecipient, setSelectedRecipient] = useState(0);
const [transactionSaving, setTransactionSaving] = useState<boolean>(false);
const [isSend, setIsSend] = useState<boolean | null>(null); const [isSend, setIsSend] = useState<boolean | null>(null);
const globalLoader = useSelector((state: RootState) => state.loader) const globalLoader = useSelector((state: RootState) => state.loader)
const dispatch = useDispatch(); const dispatch = useDispatch();
@ -31,11 +33,11 @@ const ProcessStepTwo = () => {
return ( return (
<div className={`min-w-full relative h-screen bg-slate-100 overflow-hidden ${(globalLoader.isLoading) ? 'pointer-events-none' : ''}`}> <div className={`min-w-full relative h-screen bg-slate-100 overflow-hidden ${(globalLoader.isLoading) ? 'pointer-events-none' : ''}`}>
<NavTwo isFields={isFields} setIsFields={setIsFields} isSend={isSend} setIsSend={setIsSend} /> <NavTwo transactionSaving={transactionSaving} isFields={isFields} setIsFields={setIsFields} isSend={isSend} setIsSend={setIsSend} />
<div className='grid grid-cols-12 gap-1 mt-1 h-[calc(100vh-46px)] overflow-hidden'> <div className='grid grid-cols-12 gap-1 mt-1 h-[calc(100vh-46px)] overflow-hidden'>
<LeftSideBar isFields={isFields} selectedRecipientIndx={selectedRecipient} setSelectedRecipient={setSelectedRecipient} /> <LeftSideBar isFields={isFields} selectedRecipientIndx={selectedRecipient} setSelectedRecipient={setSelectedRecipient} />
<DocumentContainer isSend={isSend} setIsSend={setIsSend} /> <DocumentContainer transactionSaving={transactionSaving} setTransactionSaving={setTransactionSaving} isSend={isSend} setIsSend={setIsSend} />
</div> </div>
{globalLoader.isLoading && <Loader />} {globalLoader.isLoading && <Loader />}