2021-02-17 08:35:19 +00:00
|
|
|
import React, { useEffect, useRef, useState } from 'react';
|
2020-09-12 21:53:41 +00:00
|
|
|
import { useRouter } from 'next/router';
|
2020-09-19 21:20:10 +00:00
|
|
|
import { getKey, SESSION_KEYS } from 'utils/storage/sessionStorage';
|
2021-04-25 15:16:58 +00:00
|
|
|
import {
|
2021-04-27 09:17:38 +00:00
|
|
|
File,
|
2021-04-25 15:16:58 +00:00
|
|
|
getLocalFiles,
|
|
|
|
deleteFiles,
|
2021-04-27 08:40:37 +00:00
|
|
|
syncFiles,
|
2021-04-25 15:16:58 +00:00
|
|
|
} from 'services/fileService';
|
2020-09-20 15:18:35 +00:00
|
|
|
import styled from 'styled-components';
|
2021-02-08 17:15:13 +00:00
|
|
|
import LoadingBar from 'react-top-loading-bar';
|
2020-11-28 18:11:24 +00:00
|
|
|
import Collections from './components/Collections';
|
2021-01-11 08:13:53 +00:00
|
|
|
import Upload from './components/Upload';
|
2021-01-31 12:11:21 +00:00
|
|
|
import {
|
2021-04-23 07:12:56 +00:00
|
|
|
Collection,
|
2021-02-08 16:15:21 +00:00
|
|
|
syncCollections,
|
2021-02-09 06:04:19 +00:00
|
|
|
CollectionAndItsLatestFile,
|
2021-04-27 07:37:42 +00:00
|
|
|
getCollectionsAndTheirLatestFile,
|
2021-01-31 12:11:21 +00:00
|
|
|
getFavItemIds,
|
2021-02-08 17:15:13 +00:00
|
|
|
getLocalCollections,
|
2021-03-15 17:30:49 +00:00
|
|
|
getNonEmptyCollections,
|
2021-01-31 12:11:21 +00:00
|
|
|
} from 'services/collectionService';
|
2021-01-24 20:59:58 +00:00
|
|
|
import constants from 'utils/strings/constants';
|
2021-04-27 08:40:37 +00:00
|
|
|
import { Alert } from 'react-bootstrap';
|
2021-04-23 05:59:09 +00:00
|
|
|
import billingService from 'services/billingService';
|
2021-03-12 12:30:33 +00:00
|
|
|
import PlanSelector from './components/PlanSelector';
|
2021-04-23 05:59:09 +00:00
|
|
|
import { checkSubscriptionPurchase } from 'utils/billingUtil';
|
2020-09-20 15:18:35 +00:00
|
|
|
|
2021-03-18 20:16:18 +00:00
|
|
|
import FullScreenDropZone from 'components/FullScreenDropZone';
|
2021-03-22 10:20:15 +00:00
|
|
|
import Sidebar from 'components/Sidebar';
|
|
|
|
import UploadButton from './components/UploadButton';
|
2021-04-23 05:59:09 +00:00
|
|
|
import { checkConnectivity } from 'utils/common';
|
2021-04-22 14:30:07 +00:00
|
|
|
import {
|
|
|
|
isFirstLogin,
|
|
|
|
justSignedUp,
|
|
|
|
setIsFirstLogin,
|
|
|
|
setJustSignedUp,
|
|
|
|
} from 'utils/storage';
|
2021-03-29 10:30:20 +00:00
|
|
|
import { logoutUser } from 'services/userService';
|
2021-04-07 07:18:45 +00:00
|
|
|
import AlertBanner from './components/AlertBanner';
|
2021-04-07 09:22:59 +00:00
|
|
|
import MessageDialog, { MessageAttributes } from 'components/MessageDialog';
|
2021-04-27 05:35:49 +00:00
|
|
|
import { useDropzone } from 'react-dropzone';
|
2021-04-19 09:44:51 +00:00
|
|
|
import EnteSpinner from 'components/EnteSpinner';
|
2021-04-27 05:50:03 +00:00
|
|
|
import CollectionNamer, {
|
|
|
|
CollectionNamerAttributes,
|
|
|
|
} from './components/CollectionNamer';
|
|
|
|
import CollectionSelector, {
|
|
|
|
CollectionSelectorAttributes,
|
|
|
|
} from './components/CollectionSelector';
|
2021-04-27 05:35:49 +00:00
|
|
|
import { LoadingOverlay } from 'components/LoadingOverlay';
|
2021-04-27 08:40:37 +00:00
|
|
|
import PhotoFrame from 'components/PhotoFrame';
|
2021-04-27 11:58:55 +00:00
|
|
|
import { getSelectedFileIds } from 'utils/file';
|
|
|
|
import { addFilesToCollection } from 'utils/collection';
|
|
|
|
import SelectedFileOptions from './components/SelectedFileOptions';
|
2021-04-29 08:43:18 +00:00
|
|
|
import { errorCodes } from 'utils/common/errorUtil';
|
2021-04-27 08:40:37 +00:00
|
|
|
|
2021-01-12 07:01:00 +00:00
|
|
|
export enum FILE_TYPE {
|
|
|
|
IMAGE,
|
|
|
|
VIDEO,
|
2021-02-08 17:15:13 +00:00
|
|
|
OTHERS,
|
2021-01-12 07:01:00 +00:00
|
|
|
}
|
2020-11-29 14:48:47 +00:00
|
|
|
|
2021-04-19 08:29:12 +00:00
|
|
|
export const DeadCenter = styled.div`
|
2021-01-24 20:22:12 +00:00
|
|
|
flex: 1;
|
|
|
|
display: flex;
|
|
|
|
justify-content: center;
|
|
|
|
align-items: center;
|
|
|
|
color: #fff;
|
|
|
|
text-align: center;
|
|
|
|
flex-direction: column;
|
2020-11-28 18:11:24 +00:00
|
|
|
`;
|
|
|
|
|
2021-03-21 06:54:40 +00:00
|
|
|
export type selectedState = {
|
|
|
|
[k: number]: boolean;
|
2021-03-20 14:58:12 +00:00
|
|
|
count: number;
|
2021-03-21 06:54:40 +00:00
|
|
|
};
|
2021-04-28 06:38:52 +00:00
|
|
|
export type SetLoading = React.Dispatch<React.SetStateAction<Boolean>>;
|
2021-03-20 14:58:12 +00:00
|
|
|
|
2021-04-27 05:50:03 +00:00
|
|
|
export default function Gallery() {
|
2021-01-13 05:31:02 +00:00
|
|
|
const router = useRouter();
|
2021-04-23 07:12:56 +00:00
|
|
|
const [collections, setCollections] = useState<Collection[]>([]);
|
2021-02-09 06:04:19 +00:00
|
|
|
const [
|
2021-04-27 07:37:42 +00:00
|
|
|
collectionsAndTheirLatestFile,
|
|
|
|
setCollectionsAndTheirLatestFile,
|
2021-02-09 06:04:19 +00:00
|
|
|
] = useState<CollectionAndItsLatestFile[]>([]);
|
2021-04-27 09:17:38 +00:00
|
|
|
const [files, setFiles] = useState<File[]>(null);
|
2021-01-20 12:05:04 +00:00
|
|
|
const [favItemIds, setFavItemIds] = useState<Set<number>>();
|
2021-03-29 07:52:20 +00:00
|
|
|
const [bannerMessage, setBannerMessage] = useState<string>(null);
|
2020-12-19 16:23:35 +00:00
|
|
|
const [sinceTime, setSinceTime] = useState(0);
|
2021-02-17 09:47:26 +00:00
|
|
|
const [isFirstLoad, setIsFirstLoad] = useState(false);
|
2021-03-20 14:58:12 +00:00
|
|
|
const [selected, setSelected] = useState<selectedState>({ count: 0 });
|
2021-04-07 07:18:45 +00:00
|
|
|
const [dialogMessage, setDialogMessage] = useState<MessageAttributes>();
|
2021-04-25 15:16:58 +00:00
|
|
|
const [dialogView, setDialogView] = useState(false);
|
2021-04-07 07:18:45 +00:00
|
|
|
const [planModalView, setPlanModalView] = useState(false);
|
2021-04-19 09:36:50 +00:00
|
|
|
const [loading, setLoading] = useState(false);
|
2021-04-27 05:35:49 +00:00
|
|
|
const [
|
|
|
|
collectionSelectorAttributes,
|
|
|
|
setCollectionSelectorAttributes,
|
|
|
|
] = useState<CollectionSelectorAttributes>(null);
|
|
|
|
const [collectionSelectorView, setCollectionSelectorView] = useState(false);
|
|
|
|
|
|
|
|
const [
|
|
|
|
collectionNamerAttributes,
|
|
|
|
setCollectionNamerAttributes,
|
|
|
|
] = useState<CollectionNamerAttributes>(null);
|
|
|
|
const [collectionNamerView, setCollectionNamerView] = useState(false);
|
|
|
|
const {
|
|
|
|
getRootProps,
|
|
|
|
getInputProps,
|
|
|
|
open: openFileUploader,
|
|
|
|
acceptedFiles,
|
|
|
|
} = useDropzone({
|
|
|
|
noClick: true,
|
|
|
|
noKeyboard: true,
|
|
|
|
accept: 'image/*, video/*, application/json, ',
|
|
|
|
});
|
2021-04-07 07:18:45 +00:00
|
|
|
|
2021-02-17 08:35:19 +00:00
|
|
|
const loadingBar = useRef(null);
|
2021-01-13 05:31:02 +00:00
|
|
|
useEffect(() => {
|
|
|
|
const key = getKey(SESSION_KEYS.ENCRYPTION_KEY);
|
|
|
|
if (!key) {
|
|
|
|
router.push('/');
|
2021-02-17 09:16:20 +00:00
|
|
|
return;
|
2021-01-13 05:31:02 +00:00
|
|
|
}
|
|
|
|
const main = async () => {
|
2021-04-03 04:22:57 +00:00
|
|
|
setIsFirstLoad(isFirstLogin());
|
2021-04-20 05:34:19 +00:00
|
|
|
if (justSignedUp()) {
|
2021-04-20 09:30:45 +00:00
|
|
|
setPlanModalView(true);
|
2021-04-20 05:34:19 +00:00
|
|
|
}
|
2021-04-03 04:22:57 +00:00
|
|
|
setIsFirstLogin(false);
|
2021-04-27 08:40:37 +00:00
|
|
|
const files = await getLocalFiles();
|
2021-01-31 12:11:21 +00:00
|
|
|
const collections = await getLocalCollections();
|
2021-03-15 17:41:20 +00:00
|
|
|
const nonEmptyCollections = getNonEmptyCollections(
|
2021-02-09 06:04:19 +00:00
|
|
|
collections,
|
2021-04-27 08:40:37 +00:00
|
|
|
files
|
2021-02-09 06:04:19 +00:00
|
|
|
);
|
2021-04-27 07:37:42 +00:00
|
|
|
const collectionsAndTheirLatestFile = await getCollectionsAndTheirLatestFile(
|
2021-03-15 17:41:20 +00:00
|
|
|
nonEmptyCollections,
|
2021-04-27 08:40:37 +00:00
|
|
|
files
|
2021-03-15 17:41:20 +00:00
|
|
|
);
|
2021-04-27 08:40:37 +00:00
|
|
|
setFiles(files);
|
2021-03-15 17:41:20 +00:00
|
|
|
setCollections(nonEmptyCollections);
|
2021-04-27 07:37:42 +00:00
|
|
|
setCollectionsAndTheirLatestFile(collectionsAndTheirLatestFile);
|
2021-04-27 08:40:37 +00:00
|
|
|
const favItemIds = await getFavItemIds(files);
|
2021-02-09 06:14:00 +00:00
|
|
|
setFavItemIds(favItemIds);
|
2021-04-20 09:43:38 +00:00
|
|
|
await checkSubscriptionPurchase(setDialogMessage, router);
|
2021-02-05 17:09:26 +00:00
|
|
|
await syncWithRemote();
|
2021-02-17 09:47:26 +00:00
|
|
|
setIsFirstLoad(false);
|
2021-04-22 14:30:07 +00:00
|
|
|
setJustSignedUp(false);
|
2021-01-13 05:31:02 +00:00
|
|
|
};
|
|
|
|
main();
|
2021-01-27 06:14:02 +00:00
|
|
|
}, []);
|
2020-09-12 21:53:41 +00:00
|
|
|
|
2021-04-25 15:16:58 +00:00
|
|
|
useEffect(() => setDialogView(true), [dialogMessage]);
|
2021-04-27 05:35:49 +00:00
|
|
|
useEffect(() => setCollectionSelectorView(true), [
|
|
|
|
collectionSelectorAttributes,
|
|
|
|
]);
|
2021-04-27 06:36:56 +00:00
|
|
|
useEffect(() => setCollectionNamerView(true), [collectionNamerAttributes]);
|
2021-04-25 15:16:58 +00:00
|
|
|
|
2021-02-05 17:04:32 +00:00
|
|
|
const syncWithRemote = async () => {
|
2021-03-29 08:52:40 +00:00
|
|
|
try {
|
2021-03-29 09:33:28 +00:00
|
|
|
checkConnectivity();
|
2021-03-29 08:52:40 +00:00
|
|
|
loadingBar.current?.continuousStart();
|
2021-04-07 07:18:45 +00:00
|
|
|
await billingService.updatePlans();
|
|
|
|
await billingService.syncSubscription();
|
2021-04-23 05:59:09 +00:00
|
|
|
const collections = await syncCollections();
|
2021-04-27 08:40:37 +00:00
|
|
|
const { files, isUpdated } = await syncFiles(collections);
|
2021-03-29 08:52:40 +00:00
|
|
|
const nonEmptyCollections = getNonEmptyCollections(
|
|
|
|
collections,
|
2021-04-27 08:40:37 +00:00
|
|
|
files
|
2021-03-29 08:52:40 +00:00
|
|
|
);
|
2021-04-27 07:37:42 +00:00
|
|
|
const collectionAndItsLatestFile = await getCollectionsAndTheirLatestFile(
|
2021-03-29 08:52:40 +00:00
|
|
|
nonEmptyCollections,
|
2021-04-27 08:40:37 +00:00
|
|
|
files
|
2021-03-29 08:52:40 +00:00
|
|
|
);
|
2021-04-27 08:40:37 +00:00
|
|
|
const favItemIds = await getFavItemIds(files);
|
2021-03-29 08:52:40 +00:00
|
|
|
setCollections(nonEmptyCollections);
|
|
|
|
if (isUpdated) {
|
2021-04-27 08:40:37 +00:00
|
|
|
setFiles(files);
|
2021-03-29 08:52:40 +00:00
|
|
|
}
|
2021-04-27 07:37:42 +00:00
|
|
|
setCollectionsAndTheirLatestFile(collectionAndItsLatestFile);
|
2021-03-29 08:52:40 +00:00
|
|
|
setFavItemIds(favItemIds);
|
|
|
|
setSinceTime(new Date().getTime());
|
|
|
|
} catch (e) {
|
2021-04-29 08:43:18 +00:00
|
|
|
switch (e?.status.toString()) {
|
|
|
|
case errorCodes.ERR_SESSION_EXPIRED:
|
|
|
|
setBannerMessage(constants.SESSION_EXPIRED_MESSAGE);
|
|
|
|
setDialogMessage({
|
|
|
|
title: constants.SESSION_EXPIRED,
|
|
|
|
content: constants.SESSION_EXPIRED_MESSAGE,
|
|
|
|
staticBackdrop: true,
|
|
|
|
proceed: {
|
|
|
|
text: constants.LOGIN,
|
|
|
|
action: logoutUser,
|
|
|
|
variant: 'primary',
|
|
|
|
},
|
|
|
|
});
|
|
|
|
break;
|
2021-03-29 10:30:20 +00:00
|
|
|
}
|
2021-03-29 09:00:35 +00:00
|
|
|
} finally {
|
|
|
|
loadingBar.current?.complete();
|
2021-01-27 06:14:02 +00:00
|
|
|
}
|
2021-02-08 17:15:13 +00:00
|
|
|
};
|
2021-01-05 02:40:59 +00:00
|
|
|
|
2021-04-22 12:56:06 +00:00
|
|
|
const clearSelection = function () {
|
|
|
|
setSelected({ count: 0 });
|
|
|
|
};
|
2021-03-20 14:58:12 +00:00
|
|
|
|
2021-02-08 09:20:27 +00:00
|
|
|
const selectCollection = (id?: number) => {
|
2021-01-13 05:31:02 +00:00
|
|
|
const href = `/gallery?collection=${id || ''}`;
|
|
|
|
router.push(href, undefined, { shallow: true });
|
|
|
|
};
|
2021-01-05 07:17:46 +00:00
|
|
|
|
2021-04-27 08:40:37 +00:00
|
|
|
if (!files) {
|
|
|
|
return <div />;
|
|
|
|
}
|
2021-04-27 11:58:55 +00:00
|
|
|
const addToCollectionHelper = addFilesToCollection.bind(
|
|
|
|
null,
|
|
|
|
setCollectionSelectorView,
|
|
|
|
selected,
|
|
|
|
files,
|
|
|
|
clearSelection,
|
|
|
|
syncWithRemote,
|
|
|
|
selectCollection
|
|
|
|
);
|
|
|
|
|
|
|
|
const showCreateCollectionModal = () =>
|
|
|
|
setCollectionNamerAttributes({
|
|
|
|
title: constants.CREATE_COLLECTION,
|
|
|
|
buttonText: constants.CREATE,
|
|
|
|
autoFilledName: '',
|
|
|
|
callback: (collectionName) =>
|
|
|
|
addToCollectionHelper(collectionName, null),
|
|
|
|
});
|
|
|
|
|
|
|
|
const deleteFileHelper = () =>
|
|
|
|
deleteFiles(
|
|
|
|
getSelectedFileIds(selected),
|
|
|
|
clearSelection,
|
|
|
|
syncWithRemote
|
|
|
|
);
|
2021-01-13 05:31:02 +00:00
|
|
|
return (
|
2021-03-18 20:16:18 +00:00
|
|
|
<FullScreenDropZone
|
2021-04-27 05:35:49 +00:00
|
|
|
getRootProps={getRootProps}
|
|
|
|
getInputProps={getInputProps}
|
|
|
|
showCollectionSelector={setCollectionSelectorView.bind(null, true)}
|
2021-03-18 20:16:18 +00:00
|
|
|
>
|
2021-04-19 09:44:51 +00:00
|
|
|
{loading && (
|
|
|
|
<LoadingOverlay>
|
|
|
|
<EnteSpinner />
|
|
|
|
</LoadingOverlay>
|
|
|
|
)}
|
2021-02-17 09:47:26 +00:00
|
|
|
<LoadingBar color="#2dc262" ref={loadingBar} />
|
|
|
|
{isFirstLoad && (
|
2021-02-17 08:35:19 +00:00
|
|
|
<div className="text-center">
|
2021-03-09 10:36:23 +00:00
|
|
|
<Alert variant="success">
|
2021-02-17 08:35:19 +00:00
|
|
|
{constants.INITIAL_LOAD_DELAY_WARNING}
|
|
|
|
</Alert>
|
|
|
|
</div>
|
|
|
|
)}
|
2021-03-12 12:30:33 +00:00
|
|
|
<PlanSelector
|
2021-04-07 07:18:45 +00:00
|
|
|
modalView={planModalView}
|
|
|
|
closeModal={() => setPlanModalView(false)}
|
|
|
|
setDialogMessage={setDialogMessage}
|
2021-04-19 11:02:00 +00:00
|
|
|
setLoading={setLoading}
|
2021-03-29 09:33:28 +00:00
|
|
|
/>
|
2021-04-07 07:18:45 +00:00
|
|
|
<AlertBanner bannerMessage={bannerMessage} />
|
2021-04-05 13:17:48 +00:00
|
|
|
<MessageDialog
|
2021-04-25 15:16:58 +00:00
|
|
|
show={dialogView}
|
|
|
|
onHide={() => setDialogView(false)}
|
2021-04-07 07:18:45 +00:00
|
|
|
attributes={dialogMessage}
|
2021-03-12 12:30:33 +00:00
|
|
|
/>
|
2021-01-13 05:31:02 +00:00
|
|
|
<Collections
|
|
|
|
collections={collections}
|
2021-02-17 08:06:20 +00:00
|
|
|
selected={Number(router.query.collection)}
|
2021-01-13 05:31:02 +00:00
|
|
|
selectCollection={selectCollection}
|
2021-04-24 07:09:37 +00:00
|
|
|
syncWithRemote={syncWithRemote}
|
2021-04-25 15:16:58 +00:00
|
|
|
setDialogMessage={setDialogMessage}
|
2021-04-27 05:35:49 +00:00
|
|
|
setCollectionNamerAttributes={setCollectionNamerAttributes}
|
|
|
|
/>
|
|
|
|
<CollectionNamer
|
|
|
|
show={collectionNamerView}
|
2021-04-27 07:08:58 +00:00
|
|
|
onHide={setCollectionNamerView.bind(null, false)}
|
2021-04-27 05:35:49 +00:00
|
|
|
attributes={collectionNamerAttributes}
|
|
|
|
/>
|
|
|
|
<CollectionSelector
|
|
|
|
show={collectionSelectorView}
|
|
|
|
onHide={setCollectionSelectorView.bind(null, false)}
|
2021-04-27 07:37:42 +00:00
|
|
|
collectionsAndTheirLatestFile={collectionsAndTheirLatestFile}
|
|
|
|
directlyShowNextModal={
|
|
|
|
collectionsAndTheirLatestFile?.length === 0
|
|
|
|
}
|
2021-04-27 05:35:49 +00:00
|
|
|
attributes={collectionSelectorAttributes}
|
2021-01-13 05:31:02 +00:00
|
|
|
/>
|
|
|
|
<Upload
|
2021-04-27 05:35:49 +00:00
|
|
|
syncWithRemote={syncWithRemote}
|
2021-03-29 07:52:20 +00:00
|
|
|
setBannerMessage={setBannerMessage}
|
2021-04-27 05:35:49 +00:00
|
|
|
acceptedFiles={acceptedFiles}
|
2021-04-27 08:40:37 +00:00
|
|
|
existingFiles={files}
|
2021-04-27 05:35:49 +00:00
|
|
|
setCollectionSelectorAttributes={
|
|
|
|
setCollectionSelectorAttributes
|
|
|
|
}
|
2021-04-27 07:08:58 +00:00
|
|
|
closeCollectionSelector={setCollectionSelectorView.bind(
|
|
|
|
null,
|
|
|
|
false
|
|
|
|
)}
|
2021-04-27 05:35:49 +00:00
|
|
|
setLoading={setLoading}
|
|
|
|
setCollectionNamerAttributes={setCollectionNamerAttributes}
|
2021-01-24 20:22:12 +00:00
|
|
|
/>
|
2021-04-04 13:58:17 +00:00
|
|
|
<Sidebar
|
2021-04-27 08:40:37 +00:00
|
|
|
files={files}
|
2021-04-04 13:58:17 +00:00
|
|
|
collections={collections}
|
2021-04-20 11:09:03 +00:00
|
|
|
setDialogMessage={setDialogMessage}
|
2021-04-07 07:18:45 +00:00
|
|
|
setPlanModalView={setPlanModalView}
|
2021-04-04 13:58:17 +00:00
|
|
|
/>
|
2021-04-27 05:35:49 +00:00
|
|
|
<UploadButton openFileUploader={openFileUploader} />
|
2021-04-27 08:40:37 +00:00
|
|
|
<PhotoFrame
|
|
|
|
files={files}
|
|
|
|
setFiles={setFiles}
|
|
|
|
syncWithRemote={syncWithRemote}
|
|
|
|
favItemIds={favItemIds}
|
|
|
|
sinceTime={sinceTime}
|
|
|
|
setSelected={setSelected}
|
|
|
|
selected={selected}
|
|
|
|
isFirstLoad={isFirstLoad}
|
|
|
|
openFileUploader={openFileUploader}
|
|
|
|
loadingBar={loadingBar}
|
|
|
|
/>
|
|
|
|
{files.length < 30 && (
|
2021-03-09 08:20:43 +00:00
|
|
|
<Alert
|
2021-03-09 10:36:23 +00:00
|
|
|
variant="success"
|
2021-03-10 15:24:31 +00:00
|
|
|
style={{
|
|
|
|
position: 'fixed',
|
|
|
|
bottom: '1%',
|
|
|
|
width: '100%',
|
|
|
|
textAlign: 'center',
|
|
|
|
marginBottom: '0px',
|
|
|
|
}}
|
2021-03-09 08:20:43 +00:00
|
|
|
>
|
|
|
|
{constants.INSTALL_MOBILE_APP()}
|
|
|
|
</Alert>
|
|
|
|
)}
|
2021-04-21 08:33:55 +00:00
|
|
|
{selected.count > 0 && (
|
2021-04-27 11:58:55 +00:00
|
|
|
<SelectedFileOptions
|
|
|
|
addToCollectionHelper={addToCollectionHelper}
|
|
|
|
showCreateCollectionModal={showCreateCollectionModal}
|
|
|
|
setDialogMessage={setDialogMessage}
|
|
|
|
setCollectionSelectorAttributes={
|
|
|
|
setCollectionSelectorAttributes
|
2021-04-22 12:56:06 +00:00
|
|
|
}
|
2021-04-27 11:58:55 +00:00
|
|
|
deleteFileHelper={deleteFileHelper}
|
|
|
|
/>
|
2021-03-21 06:54:40 +00:00
|
|
|
)}
|
2021-03-18 20:16:18 +00:00
|
|
|
</FullScreenDropZone>
|
2021-01-13 05:31:02 +00:00
|
|
|
);
|
2020-09-12 21:53:41 +00:00
|
|
|
}
|