From 437dd75934b35f3ab47874dba36c25a53e59c3f3 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Tue, 13 Jan 2026 08:42:07 +0700 Subject: [PATCH] feat(FE): Add 5MB file size validation for document uploads --- src/components/pages/expense/ExpenseRealizationContent.tsx | 7 +++++++ src/components/pages/expense/ExpenseRequestContent.tsx | 7 +++++++ .../pages/expense/form/ExpenseRealizationForm.tsx | 7 +++++++ 3 files changed, 21 insertions(+) diff --git a/src/components/pages/expense/ExpenseRealizationContent.tsx b/src/components/pages/expense/ExpenseRealizationContent.tsx index ccd57ec3..ea4a0e8d 100644 --- a/src/components/pages/expense/ExpenseRealizationContent.tsx +++ b/src/components/pages/expense/ExpenseRealizationContent.tsx @@ -48,6 +48,13 @@ const ExpenseRealizationContent = ({ const realizationDocumentsChangeHandler = (val: File[]) => { formik.setFieldTouched('documents', true); + + const invalidFiles = val.filter((file) => file.size > 5 * 1024 * 1024); + if (invalidFiles.length > 0) { + toast.error('Ukuran dokumen maksimal 5 MB!'); + return; + } + formik.setFieldValue('documents', val); }; diff --git a/src/components/pages/expense/ExpenseRequestContent.tsx b/src/components/pages/expense/ExpenseRequestContent.tsx index 82c58341..a1ad4643 100644 --- a/src/components/pages/expense/ExpenseRequestContent.tsx +++ b/src/components/pages/expense/ExpenseRequestContent.tsx @@ -251,6 +251,13 @@ const ExpenseRequestContent = ({ const requestDocumentsChangeHandler = (val: File[]) => { formik.setFieldTouched('documents', true); + + const invalidFiles = val.filter((file) => file.size > 5 * 1024 * 1024); + if (invalidFiles.length > 0) { + toast.error('Ukuran dokumen maksimal 5 MB!'); + return; + } + formik.setFieldValue('documents', val); }; diff --git a/src/components/pages/expense/form/ExpenseRealizationForm.tsx b/src/components/pages/expense/form/ExpenseRealizationForm.tsx index 6526b1c1..e214e56f 100644 --- a/src/components/pages/expense/form/ExpenseRealizationForm.tsx +++ b/src/components/pages/expense/form/ExpenseRealizationForm.tsx @@ -223,6 +223,13 @@ const ExpenseRealizationForm = ({ const realizationDocumentsChangeHandler = (val: File[]) => { formik.setFieldTouched('documents', true); + + const invalidFiles = val.filter((file) => file.size > 5 * 1024 * 1024); + if (invalidFiles.length > 0) { + toast.error('Ukuran dokumen maksimal 5 MB!'); + return; + } + formik.setFieldValue('documents', val); };