Extract file-uploader, resotore file upload to collection creator
[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 { UPLOAD_COLLECTION_FILES_DIALOG, uploadCurrentCollectionFiles } from '~/store/collections/collection-upload-actions';
11 import { fileUploaderActions } from '~/store/file-uploader/file-uploader-actions';
12
13 const mapStateToProps = (state: RootState) => ({
14     files: state.fileUploader,
15     uploading: state.fileUploader.some(file => file.loaded < file.total)
16 });
17
18 const mapDispatchToProps = (dispatch: Dispatch) => ({
19     onSubmit: () => {
20         dispatch<any>(uploadCurrentCollectionFiles());
21     },
22     onChange: (files: File[]) => {
23         dispatch(fileUploaderActions.SET_UPLOAD_FILES(files));
24     }
25 });
26
27 export const UploadCollectionFilesDialog = compose(
28     withDialog(UPLOAD_COLLECTION_FILES_DIALOG),
29     connect(mapStateToProps, mapDispatchToProps)
30 )(FilesUploadDialog);