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]
|
||||
);
|
||||
const [duplicateErrorShown, setDuplicateErrorShown] = useState(false);
|
||||
const [nextDayErrorShown, setNextDayErrorShown] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
return () => {
|
||||
@@ -575,10 +576,24 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
|
||||
setNextDayRecording(
|
||||
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 {
|
||||
setNextDayRecording(null);
|
||||
if (nextDayErrorShown) {
|
||||
toast.dismiss();
|
||||
setNextDayErrorShown(false);
|
||||
}
|
||||
}
|
||||
}, [nextDayRecordingData]);
|
||||
}, [nextDayRecordingData, nextDayErrorShown]);
|
||||
|
||||
const {
|
||||
rawData: eggProductsData,
|
||||
@@ -1315,6 +1330,10 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
|
||||
toast.dismiss();
|
||||
setDuplicateErrorShown(false);
|
||||
}
|
||||
if (nextDayErrorShown) {
|
||||
toast.dismiss();
|
||||
setNextDayErrorShown(false);
|
||||
}
|
||||
setSelectedProjectFlockLocationId(
|
||||
location ? location.value.toString() : ''
|
||||
);
|
||||
@@ -1335,6 +1354,10 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
|
||||
toast.dismiss();
|
||||
setDuplicateErrorShown(false);
|
||||
}
|
||||
if (nextDayErrorShown) {
|
||||
toast.dismiss();
|
||||
setNextDayErrorShown(false);
|
||||
}
|
||||
};
|
||||
|
||||
const kandangChangeHandler = (val: OptionType | OptionType[] | null) => {
|
||||
@@ -1351,6 +1374,10 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
|
||||
toast.dismiss();
|
||||
setDuplicateErrorShown(false);
|
||||
}
|
||||
if (nextDayErrorShown) {
|
||||
toast.dismiss();
|
||||
setNextDayErrorShown(false);
|
||||
}
|
||||
if (selectedLocation && kandang) {
|
||||
setStockProductsLocationId(selectedLocation.value.toString());
|
||||
setStockProductsKandangId(kandang.value.toString());
|
||||
@@ -1380,11 +1407,15 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
|
||||
toast.dismiss();
|
||||
setDuplicateErrorShown(false);
|
||||
}
|
||||
if (nextDayErrorShown) {
|
||||
toast.dismiss();
|
||||
setNextDayErrorShown(false);
|
||||
}
|
||||
setTimeout(() => {
|
||||
formik.validateField('project_flock_kandang_id');
|
||||
}, 0);
|
||||
},
|
||||
[formik, duplicateErrorShown]
|
||||
[formik, duplicateErrorShown, nextDayErrorShown]
|
||||
);
|
||||
|
||||
const { formErrorList, handleFormSubmit, close } = useFormikErrorList(formik);
|
||||
|
||||
Reference in New Issue
Block a user