2021-01-13 12:47:39 +00:00
|
|
|
import React, { useState } from 'react';
|
|
|
|
import { Modal } from 'react-bootstrap';
|
|
|
|
import { createAlbum } from 'services/collectionService';
|
|
|
|
import UploadService from 'services/uploadService';
|
2021-01-14 09:30:43 +00:00
|
|
|
import { collectionLatestFile } from 'services/fileService'
|
|
|
|
import { getActualKey } from 'utils/common/key';
|
2021-01-13 12:47:39 +00:00
|
|
|
|
|
|
|
export default function CreateCollection(props) {
|
|
|
|
|
2021-01-14 09:30:43 +00:00
|
|
|
const { token, acceptedFiles, setProgressView, progressBarProps, refetchData, modalView, closeModal, closeUploadModal } = props;
|
2021-01-13 12:47:39 +00:00
|
|
|
const [albumName, setAlbumName] = useState("");
|
|
|
|
|
|
|
|
const handleChange = (event) => { setAlbumName(event.target.value); }
|
|
|
|
|
|
|
|
const handleSubmit = async (event) => {
|
|
|
|
event.preventDefault();
|
|
|
|
|
2021-01-14 09:30:43 +00:00
|
|
|
closeModal();
|
|
|
|
closeUploadModal();
|
|
|
|
const masterKey = await getActualKey();
|
2021-01-13 12:47:39 +00:00
|
|
|
const collection = await createAlbum(albumName, masterKey, token);
|
|
|
|
|
|
|
|
const collectionLatestFile: collectionLatestFile = { collection, file: null }
|
2021-01-14 09:30:43 +00:00
|
|
|
|
2021-01-13 12:47:39 +00:00
|
|
|
progressBarProps.setPercentComplete(0);
|
|
|
|
setProgressView(true);
|
|
|
|
|
|
|
|
await UploadService.uploadFiles(acceptedFiles, collectionLatestFile, token, progressBarProps);
|
2021-01-14 09:30:43 +00:00
|
|
|
refetchData();
|
2021-01-13 12:47:39 +00:00
|
|
|
setProgressView(false);
|
|
|
|
}
|
|
|
|
return (
|
|
|
|
<Modal
|
2021-01-14 09:30:43 +00:00
|
|
|
show={modalView}
|
2021-01-13 12:47:39 +00:00
|
|
|
size='lg'
|
|
|
|
aria-labelledby='contained-modal-title-vcenter'
|
|
|
|
centered
|
|
|
|
backdrop="static"
|
|
|
|
>
|
|
|
|
<Modal.Header>
|
|
|
|
<Modal.Title id='contained-modal-title-vcenter'>
|
|
|
|
Create Collection
|
|
|
|
</Modal.Title>
|
|
|
|
</Modal.Header>
|
|
|
|
<Modal.Body>
|
|
|
|
<form onSubmit={handleSubmit}>
|
|
|
|
<label>
|
|
|
|
Album Name:
|
|
|
|
<input type="text" value={albumName} onChange={handleChange} />
|
|
|
|
</label>
|
|
|
|
<input type="submit" value="Submit" />
|
|
|
|
</form>
|
|
|
|
</Modal.Body>
|
|
|
|
</Modal>
|
|
|
|
);
|
|
|
|
}
|