mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-20 13:32:00 +00:00
refactor(FE): Handle next-day error toast visibility
This commit is contained in:
@@ -241,6 +241,7 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
|
|||||||
new Date().toISOString().split('T')[0]
|
new Date().toISOString().split('T')[0]
|
||||||
);
|
);
|
||||||
const [duplicateErrorShown, setDuplicateErrorShown] = useState(false);
|
const [duplicateErrorShown, setDuplicateErrorShown] = useState(false);
|
||||||
|
const [nextDayErrorShown, setNextDayErrorShown] = useState(false);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
return () => {
|
return () => {
|
||||||
@@ -575,10 +576,24 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
|
|||||||
setNextDayRecording(
|
setNextDayRecording(
|
||||||
nextDayRecordingData.data as unknown as NextDayRecording
|
nextDayRecordingData.data as unknown as NextDayRecording
|
||||||
);
|
);
|
||||||
|
if (nextDayErrorShown) {
|
||||||
|
toast.dismiss();
|
||||||
|
setNextDayErrorShown(false);
|
||||||
|
}
|
||||||
|
} else if (nextDayRecordingData?.status === 'error') {
|
||||||
|
setNextDayRecording(null);
|
||||||
|
if (!nextDayErrorShown) {
|
||||||
|
toast.error(nextDayRecordingData.message || 'Terjadi kesalahan saat memuat data hari berikutnya', { duration: Infinity });
|
||||||
|
setNextDayErrorShown(true);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
setNextDayRecording(null);
|
setNextDayRecording(null);
|
||||||
|
if (nextDayErrorShown) {
|
||||||
|
toast.dismiss();
|
||||||
|
setNextDayErrorShown(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}, [nextDayRecordingData]);
|
}, [nextDayRecordingData, nextDayErrorShown]);
|
||||||
|
|
||||||
const {
|
const {
|
||||||
rawData: eggProductsData,
|
rawData: eggProductsData,
|
||||||
@@ -1315,6 +1330,10 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
|
|||||||
toast.dismiss();
|
toast.dismiss();
|
||||||
setDuplicateErrorShown(false);
|
setDuplicateErrorShown(false);
|
||||||
}
|
}
|
||||||
|
if (nextDayErrorShown) {
|
||||||
|
toast.dismiss();
|
||||||
|
setNextDayErrorShown(false);
|
||||||
|
}
|
||||||
setSelectedProjectFlockLocationId(
|
setSelectedProjectFlockLocationId(
|
||||||
location ? location.value.toString() : ''
|
location ? location.value.toString() : ''
|
||||||
);
|
);
|
||||||
@@ -1335,6 +1354,10 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
|
|||||||
toast.dismiss();
|
toast.dismiss();
|
||||||
setDuplicateErrorShown(false);
|
setDuplicateErrorShown(false);
|
||||||
}
|
}
|
||||||
|
if (nextDayErrorShown) {
|
||||||
|
toast.dismiss();
|
||||||
|
setNextDayErrorShown(false);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const kandangChangeHandler = (val: OptionType | OptionType[] | null) => {
|
const kandangChangeHandler = (val: OptionType | OptionType[] | null) => {
|
||||||
@@ -1351,6 +1374,10 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
|
|||||||
toast.dismiss();
|
toast.dismiss();
|
||||||
setDuplicateErrorShown(false);
|
setDuplicateErrorShown(false);
|
||||||
}
|
}
|
||||||
|
if (nextDayErrorShown) {
|
||||||
|
toast.dismiss();
|
||||||
|
setNextDayErrorShown(false);
|
||||||
|
}
|
||||||
if (selectedLocation && kandang) {
|
if (selectedLocation && kandang) {
|
||||||
setStockProductsLocationId(selectedLocation.value.toString());
|
setStockProductsLocationId(selectedLocation.value.toString());
|
||||||
setStockProductsKandangId(kandang.value.toString());
|
setStockProductsKandangId(kandang.value.toString());
|
||||||
@@ -1380,11 +1407,15 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
|
|||||||
toast.dismiss();
|
toast.dismiss();
|
||||||
setDuplicateErrorShown(false);
|
setDuplicateErrorShown(false);
|
||||||
}
|
}
|
||||||
|
if (nextDayErrorShown) {
|
||||||
|
toast.dismiss();
|
||||||
|
setNextDayErrorShown(false);
|
||||||
|
}
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
formik.validateField('project_flock_kandang_id');
|
formik.validateField('project_flock_kandang_id');
|
||||||
}, 0);
|
}, 0);
|
||||||
},
|
},
|
||||||
[formik, duplicateErrorShown]
|
[formik, duplicateErrorShown, nextDayErrorShown]
|
||||||
);
|
);
|
||||||
|
|
||||||
const { formErrorList, handleFormSubmit, close } = useFormikErrorList(formik);
|
const { formErrorList, handleFormSubmit, close } = useFormikErrorList(formik);
|
||||||
|
|||||||
Reference in New Issue
Block a user