Create collection files upload dialog
[arvados-workbench2.git] / src / views-components / upload-collection-files-dialog / upload-collection-files-dialog.ts
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import { connect } from "react-redux";
6 import { Dispatch, compose } from "redux";
7 import { withDialog } from '~/store/dialog/with-dialog';
8 import { FilesUploadDialog } from '~/components/file-upload-dialog/file-upload-dialog';
9 import { RootState } from '../../store/store';
10 import { uploadCurrentCollectionFiles, UPLOAD_COLLECTION_FILES_DIALOG, collectionUploaderActions } from '~/store/collections/uploader/collection-uploader-actions';
11
12 const mapStateToProps = (state: RootState) => ({
13     files: state.collections.uploader,
14     uploading: state.collections.uploader.some(file => file.loaded < file.total)
15 });
16
17 const mapDispatchToProps = (dispatch: Dispatch) => ({
18     onSubmit: () => {
19         dispatch<any>(uploadCurrentCollectionFiles());
20     },
21     onChange: (files: File[]) => {
22         dispatch(collectionUploaderActions.SET_UPLOAD_FILES(files));
23     }
24 });
25
26 export const UploadCollectionFilesDialog = compose(
27     withDialog(UPLOAD_COLLECTION_FILES_DIALOG),
28     connect(mapStateToProps, mapDispatchToProps)
29 )(FilesUploadDialog);