Fix type error when accessing FileList (#2441)
authorAjay Bura <32841439+ajbura@users.noreply.github.com>
Sat, 16 Aug 2025 11:35:34 +0000 (17:05 +0530)
committerGitHub <noreply@github.com>
Sat, 16 Aug 2025 11:35:34 +0000 (21:35 +1000)
src/app/utils/dom.ts

index e467bc580a81922469ef4551b3fd3c5d84f3f5df..80db3ae798ee7d5b3c8858e39084dd33d1292788 100644 (file)
@@ -43,6 +43,17 @@ export const canFitInScrollView = (
 
 export type FilesOrFile<T extends boolean | undefined = undefined> = T extends true ? File[] : File;
 
+export const getFilesFromFileList = (fileList: FileList): File[] => {
+  const files: File[] = [];
+
+  for (let i = 0; i < fileList.length; i += 1) {
+    const file: File | undefined = fileList[i];
+    if (file instanceof File) files.push(file);
+  }
+
+  return files;
+};
+
 export const selectFile = <M extends boolean | undefined = undefined>(
   accept: string,
   multiple?: M
@@ -58,7 +69,7 @@ export const selectFile = <M extends boolean | undefined = undefined>(
       if (!fileList) {
         resolve(undefined);
       } else {
-        const files: File[] = [...fileList].filter((file) => file);
+        const files: File[] = getFilesFromFileList(fileList);
         resolve((multiple ? files : files[0]) as FilesOrFile<M>);
       }
       input.removeEventListener('change', changeHandler);
@@ -70,7 +81,7 @@ export const selectFile = <M extends boolean | undefined = undefined>(
 
 export const getDataTransferFiles = (dataTransfer: DataTransfer): File[] | undefined => {
   const fileList = dataTransfer.files;
-  const files = [...fileList].filter((file) => file);
+  const files: File[] = getFilesFromFileList(fileList);
   if (files.length === 0) return undefined;
   return files;
 };