1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
5 import * as React from "react";
6 import { InjectedFormProps, Field, WrappedFieldProps } from 'redux-form';
7 import { WithDialogProps } from '~/store/dialog/with-dialog';
8 import { FormDialog } from '~/components/form-dialog/form-dialog';
9 import { ProjectTreePicker } from '~/views-components/project-tree-picker/project-tree-picker';
10 import { Typography } from "@material-ui/core";
11 import { MOVE_TO_VALIDATION } from '~/validators/validators';
12 import { MoveToFormDialogData } from '~/store/move-to-dialog/move-to-dialog';
14 export const MoveToFormDialog = (props: WithDialogProps<string> & InjectedFormProps<MoveToFormDialogData>) =>
17 formFields={MoveToDialogFields}
22 const MoveToDialogFields = () =>
25 component={ProjectPicker}
26 validate={MOVE_TO_VALIDATION} />;
28 const ProjectPicker = (props: WrappedFieldProps) =>
29 <div style={{ height: '200px', display: 'flex', flexDirection: 'column' }}>
30 <ProjectTreePicker onChange={handleChange(props)} />
31 {props.meta.dirty && props.meta.error &&
32 <Typography variant='caption' color='error'>
37 const handleChange = (props: WrappedFieldProps) => (value: string) =>
38 props.input.value === value
39 ? props.input.onChange('')
40 : props.input.onChange(value);