From e7085ab4ff31b3e368a47d12f1b36a1cdbbab967 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Tue, 14 Oct 2025 10:02:56 +0700 Subject: [PATCH] feat(FE-65): add file size validation for dokumen in MovementForm --- .../inventory/movement/form/MovementForm.schema.ts | 10 +++++++++- .../pages/inventory/movement/form/MovementForm.tsx | 4 ++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/components/pages/inventory/movement/form/MovementForm.schema.ts b/src/components/pages/inventory/movement/form/MovementForm.schema.ts index 0bc0397c..f606b0c5 100644 --- a/src/components/pages/inventory/movement/form/MovementForm.schema.ts +++ b/src/components/pages/inventory/movement/form/MovementForm.schema.ts @@ -59,7 +59,15 @@ const EkspedisiObjectSchema: Yup.ObjectSchema = 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().required('Dokumen wajib diisi!'), + dokumen: Yup.mixed() + .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!') diff --git a/src/components/pages/inventory/movement/form/MovementForm.tsx b/src/components/pages/inventory/movement/form/MovementForm.tsx index db432a4d..772f70d5 100644 --- a/src/components/pages/inventory/movement/form/MovementForm.tsx +++ b/src/components/pages/inventory/movement/form/MovementForm.tsx @@ -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