This commit is contained in:
Manav Rathi 2024-04-29 15:13:52 +05:30
parent d94f0a0f56
commit 864a53afa2
No known key found for this signature in database
3 changed files with 43 additions and 53 deletions

View file

@ -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());

View file

@ -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,
}}
/>
<Sidebar
collectionSummaries={collectionSummaries}

View file

@ -118,14 +118,14 @@ export default function PublicCollectionGallery() {
disabled: shouldDisableDropzone,
});
const {
selectedFiles: webFileSelectorFiles,
selectedFiles: fileSelectorFiles,
open: openFileSelector,
getInputProps: getFileSelectorInputProps,
} = useFileInput({
directory: false,
});
const {
selectedFiles: webFolderSelectorFiles,
selectedFiles: folderSelectorFiles,
open: openFolderSelector,
getInputProps: getFolderSelectorInputProps,
} = useFileInput({
@ -583,17 +583,19 @@ export default function PublicCollectionGallery() {
setLoading={setBlockingLoad}
setShouldDisableDropzone={setShouldDisableDropzone}
setFiles={setPublicFiles}
webFileSelectorFiles={webFileSelectorFiles}
webFolderSelectorFiles={webFolderSelectorFiles}
dragAndDropFiles={dragAndDropFiles}
uploadTypeSelectorView={uploadTypeSelectorView}
closeUploadTypeSelector={closeUploadTypeSelectorView}
showUploadFilesDialog={openFileSelector}
showUploadDirsDialog={openFolderSelector}
showSessionExpiredMessage={showPublicLinkExpiredMessage}
uploadTypeSelectorIntent={
UploadTypeSelectorIntent.collectPhotos
}
{...{
dragAndDropFiles,
openFileSelector,
fileSelectorFiles,
openFolderSelector,
folderSelectorFiles,
}}
/>
<FilesDownloadProgress
attributesList={filesDownloadProgressAttributesList}