diff --git a/src/components/pages/inventory/movement/form/MovementForm.schema.ts b/src/components/pages/inventory/movement/form/MovementForm.schema.ts index f606b0c5..aa138cac 100644 --- a/src/components/pages/inventory/movement/form/MovementForm.schema.ts +++ b/src/components/pages/inventory/movement/form/MovementForm.schema.ts @@ -61,6 +61,14 @@ const EkspedisiObjectSchema: Yup.ObjectSchema = Yup.object({ no_surat_jalan: Yup.string().required('No surat jalan wajib diisi!'), dokumen: Yup.mixed() .required('Dokumen wajib diisi!') + .test( + 'fileType', + 'Mohon upload file berformat PDF atau JPEG/JPG.', + (value) => + typeof value === 'string' || + (value instanceof File && + ['application/pdf', 'image/jpeg', 'image/jpg'].includes(value.type)) + ) .test( 'fileSize', 'Ukuran dokumen maksimal 2 MB!', diff --git a/src/components/pages/inventory/movement/form/MovementForm.tsx b/src/components/pages/inventory/movement/form/MovementForm.tsx index 772f70d5..cd81b8a0 100644 --- a/src/components/pages/inventory/movement/form/MovementForm.tsx +++ b/src/components/pages/inventory/movement/form/MovementForm.tsx @@ -817,6 +817,17 @@ const MovementForm = ({ type = 'add', initialValues }: MovementFormProps) => { onChange={(e) => { const file = e.target.files?.[0]; if (file) { + const allowedTypes = [ + 'application/pdf', + 'image/jpeg', + 'image/jpg', + ]; + if (!allowedTypes.includes(file.type)) { + toast.error( + 'Mohon upload file berformat PDF atau JPEG/JPG.' + ); + return; + } if (file.size > 2 * 1024 * 1024) { toast.error('Ukuran dokumen maksimal 2 MB!'); return;