X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/3e620538c5c0431bc587bb4c92da8c483f22a053..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 c8db68dcf6..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,39 +2,84 @@ // // SPDX-License-Identifier: AGPL-3.0 -import * as React from 'react'; +import React from 'react'; import { Field, WrappedFieldProps, FieldArray, WrappedFieldArrayProps } from 'redux-form'; -import { Grid, FormControl, InputLabel } from '@material-ui/core'; -import { PermissionSelect } from './permission-select'; -import { PeopleSelect, Person } from './people-select'; - -export default () => - - - - - - - - ; +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 = ({ fields }: WrappedFieldArrayProps) => - ) => + ; const PermissionSelectField = () => ; + name='permissions' + component={PermissionSelectComponent} + format={formatPermissionLevel} + parse={parsePermissionLevel} />; const PermissionSelectComponent = ({ input }: WrappedFieldProps) =>