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 {
transactionSaving: boolean;
setTransactionSaving: React.Dispatch<React.SetStateAction<boolean>>;
isSend: 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;
const dispatch = useDispatch();
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 }));
}, [])
console.log(droppedItems, "line 78")
// FETCHING TAG - START
useEffect(() => {
if (selectedRecipients.length === 0) return;
@ -165,8 +165,8 @@ const DocumentContainer: React.FC<DocumentContainerProps> = ({ 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<DocumentContainerProps> = ({ 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<DocumentContainerProps> = ({ 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<DocumentContainerProps> = ({ 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<HTMLDivElement>) => {
event.preventDefault(); // Allows the drop event to work
@ -1020,6 +1024,8 @@ const DocumentContainer: React.FC<DocumentContainerProps> = ({ isSend }) => {
});
};
console.log(droppedItems, "Line 1022")
return (
<>
{/* Center Doc Container - START */}
@ -1177,9 +1183,9 @@ const DocumentContainer: React.FC<DocumentContainerProps> = ({ isSend }) => {
</div >
{
console.log(selectedTag, droppedItems, "Line 1175")
}
{
console.log(selectedTag, droppedItems, "Line 1175")
}
{selectedTag && selectedTag !== null && "key" in selectedTag && "index" in selectedTag && <RightSideBar selectedTag={droppedItems[selectedTag.key][selectedTag.index]} setDroppedItems={setDroppedItems} selTagKey={selectedTag.key} selTagIndx={selectedTag.index} DirectionalControlsProps={{
onMove: directionalControlsHandler,

View File

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

View File

@ -15,10 +15,12 @@ export interface IsSendInterface {
}
const ProcessStepTwo = () => {
const [isFields, setIsFields] = useState(true);
const [selectedRecipient, setSelectedRecipient] = useState(0);
const [transactionSaving, setTransactionSaving] = useState<boolean>(false);
const [isSend, setIsSend] = useState<boolean | null>(null);
const globalLoader = useSelector((state: RootState) => state.loader)
const dispatch = useDispatch();
@ -31,11 +33,11 @@ const ProcessStepTwo = () => {
return (
<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'>
<LeftSideBar isFields={isFields} selectedRecipientIndx={selectedRecipient} setSelectedRecipient={setSelectedRecipient} />
<DocumentContainer isSend={isSend} setIsSend={setIsSend} />
<DocumentContainer transactionSaving={transactionSaving} setTransactionSaving={setTransactionSaving} isSend={isSend} setIsSend={setIsSend} />
</div>
{globalLoader.isLoading && <Loader />}