warning-notes
[arvados-workbench2.git] / src / views-components / dialog-upload / dialog-collection-files-upload.tsx
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import * as React from 'react';
6 import { InjectedFormProps, Field } from 'redux-form';
7 import { WithDialogProps } from '~/store/dialog/with-dialog';
8 import { CollectionCreateFormDialogData } from '~/store/collections/collection-create-actions';
9 import { FormDialog } from '~/components/form-dialog/form-dialog';
10 import { require } from '~/validators/require';
11 import { FileUploaderField } from '~/views-components/file-uploader/file-uploader';
12 import { WarningIcon } from '~/components/icon/icon';
13 import { DialogContentText } from '@material-ui/core';
14
15
16 type DialogCollectionFilesUploadProps = WithDialogProps<{}> & InjectedFormProps<CollectionCreateFormDialogData>;
17
18 export const DialogCollectionFilesUpload = (props: DialogCollectionFilesUploadProps) =>
19     <FormDialog
20         dialogTitle='Upload data'
21         formFields={UploadCollectionFilesFields}
22         submitLabel='Upload data'
23         {...props}
24     />;
25
26 const UploadCollectionFilesFields = () => <>
27     <Field
28         name='files'
29         validate={FILES_FIELD_VALIDATION}
30         component={FileUploaderField} />
31     <span style={{ display: 'flex', alignItems: 'center', marginTop: '8px' }}>
32         <WarningIcon />
33         <DialogContentText style={{ paddingLeft: '8px' }}>Uploading new files will change content address.</DialogContentText>
34     </span>
35 </>;
36
37
38 const FILES_FIELD_VALIDATION = [require];
39
40