mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-20 13:32:00 +00:00
refactor(FE-114,136): enhance validation and default values in RecordingForm schema
This commit is contained in:
@@ -7,17 +7,41 @@ export const RecordingFormSchema = Yup.object({
|
||||
value: Yup.number().min(1).required(),
|
||||
label: Yup.string().required(),
|
||||
}).nullable(),
|
||||
flock_id: Yup.number().required('Flock wajib diisi!'),
|
||||
flock_id: Yup.number()
|
||||
.default(0)
|
||||
.typeError('Flock wajib diisi!')
|
||||
.test(
|
||||
'is-valid-flock',
|
||||
'Flock wajib diisi!',
|
||||
(value) => value !== undefined && value !== null && value > 0
|
||||
)
|
||||
.required('Flock wajib diisi!'),
|
||||
location: Yup.object({
|
||||
value: Yup.number().min(1).required(),
|
||||
label: Yup.string().required(),
|
||||
}).nullable(),
|
||||
location_id: Yup.number().required('Lokasi wajib diisi!'),
|
||||
location_id: Yup.number()
|
||||
.default(0)
|
||||
.typeError('Lokasi wajib diisi!')
|
||||
.test(
|
||||
'is-valid-location',
|
||||
'Lokasi wajib diisi!',
|
||||
(value) => value !== undefined && value !== null && value > 0
|
||||
)
|
||||
.required('Lokasi wajib diisi!'),
|
||||
coop: Yup.object({
|
||||
value: Yup.number().min(1).required(),
|
||||
label: Yup.string().required(),
|
||||
}).nullable(),
|
||||
coop_id: Yup.number().required('Kandang wajib diisi!'),
|
||||
coop_id: Yup.number()
|
||||
.default(0)
|
||||
.typeError('Kandang wajib diisi!')
|
||||
.test(
|
||||
'is-valid-coop',
|
||||
'Kandang wajib diisi!',
|
||||
(value) => value !== undefined && value !== null && value > 0
|
||||
)
|
||||
.required('Kandang wajib diisi!'),
|
||||
recording_date: Yup.date()
|
||||
.required('Tanggal recording wajib diisi')
|
||||
.typeError('Format tanggal tidak valid'),
|
||||
@@ -27,10 +51,12 @@ export const RecordingFormSchema = Yup.object({
|
||||
feed_name: Yup.string().required('Nama pakan wajib diisi!'),
|
||||
feed_qty: Yup.number()
|
||||
.required('Qty pakan wajib diisi!')
|
||||
.min(1, 'Qty minimal 1!'),
|
||||
.min(1, 'Qty minimal 1!')
|
||||
.typeError('Qty pakan wajib diisi!'),
|
||||
feed_stock: Yup.number()
|
||||
.required('Stock pakan wajib diisi!')
|
||||
.min(0, 'Stock minimal 0!'),
|
||||
.min(1, 'Stock minimal 1!')
|
||||
.typeError('Stock pakan wajib diisi!'),
|
||||
})
|
||||
)
|
||||
.min(1, 'Minimal harus ada 1 data pakan!')
|
||||
@@ -57,10 +83,12 @@ export const RecordingFormSchema = Yup.object({
|
||||
vaccine_name: Yup.string().required('Nama vaksin wajib diisi!'),
|
||||
total_stock: Yup.number()
|
||||
.required('Total stock wajib diisi!')
|
||||
.min(0, 'Total stock minimal 0!'),
|
||||
.min(1, 'Total stock minimal 1!')
|
||||
.typeError('Total stock wajib diisi!'),
|
||||
used_stock: Yup.number()
|
||||
.required('Jumlah stock wajib diisi!')
|
||||
.min(0, 'Jumlah stock minimal 0!'),
|
||||
.min(1, 'Jumlah stock minimal 1!')
|
||||
.typeError('Jumlah stock wajib diisi!'),
|
||||
})
|
||||
)
|
||||
.min(1, 'Minimal harus ada 1 data vaksinasi!')
|
||||
|
||||
@@ -147,37 +147,19 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
|
||||
const locationChangeHandler = (val: OptionType | OptionType[] | null) => {
|
||||
const locationValue = (val as OptionType)?.value;
|
||||
|
||||
formik.setFieldValue('location', val);
|
||||
formik.setFieldValue('location_id', locationValue || 0);
|
||||
formik.setFieldValue('location', val, false);
|
||||
formik.setFieldValue('location_id', locationValue || 0, false);
|
||||
|
||||
if (locationValue) {
|
||||
formik.setFieldTouched('location', true);
|
||||
formik.setFieldTouched('location_id', true);
|
||||
} else {
|
||||
formik.setFieldTouched('location', false);
|
||||
formik.setFieldTouched('location_id', false);
|
||||
}
|
||||
|
||||
formik.setFieldValue('coop', null);
|
||||
formik.setFieldValue('coop_id', 0);
|
||||
formik.setFieldTouched('coop', false);
|
||||
formik.setFieldTouched('coop_id', false);
|
||||
formik.setFieldValue('coop', null, false);
|
||||
formik.setFieldValue('coop_id', 0, false);
|
||||
setCoopSelectInputValue('');
|
||||
};
|
||||
|
||||
const coopChangeHandler = (val: OptionType | OptionType[] | null) => {
|
||||
const coopValue = (val as OptionType)?.value;
|
||||
|
||||
formik.setFieldValue('coop', val);
|
||||
formik.setFieldValue('coop_id', coopValue || 0);
|
||||
|
||||
if (coopValue) {
|
||||
formik.setFieldTouched('coop', true);
|
||||
formik.setFieldTouched('coop_id', true);
|
||||
} else {
|
||||
formik.setFieldTouched('coop', false);
|
||||
formik.setFieldTouched('coop_id', false);
|
||||
}
|
||||
formik.setFieldValue('coop', val, false);
|
||||
formik.setFieldValue('coop_id', coopValue || 0, false);
|
||||
};
|
||||
|
||||
const isRepeaterInputError = <T extends keyof CreateRecordingPayload>(
|
||||
@@ -224,16 +206,8 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
|
||||
const flockChangeHandler = (val: OptionType | OptionType[] | null) => {
|
||||
const flockValue = (val as OptionType)?.value;
|
||||
|
||||
formik.setFieldValue('flock', val);
|
||||
formik.setFieldValue('flock_id', flockValue || 0);
|
||||
|
||||
if (flockValue) {
|
||||
formik.setFieldTouched('flock', true);
|
||||
formik.setFieldTouched('flock_id', true);
|
||||
} else {
|
||||
formik.setFieldTouched('flock', false);
|
||||
formik.setFieldTouched('flock_id', false);
|
||||
}
|
||||
formik.setFieldValue('flock', val, false);
|
||||
formik.setFieldValue('flock_id', flockValue || 0, false);
|
||||
};
|
||||
|
||||
const addFeedData = () => {
|
||||
|
||||
Reference in New Issue
Block a user