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(),
|
value: Yup.number().min(1).required(),
|
||||||
label: Yup.string().required(),
|
label: Yup.string().required(),
|
||||||
}).nullable(),
|
}).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({
|
location: Yup.object({
|
||||||
value: Yup.number().min(1).required(),
|
value: Yup.number().min(1).required(),
|
||||||
label: Yup.string().required(),
|
label: Yup.string().required(),
|
||||||
}).nullable(),
|
}).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({
|
coop: Yup.object({
|
||||||
value: Yup.number().min(1).required(),
|
value: Yup.number().min(1).required(),
|
||||||
label: Yup.string().required(),
|
label: Yup.string().required(),
|
||||||
}).nullable(),
|
}).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()
|
recording_date: Yup.date()
|
||||||
.required('Tanggal recording wajib diisi')
|
.required('Tanggal recording wajib diisi')
|
||||||
.typeError('Format tanggal tidak valid'),
|
.typeError('Format tanggal tidak valid'),
|
||||||
@@ -27,10 +51,12 @@ export const RecordingFormSchema = Yup.object({
|
|||||||
feed_name: Yup.string().required('Nama pakan wajib diisi!'),
|
feed_name: Yup.string().required('Nama pakan wajib diisi!'),
|
||||||
feed_qty: Yup.number()
|
feed_qty: Yup.number()
|
||||||
.required('Qty pakan wajib diisi!')
|
.required('Qty pakan wajib diisi!')
|
||||||
.min(1, 'Qty minimal 1!'),
|
.min(1, 'Qty minimal 1!')
|
||||||
|
.typeError('Qty pakan wajib diisi!'),
|
||||||
feed_stock: Yup.number()
|
feed_stock: Yup.number()
|
||||||
.required('Stock pakan wajib diisi!')
|
.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!')
|
.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!'),
|
vaccine_name: Yup.string().required('Nama vaksin wajib diisi!'),
|
||||||
total_stock: Yup.number()
|
total_stock: Yup.number()
|
||||||
.required('Total stock wajib diisi!')
|
.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()
|
used_stock: Yup.number()
|
||||||
.required('Jumlah stock wajib diisi!')
|
.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!')
|
.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 locationChangeHandler = (val: OptionType | OptionType[] | null) => {
|
||||||
const locationValue = (val as OptionType)?.value;
|
const locationValue = (val as OptionType)?.value;
|
||||||
|
|
||||||
formik.setFieldValue('location', val);
|
formik.setFieldValue('location', val, false);
|
||||||
formik.setFieldValue('location_id', locationValue || 0);
|
formik.setFieldValue('location_id', locationValue || 0, false);
|
||||||
|
|
||||||
if (locationValue) {
|
formik.setFieldValue('coop', null, false);
|
||||||
formik.setFieldTouched('location', true);
|
formik.setFieldValue('coop_id', 0, false);
|
||||||
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);
|
|
||||||
setCoopSelectInputValue('');
|
setCoopSelectInputValue('');
|
||||||
};
|
};
|
||||||
|
|
||||||
const coopChangeHandler = (val: OptionType | OptionType[] | null) => {
|
const coopChangeHandler = (val: OptionType | OptionType[] | null) => {
|
||||||
const coopValue = (val as OptionType)?.value;
|
const coopValue = (val as OptionType)?.value;
|
||||||
|
|
||||||
formik.setFieldValue('coop', val);
|
formik.setFieldValue('coop', val, false);
|
||||||
formik.setFieldValue('coop_id', coopValue || 0);
|
formik.setFieldValue('coop_id', coopValue || 0, false);
|
||||||
|
|
||||||
if (coopValue) {
|
|
||||||
formik.setFieldTouched('coop', true);
|
|
||||||
formik.setFieldTouched('coop_id', true);
|
|
||||||
} else {
|
|
||||||
formik.setFieldTouched('coop', false);
|
|
||||||
formik.setFieldTouched('coop_id', false);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const isRepeaterInputError = <T extends keyof CreateRecordingPayload>(
|
const isRepeaterInputError = <T extends keyof CreateRecordingPayload>(
|
||||||
@@ -224,16 +206,8 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
|
|||||||
const flockChangeHandler = (val: OptionType | OptionType[] | null) => {
|
const flockChangeHandler = (val: OptionType | OptionType[] | null) => {
|
||||||
const flockValue = (val as OptionType)?.value;
|
const flockValue = (val as OptionType)?.value;
|
||||||
|
|
||||||
formik.setFieldValue('flock', val);
|
formik.setFieldValue('flock', val, false);
|
||||||
formik.setFieldValue('flock_id', flockValue || 0);
|
formik.setFieldValue('flock_id', flockValue || 0, false);
|
||||||
|
|
||||||
if (flockValue) {
|
|
||||||
formik.setFieldTouched('flock', true);
|
|
||||||
formik.setFieldTouched('flock_id', true);
|
|
||||||
} else {
|
|
||||||
formik.setFieldTouched('flock', false);
|
|
||||||
formik.setFieldTouched('flock_id', false);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const addFeedData = () => {
|
const addFeedData = () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user