moved electronFiles and webFilesS state to uploader Component

This commit is contained in:
Abhinav 2022-08-31 11:17:16 +05:30
parent da39180c59
commit 336be411cf
2 changed files with 40 additions and 35 deletions

View file

@ -54,15 +54,14 @@ interface Props {
showCollectionSelector: () => void;
setFiles: SetFiles;
isFirstUpload: boolean;
electronFiles: ElectronFile[];
setElectronFiles: (files: ElectronFile[]) => void;
webFiles: File[];
setWebFiles: (files: File[]) => void;
uploadTypeSelectorView: boolean;
setUploadTypeSelectorView: (open: boolean) => void;
showSessionExpiredMessage: () => void;
showUploadFilesDialog: () => void;
showUploadDirsDialog: () => void;
folderSelectorFiles: File[];
fileSelectorFiles: File[];
dragAndDropFiles: File[];
}
export default function Uploader(props: Props) {
@ -92,6 +91,8 @@ export default function Uploader(props: Props) {
const pendingDesktopUploadCollectionName = useRef<string>('');
const uploadType = useRef<UPLOAD_TYPE>(null);
const zipPaths = useRef<string[]>(null);
const [electronFiles, setElectronFiles] = useState<ElectronFile[]>(null);
const [webFiles, setWebFiles] = useState([]);
const closeUploadProgress = () => setUploadProgressView(false);
@ -120,8 +121,28 @@ export default function Uploader(props: Props) {
useEffect(() => {
if (
props.electronFiles?.length > 0 ||
props.webFiles?.length > 0 ||
uploadType.current === UPLOAD_TYPE.FOLDERS &&
props.folderSelectorFiles?.length > 0
) {
setWebFiles(props.folderSelectorFiles);
} else if (
uploadType.current === UPLOAD_TYPE.FILES &&
props.fileSelectorFiles?.length > 0
) {
setWebFiles(props.fileSelectorFiles);
} else if (props.dragAndDropFiles?.length > 0) {
setWebFiles(props.dragAndDropFiles);
}
}, [
props.dragAndDropFiles,
props.fileSelectorFiles,
props.folderSelectorFiles,
]);
useEffect(() => {
if (
electronFiles?.length > 0 ||
webFiles?.length > 0 ||
appContext.sharedFiles?.length > 0
) {
if (props.uploadInProgress) {
@ -144,17 +165,17 @@ export default function Uploader(props: Props) {
return;
}
props.setLoading(true);
if (props.webFiles?.length > 0) {
if (webFiles?.length > 0) {
// File selection by drag and drop or selection of file.
toUploadFiles.current = props.webFiles;
props.setWebFiles([]);
toUploadFiles.current = webFiles;
setWebFiles([]);
} else if (appContext.sharedFiles?.length > 0) {
toUploadFiles.current = appContext.sharedFiles;
appContext.resetSharedFiles();
} else if (props.electronFiles?.length > 0) {
} else if (electronFiles?.length > 0) {
// File selection from desktop app
toUploadFiles.current = props.electronFiles;
props.setElectronFiles([]);
toUploadFiles.current = electronFiles;
setElectronFiles([]);
}
const analysisResult = analyseUploadFiles(
uploadType.current,
@ -168,7 +189,7 @@ export default function Uploader(props: Props) {
);
props.setLoading(false);
}
}, [props.webFiles, appContext.sharedFiles, props.electronFiles]);
}, [webFiles, appContext.sharedFiles, electronFiles]);
const resumeDesktopUpload = async (
type: UPLOAD_TYPE,
@ -179,7 +200,7 @@ export default function Uploader(props: Props) {
isPendingDesktopUpload.current = true;
pendingDesktopUploadCollectionName.current = collectionName;
uploadType.current = type;
props.setElectronFiles(electronFiles);
setElectronFiles(electronFiles);
}
};
@ -420,7 +441,7 @@ export default function Uploader(props: Props) {
zipPaths.current = response.zipPaths;
}
if (files?.length > 0) {
props.setElectronFiles(files);
setElectronFiles(files);
props.setUploadTypeSelectorView(false);
}
};
@ -456,8 +477,6 @@ export default function Uploader(props: Props) {
const handleFileUpload = handleUpload(UPLOAD_TYPE.FILES);
const handleFolderUpload = handleUpload(UPLOAD_TYPE.FOLDERS);
const handleZipUpload = handleUpload(UPLOAD_TYPE.ZIPS);
const closeUploadTypeSelector = () =>
props.setUploadTypeSelectorView(false);
return (
<>
@ -477,7 +496,7 @@ export default function Uploader(props: Props) {
/>
<UploadTypeSelector
show={props.uploadTypeSelectorView}
onHide={closeUploadTypeSelector}
onHide={props.closeUploadTypeSelector}
uploadFiles={handleFileUpload}
uploadFolders={handleFolderUpload}
uploadGoogleTakeoutZips={handleZipUpload}

View file

@ -90,7 +90,6 @@ import { EnteFile } from 'types/file';
import { GalleryContextType, SelectedState } from 'types/gallery';
import { VISIBILITY_STATE } from 'types/magicMetadata';
import Notification from 'components/Notification';
import { ElectronFile } from 'types/upload';
import Collections from 'components/Collections';
import { GalleryNavbar } from 'components/pages/gallery/Navbar';
import { Search, SearchResultSummary, UpdateSearch } from 'types/search';
@ -202,8 +201,6 @@ export default function Gallery() {
const showPlanSelectorModal = () => setPlanModalView(true);
const [electronFiles, setElectronFiles] = useState<ElectronFile[]>(null);
const [webFiles, setWebFiles] = useState([]);
const [uploadTypeSelectorView, setUploadTypeSelectorView] = useState(false);
const [sidebarView, setSidebarView] = useState(false);
@ -285,16 +282,6 @@ export default function Gallery() {
[notificationAttributes]
);
useEffect(() => {
if (dragAndDropFiles?.length > 0) {
setWebFiles(dragAndDropFiles);
} else if (folderSelectorFiles?.length > 0) {
setWebFiles(folderSelectorFiles);
} else if (fileSelectorFiles?.length > 0) {
setWebFiles(fileSelectorFiles);
}
}, [dragAndDropFiles, fileSelectorFiles, folderSelectorFiles]);
useEffect(() => {
if (typeof activeCollection === 'undefined') {
return;
@ -680,10 +667,9 @@ export default function Gallery() {
setUploadInProgress={setUploadInProgress}
setFiles={setFiles}
isFirstUpload={hasNonEmptyCollections(collectionSummaries)}
electronFiles={electronFiles}
setElectronFiles={setElectronFiles}
webFiles={webFiles}
setWebFiles={setWebFiles}
fileSelectorFiles={fileSelectorFiles}
folderSelectorFiles={folderSelectorFiles}
dragAndDropFiles={dragAndDropFiles}
uploadTypeSelectorView={uploadTypeSelectorView}
setUploadTypeSelectorView={setUploadTypeSelectorView}
showUploadFilesDialog={openFileSelector}