From 6fdff6706d1c93fe8a4f1f4951421d4a38c9fba3 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Wed, 7 Jan 2026 15:54:16 +0700 Subject: [PATCH] refactor(FE): Clear file input on form reset --- .../form/order/PurchaseOrderAcceptApprovalForm.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/components/pages/purchase/form/order/PurchaseOrderAcceptApprovalForm.tsx b/src/components/pages/purchase/form/order/PurchaseOrderAcceptApprovalForm.tsx index e3997bf0..5c093895 100644 --- a/src/components/pages/purchase/form/order/PurchaseOrderAcceptApprovalForm.tsx +++ b/src/components/pages/purchase/form/order/PurchaseOrderAcceptApprovalForm.tsx @@ -1,6 +1,6 @@ 'use client'; -import { useCallback, useEffect, useMemo, useState } from 'react'; +import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { useFormik } from 'formik'; import { Icon } from '@iconify/react'; import { toast } from 'react-hot-toast'; @@ -53,6 +53,7 @@ const PurchaseOrderAcceptApprovalForm = ({ const [purchaseOrderFormErrorMessage, setPurchaseOrderFormErrorMessage] = useState(''); const [key, setKey] = useState(0); + const fileInputRef = useRef(null); const isRejected = initialValues?.latest_approval?.action === 'REJECTED'; @@ -655,6 +656,7 @@ const PurchaseOrderAcceptApprovalForm = ({ name='travel_documents' label='Dokumen Surat Jalan' accept='.pdf,.jpg,.jpeg,.png' + ref={fileInputRef} onChange={(e) => { const files = Array.from(e.target.files || []); const invalidFiles = files.filter( @@ -694,6 +696,10 @@ const PurchaseOrderAcceptApprovalForm = ({ onClick={() => { if (type === 'add') { formik.resetForm(); + formik.setFieldValue('travel_documents', []); + if (fileInputRef.current) { + fileInputRef.current.value = ''; + } } setPurchaseOrderFormErrorMessage(''); onCancel?.();