From 6def4e0fcd4c743e2c93c7c69943e3af1f392d5e Mon Sep 17 00:00:00 2001 From: rstubryan Date: Mon, 19 Jan 2026 10:16:46 +0700 Subject: [PATCH] refactor(FE): Extract DeliveryDocumentSchema for reuse --- .../movement/form/MovementForm.schema.ts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/components/pages/inventory/movement/form/MovementForm.schema.ts b/src/components/pages/inventory/movement/form/MovementForm.schema.ts index 048b1bd2..1a29fa94 100644 --- a/src/components/pages/inventory/movement/form/MovementForm.schema.ts +++ b/src/components/pages/inventory/movement/form/MovementForm.schema.ts @@ -110,6 +110,14 @@ const DeliveryProductObjectSchema = Yup.object({ .typeError('Qty harus berupa angka!'), }); +const DeliveryDocumentSchema = Yup.mixed() + .nullable() + .test('fileSize', 'Ukuran dokumen maksimal 5 MB', (value): boolean => { + if (!value) return true; + if (value instanceof File) return value.size <= 5 * 1024 * 1024; + return true; + }); + const DeliveryObjectSchema: Yup.ObjectSchema = Yup.object({ delivery_cost: Yup.number() .transform((value) => (isNaN(value) || value === 0 ? undefined : value)) @@ -135,13 +143,7 @@ const DeliveryObjectSchema: Yup.ObjectSchema = Yup.object({ }), document_path: Yup.string().nullable().optional(), document_index: Yup.number().optional(), - document: Yup.mixed() - .nullable() - .test('fileSize', 'Ukuran dokumen maksimal 5 MB', (value) => { - if (!value) return true; - if (value instanceof File) return value.size <= 5 * 1024 * 1024; - return true; - }), + document: DeliveryDocumentSchema, driver_name: Yup.string().required('Nama sopir wajib diisi!'), vehicle_plate: Yup.string().required('Plat nomor wajib diisi!'), supplier: Yup.object({