refactor(FE): Handle next-day error toast visibility

This commit is contained in:
rstubryan
2026-02-02 15:05:47 +07:00
parent 68feef77fc
commit 8637d1c2c2
@@ -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);