feat(FE-65): add file size validation for dokumen in MovementForm

This commit is contained in:
rstubryan
2025-10-14 10:02:56 +07:00
parent 44e07ddc50
commit e7085ab4ff
2 changed files with 13 additions and 1 deletions
@@ -59,7 +59,15 @@ const EkspedisiObjectSchema: Yup.ObjectSchema<EkspedisiSchema> = Yup.object({
supplier_id: Yup.number().required('Supplier wajib diisi!'),
plat_nomor: Yup.string().required('Plat nomor wajib diisi!'),
no_surat_jalan: Yup.string().required('No surat jalan wajib diisi!'),
dokumen: Yup.mixed<string | File>().required('Dokumen wajib diisi!'),
dokumen: Yup.mixed<string | File>()
.required('Dokumen wajib diisi!')
.test(
'fileSize',
'Ukuran dokumen maksimal 2 MB!',
(value) =>
typeof value === 'string' ||
(value instanceof File && value.size <= 2 * 1024 * 1024)
),
biaya_ekspedisi: Yup.number()
.required('Biaya ekspedisi wajib diisi!')
.min(0, 'Biaya minimal 0!')
@@ -817,6 +817,10 @@ const MovementForm = ({ type = 'add', initialValues }: MovementFormProps) => {
onChange={(e) => {
const file = e.target.files?.[0];
if (file) {
if (file.size > 2 * 1024 * 1024) {
toast.error('Ukuran dokumen maksimal 2 MB!');
return;
}
formik.setFieldValue(
`ekspedisi.${idx}.dokumen`,
file