Merge branch '21128-toolbar-context-menu'
[arvados-workbench2.git] / src / views-components / dialog-copy / dialog-copy.tsx
index aa6b6784d7eb55d7215127b12c6f172ff1b950f8..71d0dab34b14645345d91a8b925311de0363d34d 100644 (file)
@@ -15,14 +15,16 @@ import { PickerIdProp } from "store/tree-picker/picker-id";
 
 type CopyFormDialogProps = WithDialogProps<string> & InjectedFormProps<CopyFormDialogData>;
 
-export const DialogCopy = (props: CopyFormDialogProps & PickerIdProp) => (
-    <FormDialog
-        dialogTitle="Make a copy"
-        formFields={CopyDialogFields(props.pickerId)}
-        submitLabel="Copy"
-        {...props}
-    />
-);
+export const DialogCopy = (props: CopyFormDialogProps & PickerIdProp) => {
+    return (
+        <FormDialog
+            dialogTitle="Make a copy"
+            formFields={CopyDialogFields(props.pickerId)}
+            submitLabel="Copy"
+            {...props}
+        />
+    );
+};
 
 const CopyDialogFields = memoize((pickerId: string) => () => (
     <>
@@ -40,3 +42,23 @@ const CopyDialogFields = memoize((pickerId: string) => () => (
         />
     </>
 ));
+
+export const DialogMultiCopy = (props: CopyFormDialogProps & PickerIdProp) => {
+    return (
+        <FormDialog
+            dialogTitle="Make Copies"
+            formFields={CopyMultiDialogFields(props.pickerId)}
+            submitLabel="Copy"
+            {...props}
+        />
+    );
+};
+
+const CopyMultiDialogFields = memoize((pickerId: string) => () => (
+    <Field
+        name="ownerUuid"
+        component={ProjectTreePickerField}
+        validate={COPY_FILE_VALIDATION}
+        pickerId={pickerId}
+    />
+));