// Copyright (C) The Arvados Authors. All rights reserved. // // SPDX-License-Identifier: AGPL-3.0 import * as React from "react"; import { memoize } from 'lodash/fp'; import { InjectedFormProps, Field } from 'redux-form'; import { WithDialogProps } from '~/store/dialog/with-dialog'; import { FormDialog } from '~/components/form-dialog/form-dialog'; import { ProjectTreePickerField } from '~/views-components/projects-tree-picker/tree-picker-field'; 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> & PickerIdProp) => <FormDialog dialogTitle='Move to' formFields={MoveToDialogFields(props.pickerId)} submitLabel='Move' {...props} />; const MoveToDialogFields = memoize( (pickerId: string) => () => <Field name="ownerUuid" pickerId={pickerId} component={ProjectTreePickerField} validate={MOVE_TO_VALIDATION} />);