X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/0190f22c054d5257f67af66a9a1f1fa84e062fcc..792b37dffef102105fa902888cb948da43b892b4:/src/views-components/dialog-forms/create-group-dialog.tsx diff --git a/src/views-components/dialog-forms/create-group-dialog.tsx b/src/views-components/dialog-forms/create-group-dialog.tsx index 10d60c3ad0..7af5317d53 100644 --- a/src/views-components/dialog-forms/create-group-dialog.tsx +++ b/src/views-components/dialog-forms/create-group-dialog.tsx @@ -4,16 +4,22 @@ import * as React from 'react'; import { compose } from "redux"; -import { reduxForm, InjectedFormProps } from 'redux-form'; +import { reduxForm, InjectedFormProps, Field, WrappedFieldArrayProps, FieldArray } from 'redux-form'; import { withDialog, WithDialogProps } from "~/store/dialog/with-dialog"; import { FormDialog } from '~/components/form-dialog/form-dialog'; -import { CREATE_GROUP_DIALOG, CREATE_GROUP_FORM } from '~/store/groups-panel/groups-panel-actions'; +import { CREATE_GROUP_DIALOG, CREATE_GROUP_FORM, createGroup, CreateGroupFormData, CREATE_GROUP_NAME_FIELD_NAME, CREATE_GROUP_USERS_FIELD_NAME } from '~/store/groups-panel/groups-panel-actions'; +import { TextField } from '~/components/text-field/text-field'; +import { maxLength } from '~/validators/max-length'; +import { require } from '~/validators/require'; +import { ParticipantSelect, Participant } from '~/views-components/sharing-dialog/participant-select'; export const CreateGroupDialog = compose( withDialog(CREATE_GROUP_DIALOG), - reduxForm<{}>({ + reduxForm({ form: CREATE_GROUP_FORM, - onSubmit: (data, dispatch) => { return; } + onSubmit: (data, dispatch) => { + dispatch(createGroup(data)); + } }) )( (props: CreateGroupDialogComponentProps) => @@ -25,8 +31,33 @@ export const CreateGroupDialog = compose( /> ); -type CreateGroupDialogComponentProps = WithDialogProps<{}> & InjectedFormProps<{}>; +type CreateGroupDialogComponentProps = WithDialogProps<{}> & InjectedFormProps; -const CreateGroupFormFields = (props: CreateGroupDialogComponentProps) => - CreateGroupFormFields -; +const CreateGroupFormFields = () => + <> + + + ; + +const GroupNameField = () => + ; + +const GROUP_NAME_VALIDATION = [require, maxLength(255)]; + +const UsersField = () => + ; + +const UsersSelect = ({ fields }: WrappedFieldArrayProps) => + ;