Refactor FileUpload component to ensure onChange is called consistently after file selection, improving state management for file uploads.

This commit is contained in:
Tom Butcher 2026-03-07 19:43:59 +00:00
parent 775393dfd1
commit b5dd009d1a

View File

@ -54,6 +54,7 @@ const FileUpload = ({
currentFiles.length === 0 currentFiles.length === 0
: !currentFiles : !currentFiles
setHasNoItems(noItems) setHasNoItems(noItems)
onChange(currentFiles)
}, [currentFiles, multiple]) }, [currentFiles, multiple])
const handleFileUpload = async (file) => { const handleFileUpload = async (file) => {
@ -68,11 +69,9 @@ const FileUpload = ({
// For multiple files, add to existing array // For multiple files, add to existing array
const newFiles = [...currentFiles, uploadedFile] const newFiles = [...currentFiles, uploadedFile]
setCurrentFiles(newFiles) setCurrentFiles(newFiles)
onChange(newFiles)
} else { } else {
// For single file, replace the value // For single file, replace the value
setCurrentFiles(uploadedFile) setCurrentFiles(uploadedFile)
onChange(uploadedFile)
} }
} }
} catch (error) { } catch (error) {
@ -88,11 +87,9 @@ const FileUpload = ({
// For multiple files, add to existing array // For multiple files, add to existing array
const newFiles = [...currentFiles, selectedFile] const newFiles = [...currentFiles, selectedFile]
setCurrentFiles(newFiles) setCurrentFiles(newFiles)
onChange(newFiles)
} else { } else {
// For single file, replace the value // For single file, replace the value
setCurrentFiles(selectedFile) setCurrentFiles(selectedFile)
onChange(selectedFile)
} }
// Clear the selection // Clear the selection
setSelectedFile(null) setSelectedFile(null)