ente/src/pages/gallery/components/CollectionSelector.tsx

67 lines
2.3 KiB
TypeScript
Raw Normal View History

2021-01-08 07:46:10 +00:00
import React, { useEffect, useState } from 'react';
import { Button, Card, Modal } from 'react-bootstrap';
import { getActualKey } from 'utils/common/key';
2021-01-08 07:46:10 +00:00
import { getData, LS_KEYS } from 'utils/storage/localStorage';
import CollectionDropZone from './CollectionDropZone';
2021-01-07 10:45:18 +00:00
import PreviewCard from './PreviewCard';
function CollectionSelector({
uploadModalView,
closeUploadModal,
2021-01-08 07:46:10 +00:00
collectionLatestFile,
2021-01-12 06:59:37 +00:00
setProgressView,
setData,
2021-01-12 06:59:37 +00:00
progressBarProps,
}) {
2021-01-08 07:46:10 +00:00
const [token, setToken] = useState(null);
const [encryptionKey, setEncryptionKey] = useState(null);
2021-01-08 07:46:10 +00:00
useEffect(() => {
(async () => {
setToken(getData(LS_KEYS.USER).token);
setEncryptionKey(await getActualKey());
})();
2021-01-08 07:46:10 +00:00
});
const CollectionIcons = collectionLatestFile?.map((item) => (
<CollectionDropZone key={item.collectionID}
closeModal={closeUploadModal}
2021-01-08 07:46:10 +00:00
collectionLatestFile={item}
noDragEventsBubbling
2021-01-12 06:59:37 +00:00
setProgressView={setProgressView}
2021-01-08 07:46:10 +00:00
token={token}
encryptionKey={encryptionKey}
setData={setData}
2021-01-12 06:59:37 +00:00
progressBarProps={progressBarProps}
2021-01-08 07:46:10 +00:00
>
<Card style={{ cursor: 'pointer', border: 'solid', width: "95%", marginBottom: "5px", padding: "auto" }}>
<PreviewCard data={item.file} updateUrl={() => { }} onClick={() => { }} />
<Card.Body>
<Card.Text>{item.collection.name}</Card.Text>
</Card.Body>
</Card>
</CollectionDropZone>
));
return (
<Modal
show={uploadModalView}
2021-01-08 07:46:10 +00:00
aria-labelledby='contained-modal-title-vcenter'
centered
onHide={closeUploadModal}
2021-01-08 07:46:10 +00:00
>
<Modal.Header closeButton>
<Modal.Title id='contained-modal-title-vcenter'>
Select/Click on Collection to upload
</Modal.Title>
2021-01-08 07:46:10 +00:00
</Modal.Header>
<Modal.Body style={{ display: "flex", justifyContent: "space-between", flexWrap: "wrap" }}>
{CollectionIcons}
</Modal.Body>
<Modal.Footer>
<Button onClick={closeUploadModal}>Close</Button>
2021-01-08 07:46:10 +00:00
</Modal.Footer>
</Modal>
);
}
export default CollectionSelector;