X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/a60d90f0ee4d4cd71ccc876b112911f437ffb974..2a7fd99c212c33a1ec9911f8529fa5afc59a7bb2:/src/views-components/sharing-dialog/sharing-invitation-form-component.tsx diff --git a/src/views-components/sharing-dialog/sharing-invitation-form-component.tsx b/src/views-components/sharing-dialog/sharing-invitation-form-component.tsx index 9efbb1be71..871ea503ec 100644 --- a/src/views-components/sharing-dialog/sharing-invitation-form-component.tsx +++ b/src/views-components/sharing-dialog/sharing-invitation-form-component.tsx @@ -2,48 +2,84 @@ // // SPDX-License-Identifier: AGPL-3.0 -import * as React from 'react'; -import { Field, WrappedFieldProps } from 'redux-form'; -import { Grid, Input, FormControl, FormHelperText, FormLabel, InputLabel } from '@material-ui/core'; -import { ChipsInput } from '~/components/chips-input/chips-input'; -import { identity } from 'lodash'; -import { PermissionSelect } from './permission-select'; - -export default () => - - - - - - - - ; +import React from 'react'; +import { Field, WrappedFieldProps, FieldArray, WrappedFieldArrayProps } from 'redux-form'; +import { Grid, FormControl, InputLabel, Tooltip, IconButton, StyleRulesCallback } from '@material-ui/core'; +import { PermissionSelect, parsePermissionLevel, formatPermissionLevel } from './permission-select'; +import { ParticipantSelect, Participant } from './participant-select'; +import { AddIcon } from 'components/icon/icon'; +import { WithStyles } from '@material-ui/core/styles'; +import withStyles from '@material-ui/core/styles/withStyles'; +import { ArvadosTheme } from 'common/custom-theme'; + +type SharingStyles = 'root' | 'addButtonRoot' | 'addButtonPrimary' | 'addButtonDisabled'; + +const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ + root: { + padding: `${theme.spacing.unit}px 0`, + }, + addButtonRoot: { + height: "36px", + width: "36px", + marginRight: "6px", + marginLeft: "6px", + marginTop: "12px", + }, + addButtonPrimary: { + color: theme.palette.primary.contrastText, + background: theme.palette.primary.main, + "&:hover": { + background: theme.palette.primary.dark, + } + }, + addButtonDisabled: { + background: 'none', + } +}); + +const SharingInvitationFormComponent = (props: { onSave: () => void, saveEnabled: boolean }) => + +export default SharingInvitationFormComponent; + +const StyledSharingInvitationFormComponent = withStyles(styles)( + ({ onSave, saveEnabled, classes }: { onSave: () => void, saveEnabled: boolean } & WithStyles) => + + + + + + + + + + + + + ); const InvitedPeopleField = () => - ; + component={InvitedPeopleFieldComponent as any} />; -const InvitedPeopleFieldComponent = (props: WrappedFieldProps) => - - - Invite people - - - - Helper text - - ; +const InvitedPeopleFieldComponent = ({ fields }: WrappedFieldArrayProps) => + ; const PermissionSelectField = () => ; + name='permissions' + component={PermissionSelectComponent} + format={formatPermissionLevel} + parse={parsePermissionLevel} />; const PermissionSelectComponent = ({ input }: WrappedFieldProps) =>