Browse Source

fix: upload file component support multiple (#10817)

zxhlyh 5 months ago
parent
commit
133de9a087
1 changed files with 13 additions and 3 deletions
  1. 13 3
      web/app/components/base/file-uploader/file-input.tsx

+ 13 - 3
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<HTMLInputElement>) => {
-    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}
     />
   )
 }