mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-20 13:32:00 +00:00
refactor(FE): Prevent duplicate initial value loading in form modals
This commit is contained in:
@@ -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(() => {
|
||||
|
||||
@@ -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
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user