refactor(FE-438): Normalize ID handling and simplify callbacks

This commit is contained in:
rstubryan
2025-12-26 22:35:42 +07:00
parent ec95ddbddd
commit 84b49d2ac6
@@ -250,54 +250,46 @@ const UniformityForm = ({
const handleLocationChange = useCallback( const handleLocationChange = useCallback(
(val: OptionType | OptionType[] | null) => { (val: OptionType | OptionType[] | null) => {
const location = val as OptionType | null; const location = val as OptionType | null;
const locationId = Number(location?.value);
formik.setFieldTouched('location', true); formik.setFieldTouched('location', true);
formik.setFieldValue('location', location); formik.setFieldValue('location', location);
formik.setFieldTouched('location_id', true); formik.setFieldTouched('location_id', true);
formik.setFieldValue('location_id', (location as OptionType)?.value || 0); formik.setFieldValue('location_id', locationId);
setSelectedLocation(location); setSelectedLocation(location);
setSelectedProjectFlock(null);
setSelectedKandang(null);
formik.setFieldValue('project_flock', null);
formik.setFieldValue('project_flock_id', 0);
formik.setFieldValue('kandang', null);
formik.setFieldValue('kandang_id', 0);
}, },
[formik] []
); );
const handleProjectFlockChange = useCallback( const handleProjectFlockChange = useCallback(
(val: OptionType | OptionType[] | null) => { (val: OptionType | OptionType[] | null) => {
const projectFlock = val as OptionType | null; const projectFlock = val as OptionType | null;
const projectFlockId = Number(projectFlock?.value);
formik.setFieldTouched('project_flock', true); formik.setFieldTouched('project_flock', true);
formik.setFieldValue('project_flock', projectFlock); formik.setFieldValue('project_flock', projectFlock);
formik.setFieldTouched('project_flock_id', true); formik.setFieldTouched('project_flock_id', true);
formik.setFieldValue( formik.setFieldValue('project_flock_id', projectFlockId);
'project_flock_id',
(projectFlock as OptionType)?.value || 0
);
setSelectedProjectFlock(projectFlock); setSelectedProjectFlock(projectFlock);
setSelectedKandang(null);
formik.setFieldValue('kandang', null);
formik.setFieldValue('kandang_id', 0);
}, },
[formik] []
); );
const handleKandangChange = useCallback( const handleKandangChange = useCallback(
(val: OptionType | OptionType[] | null) => { (val: OptionType | OptionType[] | null) => {
const kandang = val as OptionType | null; const kandang = val as OptionType | null;
const kandangId = Number(kandang?.value);
formik.setFieldTouched('kandang', true); formik.setFieldTouched('kandang', true);
formik.setFieldValue('kandang', kandang); formik.setFieldValue('kandang', kandang);
formik.setFieldTouched('kandang_id', true); formik.setFieldTouched('kandang_id', true);
formik.setFieldValue('kandang_id', (kandang as OptionType)?.value || 0); formik.setFieldValue('kandang_id', kandangId);
setSelectedKandang(kandang); setSelectedKandang(kandang);
}, },
[formik] []
); );
const handleFileChange = useCallback( const handleFileChange = useCallback(