diff --git a/web/apps/photos/src/components/Upload/Uploader.tsx b/web/apps/photos/src/components/Upload/Uploader.tsx
index 1f3621629..d8087eb5b 100644
--- a/web/apps/photos/src/components/Upload/Uploader.tsx
+++ b/web/apps/photos/src/components/Upload/Uploader.tsx
@@ -74,13 +74,13 @@ interface Props {
isFirstUpload?: boolean;
uploadTypeSelectorView: boolean;
showSessionExpiredMessage: () => void;
- showUploadFilesDialog: () => void;
- showUploadDirsDialog: () => void;
- showUploadZipFilesDialog?: () => void;
- webFolderSelectorFiles: File[];
- webFileSelectorFiles: File[];
- webFileSelectorZipFiles?: File[];
dragAndDropFiles: File[];
+ openFileSelector: () => void;
+ fileSelectorFiles: File[];
+ openFolderSelector: () => void;
+ folderSelectorFiles: File[];
+ openZipFileSelector?: () => void;
+ fileSelectorZipFiles?: File[];
uploadCollection?: Collection;
uploadTypeSelectorIntent: UploadTypeSelectorIntent;
activeCollection?: Collection;
@@ -239,16 +239,16 @@ export default function Uploader(props: Props) {
watcher.init(upload, requestSyncWithRemote);
electron.pendingUploads().then((pending) => {
- if (pending) {
- log.info("Resuming pending desktop upload", pending);
- resumeDesktopUpload(
- pending.type == "files"
- ? PICKED_UPLOAD_TYPE.FILES
- : PICKED_UPLOAD_TYPE.ZIPS,
- pending.files,
- pending.collectionName,
- );
- }
+ if (!pending) return;
+
+ const { collectionName, filePaths, zipEntries } = pending;
+ if (filePaths.length == 0 && zipEntries.length == 0) return;
+
+ log.info("Resuming pending upload", pending);
+ isPendingDesktopUpload.current = true;
+ pendingDesktopUploadCollectionName.current = collectionName;
+ setDesktopFilePaths(filePaths);
+ setDesktopZipEntries(zipEntries);
});
}
}, [
@@ -258,9 +258,8 @@ export default function Uploader(props: Props) {
appContext.isCFProxyDisabled,
]);
- // this handles the change of selectorFiles changes on web when user selects
- // files for upload through the opened file/folder selector or dragAndDrop them
- // the webFiles state is update which triggers the upload of those files
+ // Handle selected files when user selects files for upload through the open
+ // file / open folder selection dialog, or drag-and-drops them.
useEffect(() => {
if (appContext.watchFolderView) {
// if watch folder dialog is open don't catch the dropped file
@@ -463,19 +462,6 @@ export default function Uploader(props: Props) {
}
}, [webFiles, appContext.sharedFiles, electronFiles, desktopFilePaths]);
- const resumeDesktopUpload = async (
- type: PICKED_UPLOAD_TYPE,
- electronFiles: ElectronFile[],
- collectionName: string,
- ) => {
- if (electronFiles && electronFiles?.length > 0) {
- isPendingDesktopUpload.current = true;
- pendingDesktopUploadCollectionName.current = collectionName;
- pickedUploadType.current = type;
- setElectronFiles(electronFiles);
- }
- };
-
const preCollectionCreationAction = async () => {
props.closeCollectionSelector?.();
props.setShouldDisableDropzone(!uploadManager.shouldAllowNewUpload());
diff --git a/web/apps/photos/src/pages/gallery/index.tsx b/web/apps/photos/src/pages/gallery/index.tsx
index 658f62b45..70b48c3cc 100644
--- a/web/apps/photos/src/pages/gallery/index.tsx
+++ b/web/apps/photos/src/pages/gallery/index.tsx
@@ -211,26 +211,26 @@ export default function Gallery() {
disabled: shouldDisableDropzone,
});
const {
- selectedFiles: webFileSelectorFiles,
+ selectedFiles: fileSelectorFiles,
open: openFileSelector,
getInputProps: getFileSelectorInputProps,
} = useFileInput({
directory: false,
});
const {
- selectedFiles: webFolderSelectorFiles,
+ selectedFiles: folderSelectorFiles,
open: openFolderSelector,
getInputProps: getFolderSelectorInputProps,
} = useFileInput({
directory: true,
});
const {
- selectedFiles: webFileSelectorZipFiles,
+ selectedFiles: fileSelectorZipFiles,
open: openZipFileSelector,
getInputProps: getZipFileSelectorInputProps,
} = useFileInput({
directory: false,
- accept: ".zip"
+ accept: ".zip",
});
const [isInSearchMode, setIsInSearchMode] = useState(false);
@@ -1121,7 +1121,6 @@ export default function Gallery() {
null,
false,
)}
- uploadTypeSelectorIntent={uploadTypeSelectorIntent}
setLoading={setBlockingLoad}
setCollectionNamerAttributes={setCollectionNamerAttributes}
setShouldDisableDropzone={setShouldDisableDropzone}
@@ -1130,15 +1129,18 @@ export default function Gallery() {
isFirstUpload={
!hasNonSystemCollections(collectionSummaries)
}
- webFileSelectorFiles={webFileSelectorFiles}
- webFolderSelectorFiles={webFolderSelectorFiles}
- webFileSelectorZipFiles={webFileSelectorZipFiles}
- dragAndDropFiles={dragAndDropFiles}
- uploadTypeSelectorView={uploadTypeSelectorView}
- showUploadFilesDialog={openFileSelector}
- showUploadDirsDialog={openFolderSelector}
- showUploadZipFilesDialog={openZipFileSelector}
- showSessionExpiredMessage={showSessionExpiredMessage}
+ {...{
+ dragAndDropFiles,
+ openFileSelector,
+ fileSelectorFiles,
+ openFolderSelector,
+ folderSelectorFiles,
+ openZipFileSelector,
+ fileSelectorZipFiles,
+ uploadTypeSelectorIntent,
+ uploadTypeSelectorView,
+ showSessionExpiredMessage,
+ }}
/>