diff --git a/web/app/components/base/file-uploader/file-input.tsx b/web/app/components/base/file-uploader/file-input.tsx index e981278c14..f7d659c66f 100644 --- a/web/app/components/base/file-uploader/file-input.tsx +++ b/web/app/components/base/file-uploader/file-input.tsx @@ -13,10 +13,19 @@ const FileInput = ({ const files = useStore(s => s.files) const { handleLocalFileUpload } = useFile(fileConfig) const handleChange = (e: React.ChangeEvent) => { - const file = e.target.files?.[0] + const targetFiles = e.target.files - if (file) - handleLocalFileUpload(file) + if (targetFiles) { + if (fileConfig.number_limits) { + for (let i = 0; i < targetFiles.length; i++) { + if (i + 1 + files.length <= fileConfig.number_limits) + handleLocalFileUpload(targetFiles[i]) + } + } + else { + handleLocalFileUpload(targetFiles[0]) + } + } } const allowedFileTypes = fileConfig.allowed_file_types @@ -32,6 +41,7 @@ const FileInput = ({ onChange={handleChange} accept={accept} disabled={!!(fileConfig.number_limits && files.length >= fileConfig?.number_limits)} + multiple={!!fileConfig.number_limits && fileConfig.number_limits > 1} /> ) }