diff --git a/web/src/lib/components/shared-components/drag-and-drop-upload-overlay.svelte b/web/src/lib/components/shared-components/drag-and-drop-upload-overlay.svelte index 620064ca1e..d0620de5b8 100644 --- a/web/src/lib/components/shared-components/drag-and-drop-upload-overlay.svelte +++ b/web/src/lib/components/shared-components/drag-and-drop-upload-overlay.svelte @@ -96,13 +96,25 @@ }); }; + const readEntriesAsync = (reader: FileSystemDirectoryReader) => { + return new Promise((resolve, reject) => { + reader.readEntries(resolve, reject); + }); + }; + const getContentsFromFileSystemDirectoryEntry = async ( fileSystemDirectoryEntry: FileSystemDirectoryEntry, ): Promise => { - return new Promise((resolve, reject) => { - const reader = fileSystemDirectoryEntry.createReader(); - reader.readEntries(resolve, reject); - }); + const reader = fileSystemDirectoryEntry.createReader(); + const files: FileSystemEntry[] = []; + let entries: FileSystemEntry[]; + + do { + entries = await readEntriesAsync(reader); + files.push(...entries); + } while (entries.length > 0); + + return files; }; const handleFiles = async (files?: FileList | File[]) => {