diff --git a/src/components/pages/marketing/DeliveryOrderFormModal.tsx b/src/components/pages/marketing/DeliveryOrderFormModal.tsx index 4635c826..08ad6c84 100644 --- a/src/components/pages/marketing/DeliveryOrderFormModal.tsx +++ b/src/components/pages/marketing/DeliveryOrderFormModal.tsx @@ -536,9 +536,13 @@ const DeliveryOrderFormModal = ({}: { initialValues?: Marketing }) => { formModal.closeModal(); }; + const hasLoadedInitialValues = useRef(false); useEffect(() => { const getFilledInitialValues = async () => { if (marketingId && isResponseSuccess(marketing)) { + if (hasLoadedInitialValues.current) return; + hasLoadedInitialValues.current = true; + const filledInitialValues = await getFilledMarketingFormInitialValues( marketing.data ); @@ -582,9 +586,15 @@ const DeliveryOrderFormModal = ({}: { initialValues?: Marketing }) => { setFormErrorMessage(''); }, [step]); - // sync delivery order values to formik + const prevDeliveryOrderValuesRef = useRef(deliveryOrderValues); useEffect(() => { - formik.setFieldValue('delivery_order', deliveryOrderValues); + if ( + JSON.stringify(prevDeliveryOrderValuesRef.current) !== + JSON.stringify(deliveryOrderValues) + ) { + prevDeliveryOrderValuesRef.current = deliveryOrderValues; + formik.setFieldValue('delivery_order', deliveryOrderValues); + } }, [deliveryOrderValues]); const grandTotal = useMemo(() => { diff --git a/src/components/pages/marketing/SalesOrderFormModal.tsx b/src/components/pages/marketing/SalesOrderFormModal.tsx index d80b98c5..cff6e69b 100644 --- a/src/components/pages/marketing/SalesOrderFormModal.tsx +++ b/src/components/pages/marketing/SalesOrderFormModal.tsx @@ -458,9 +458,13 @@ const SalesOrderFormModal = ({ ); }, [memoSalesOrder]); + const hasLoadedInitialValues = useRef(false); useEffect(() => { const getFilledInitialValues = async () => { if (marketingId && isResponseSuccess(marketing)) { + if (hasLoadedInitialValues.current) return; + hasLoadedInitialValues.current = true; + const filledInitialValues = await getFilledMarketingFormInitialValues( marketing.data );