a56ecca50fdbae2e6d0624ebc9b3e0f5cda5fdb6
[arvados-workbench2.git] / src / views-components / dialog-copy / dialog-collection-partial-copy.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 { memoize } from "lodash/fp";
7 import { FormDialog } from '~/components/form-dialog/form-dialog';
8 import { CollectionNameField, CollectionDescriptionField, CollectionProjectPickerField } from '~/views-components/form-fields/collection-form-fields';
9 import { WithDialogProps } from '~/store/dialog/with-dialog';
10 import { InjectedFormProps } from 'redux-form';
11 import { CollectionPartialCopyFormData } from '~/store/collections/collection-partial-copy-actions';
12
13 type DialogCollectionPartialCopyProps = WithDialogProps<string> & InjectedFormProps<CollectionPartialCopyFormData>;
14
15 export const DialogCollectionPartialCopy = (props: DialogCollectionPartialCopyProps & { pickerId: string }) =>
16     <FormDialog
17         dialogTitle='Create a collection'
18         formFields={CollectionPartialCopyFields(props.pickerId)}
19         submitLabel='Create a collection'
20         {...props}
21     />;
22
23 export const CollectionPartialCopyFields = memoize(
24     (pickerId: string) =>
25         () =>
26             <div>
27                 <CollectionNameField />
28                 <CollectionDescriptionField />
29                 <CollectionProjectPickerField {...{ pickerId }} />
30             </div>);