Merge branch 'master'
[arvados-workbench2.git] / src / views-components / form-fields / collection-form-fields.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 { Field, WrappedFieldProps } from "redux-form";
7 import { TextField } from "~/components/text-field/text-field";
8 import { COLLECTION_NAME_VALIDATION, COLLECTION_DESCRIPTION_VALIDATION, COLLECTION_PROJECT_VALIDATION } from "~/validators/validators";
9 import { ProjectTreePicker } from "~/views-components/project-tree-picker/project-tree-picker";
10
11 export const CollectionPartialCopyFields = () => <div style={{ display: 'flex' }}>
12     <div>
13         <CollectionNameField />
14         <CollectionDescriptionField />
15     </div>
16     <CollectionProjectPickerField />
17 </div>;
18
19 export const CollectionNameField = () =>
20     <Field
21         name='name'
22         component={TextField}
23         validate={COLLECTION_NAME_VALIDATION}
24         label="Collection Name" />;
25
26 export const CollectionDescriptionField = () =>
27     <Field
28         name='description'
29         component={TextField}
30         validate={COLLECTION_DESCRIPTION_VALIDATION}
31         label="Description - optional" />;
32
33 export const CollectionProjectPickerField = () =>
34     <Field
35         name="projectUuid"
36         component={ProjectPicker}
37         validate={COLLECTION_PROJECT_VALIDATION} />;
38
39 const ProjectPicker = (props: WrappedFieldProps) =>
40     <div style={{ width: '400px', height: '144px', display: 'flex', flexDirection: 'column' }}>
41         <ProjectTreePicker onChange={projectUuid => props.input.onChange(projectUuid)} />
42     </div>;