refactor(FE): Clear file input on form reset

This commit is contained in:
rstubryan
2026-01-07 15:54:16 +07:00
parent d5b4111ae4
commit 6fdff6706d
@@ -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<HTMLInputElement>(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?.();