Extract PickerIdProps interface
authorMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Fri, 16 Nov 2018 10:46:50 +0000 (11:46 +0100)
committerMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Fri, 16 Nov 2018 10:46:50 +0000 (11:46 +0100)
Feature #14470

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski@contractors.roche.com>

src/store/tree-picker/picker-id.tsx
src/views-components/dialog-copy/dialog-collection-partial-copy.tsx
src/views-components/dialog-copy/dialog-copy.tsx
src/views-components/dialog-move/dialog-move-to.tsx
src/views-components/project-tree-picker/project-tree-picker.tsx

index 562195455655ee98ae717f8a46475075006718d3..3907ba8e4b675d2d82ae677549702111ac0cdd05 100644 (file)
@@ -4,9 +4,13 @@
 
 import * as React from 'react';
 
+export interface PickerIdProp {
+    pickerId: string;
+}
+
 export const pickerId =
     (id: string) =>
-        <P extends { pickerId: string }>(Component: React.ComponentType<P>) =>
+        <P extends PickerIdProp>(Component: React.ComponentType<P>) =>
             (props: P) =>
                 <Component {...props} pickerId={id} />;
                 
\ No newline at end of file
index a56ecca50fdbae2e6d0624ebc9b3e0f5cda5fdb6..095c2b9ca97cec2943d183094c94ffb09f61651e 100644 (file)
@@ -9,10 +9,11 @@ import { CollectionNameField, CollectionDescriptionField, CollectionProjectPicke
 import { WithDialogProps } from '~/store/dialog/with-dialog';
 import { InjectedFormProps } from 'redux-form';
 import { CollectionPartialCopyFormData } from '~/store/collections/collection-partial-copy-actions';
+import { PickerIdProp } from "~/store/tree-picker/picker-id";
 
 type DialogCollectionPartialCopyProps = WithDialogProps<string> & InjectedFormProps<CollectionPartialCopyFormData>;
 
-export const DialogCollectionPartialCopy = (props: DialogCollectionPartialCopyProps & { pickerId: string }) =>
+export const DialogCollectionPartialCopy = (props: DialogCollectionPartialCopyProps & PickerIdProp) =>
     <FormDialog
         dialogTitle='Create a collection'
         formFields={CollectionPartialCopyFields(props.pickerId)}
index 24e91dae81bb6f6f38457e386ddedcce2bef26a9..de8a321cf695183ef17b435887469c183bce12f2 100644 (file)
@@ -11,10 +11,11 @@ import { ProjectTreePickerField } from '~/views-components/project-tree-picker/p
 import { COPY_NAME_VALIDATION, COPY_FILE_VALIDATION } from '~/validators/validators';
 import { TextField } from "~/components/text-field/text-field";
 import { CopyFormDialogData } from '~/store/copy-dialog/copy-dialog';
+import { PickerIdProp } from '~/store/tree-picker/picker-id';
 
 type CopyFormDialogProps = WithDialogProps<string> & InjectedFormProps<CopyFormDialogData>;
 
-export const DialogCopy = (props: CopyFormDialogProps & { pickerId: string }) =>
+export const DialogCopy = (props: CopyFormDialogProps & PickerIdProp) =>
     <FormDialog
         dialogTitle='Make a copy'
         formFields={CopyDialogFields(props.pickerId)}
index 129c59ff33c692b23cbc772fc3a5c58eed0c80ba..c962522f3cf8292853bd743d08cfe92f55c18d7d 100644 (file)
@@ -10,8 +10,9 @@ import { FormDialog } from '~/components/form-dialog/form-dialog';
 import { ProjectTreePickerField } from '~/views-components/project-tree-picker/project-tree-picker';
 import { MOVE_TO_VALIDATION } from '~/validators/validators';
 import { MoveToFormDialogData } from '~/store/move-to-dialog/move-to-dialog';
+import { PickerIdProp } from "~/store/tree-picker/picker-id";
 
-export const DialogMoveTo = (props: WithDialogProps<string> & InjectedFormProps<MoveToFormDialogData> & { pickerId: string }) =>
+export const DialogMoveTo = (props: WithDialogProps<string> & InjectedFormProps<MoveToFormDialogData> & PickerIdProp) =>
     <FormDialog
         dialogTitle='Move to'
         formFields={MoveToDialogFields(props.pickerId)}
index 101fca08d1b87a652587f97463c82c6b772e0f98..a20fb882314995ac4b9be7fa9e447c2063d82a4d 100644 (file)
@@ -18,6 +18,7 @@ import { WrappedFieldProps } from 'redux-form';
 import { TreePickerId } from '~/models/tree';
 import { ProjectsTreePicker } from '~/views-components/projects-tree-picker/projects-tree-picker';
 import { ProjectsTreePickerItem } from '~/views-components/projects-tree-picker/generic-projects-tree-picker';
+import { PickerIdProp } from '~/store/tree-picker/picker-id';
 
 type ProjectTreePickerProps = Pick<TreePickerProps<ProjectResource>, 'onContextMenu' | 'toggleItemActive' | 'toggleItemOpen' | 'toggleItemSelection'>;
 
@@ -89,7 +90,7 @@ const renderTreeItem = (item: TreeItem<ProjectResource>) =>
         isActive={item.active}
         hasMargin={true} />;
 
-export const ProjectTreePickerField = (props: WrappedFieldProps & { pickerId: string }) =>
+export const ProjectTreePickerField = (props: WrappedFieldProps & PickerIdProp) =>
     <div style={{ height: '200px', display: 'flex', flexDirection: 'column' }}>
         <ProjectsTreePicker
             pickerId={props.pickerId}