mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-25 07:45:47 +00:00
refactor(FE-208,212): update PurchaseRequestForm validation for area and location fields, enhance error handling and conditional checks
This commit is contained in:
@@ -106,7 +106,10 @@ export const PurchaseRequestFormSchema: Yup.ObjectSchema<PurchaseRequestFormSche
|
|||||||
}).nullable(),
|
}).nullable(),
|
||||||
area_id: Yup.number()
|
area_id: Yup.number()
|
||||||
.required('Area wajib diisi!')
|
.required('Area wajib diisi!')
|
||||||
.min(1, 'Area wajib diisi!')
|
.test('is-valid-area', 'Area wajib diisi!', function (value) {
|
||||||
|
if (!this.parent.area) return true;
|
||||||
|
return Boolean(value && value > 0);
|
||||||
|
})
|
||||||
.typeError('Area wajib diisi!'),
|
.typeError('Area wajib diisi!'),
|
||||||
location: Yup.object({
|
location: Yup.object({
|
||||||
value: Yup.number().min(1).required(),
|
value: Yup.number().min(1).required(),
|
||||||
@@ -114,7 +117,10 @@ export const PurchaseRequestFormSchema: Yup.ObjectSchema<PurchaseRequestFormSche
|
|||||||
}).nullable(),
|
}).nullable(),
|
||||||
location_id: Yup.number()
|
location_id: Yup.number()
|
||||||
.required('Lokasi wajib diisi!')
|
.required('Lokasi wajib diisi!')
|
||||||
.min(1, 'Lokasi wajib diisi!')
|
.test('is-valid-location', 'Lokasi wajib diisi!', function (value) {
|
||||||
|
if (!this.parent.location) return true;
|
||||||
|
return Boolean(value && value > 0);
|
||||||
|
})
|
||||||
.typeError('Lokasi wajib diisi!'),
|
.typeError('Lokasi wajib diisi!'),
|
||||||
credit_term: Yup.number()
|
credit_term: Yup.number()
|
||||||
.required('Termin kredit wajib diisi!')
|
.required('Termin kredit wajib diisi!')
|
||||||
|
|||||||
@@ -543,7 +543,7 @@ const PurchaseRequestForm = ({
|
|||||||
onInputChange={setAreaSelectInputValue}
|
onInputChange={setAreaSelectInputValue}
|
||||||
isLoading={isLoadingAreas}
|
isLoading={isLoadingAreas}
|
||||||
isError={
|
isError={
|
||||||
formik.touched.area_id && Boolean(formik.errors.area_id)
|
formik.touched.area && Boolean(formik.errors.area_id)
|
||||||
}
|
}
|
||||||
errorMessage={formik.errors.area_id as string}
|
errorMessage={formik.errors.area_id as string}
|
||||||
isDisabled={type === 'detail'}
|
isDisabled={type === 'detail'}
|
||||||
@@ -564,8 +564,7 @@ const PurchaseRequestForm = ({
|
|||||||
onInputChange={setLocationSelectInputValue}
|
onInputChange={setLocationSelectInputValue}
|
||||||
isLoading={isLoadingLocations}
|
isLoading={isLoadingLocations}
|
||||||
isError={
|
isError={
|
||||||
formik.touched.location_id &&
|
formik.touched.location && Boolean(formik.errors.location_id)
|
||||||
Boolean(formik.errors.location_id)
|
|
||||||
}
|
}
|
||||||
errorMessage={formik.errors.location_id as string}
|
errorMessage={formik.errors.location_id as string}
|
||||||
isDisabled={type === 'detail' || !formik.values.area_id}
|
isDisabled={type === 'detail' || !formik.values.area_id}
|
||||||
|
|||||||
Reference in New Issue
Block a user