Merge branch 'master' into 14231-multiple-file-selection-project/collection-tree
[arvados-workbench2.git] / src / views-components / dialog-file-selection / dialog-file-selection.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 { WorkflowTreePickerField } from '~/views-components/workflow-tree-picker/workflow-tree-picker';
12
13 type FileSelectionProps = WithDialogProps<{}> & InjectedFormProps<CollectionCreateFormDialogData>;
14
15 export const DialogFileSelection = (props: FileSelectionProps) =>
16     <FormDialog
17         dialogTitle='Choose a file'
18         formFields={FileSelectionFields}
19         submitLabel='Ok'
20         {...props}
21     />;
22
23 const FileSelectionFields = () =>
24     <Field
25         name='tree'
26         validate={FILES_FIELD_VALIDATION}
27         component={WorkflowTreePickerField} />;
28
29 const FILES_FIELD_VALIDATION = [require];