diff --git a/server/Dockerfile b/server/Dockerfile index fe1a07bf923d6..45c68e65e0b94 100644 --- a/server/Dockerfile +++ b/server/Dockerfile @@ -1,5 +1,5 @@ # dev build -FROM ghcr.io/immich-app/base-server-dev:20240813@sha256:2e204a2256c088c9e4a0cf34cc9f70f9196c05e8744004000e7d2889466fc735 AS dev +FROM ghcr.io/immich-app/base-server-dev:20240820@sha256:a28296b40c1247e539894ac4013e6a3e20588d5aefe697fe2ada15f1bd23f6e5 AS dev RUN apt-get install --no-install-recommends -yqq tini WORKDIR /usr/src/app 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 935c63500d0e1..e84d2d66f08f2 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 @@ -40,11 +40,23 @@ return handleFiles(dataTransfer.files); } - const transferEntries = Array.from(dataTransfer.items) - .map((i: DataTransferItem) => i.webkitGetAsEntry()) - .filter((i) => i !== null); - const files = await getAllFilesFromTransferEntries(transferEntries); - return handleFiles(files); + const entries: FileSystemEntry[] = []; + const files: File[] = []; + for (const item of dataTransfer.items) { + const entry = item.webkitGetAsEntry(); + if (entry) { + entries.push(entry); + continue; + } + + const file = item.getAsFile(); + if (file) { + files.push(file); + } + } + + const directoryFiles = await getAllFilesFromTransferEntries(entries); + return handleFiles([...files, ...directoryFiles]); }; const browserSupportsDirectoryUpload = () => typeof DataTransferItem.prototype.webkitGetAsEntry === 'function';