X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/a60d90f0ee4d4cd71ccc876b112911f437ffb974..a48138fa7227595bba0db267a4c37832cba9afa2:/src/views-components/sharing-dialog/permission-select.tsx diff --git a/src/views-components/sharing-dialog/permission-select.tsx b/src/views-components/sharing-dialog/permission-select.tsx index 6a889225f9..90b4f83d04 100644 --- a/src/views-components/sharing-dialog/permission-select.tsx +++ b/src/views-components/sharing-dialog/permission-select.tsx @@ -3,12 +3,13 @@ // SPDX-License-Identifier: AGPL-3.0 import * as React from 'react'; -import { MenuItem, Grid, Select, withStyles, StyleRulesCallback } from '@material-ui/core'; +import { MenuItem, Select } from '@material-ui/core'; import RemoveRedEye from '@material-ui/icons/RemoveRedEye'; import Edit from '@material-ui/icons/Edit'; import Computer from '@material-ui/icons/Computer'; -import { WithStyles } from '@material-ui/core/styles'; import { SelectProps } from '@material-ui/core/Select'; +import { SelectItem } from './select-item'; +import { PermissionLevel } from '../../models/permission'; export enum PermissionSelectValue { READ = 'Read', @@ -16,60 +17,60 @@ export enum PermissionSelectValue { MANAGE = 'Manage', } -type PermissionSelectClasses = 'value'; - -const PermissionSelectStyles: StyleRulesCallback = theme => ({ - value: { - marginLeft: theme.spacing.unit, +export const parsePermissionLevel = (value: PermissionSelectValue) => { + switch (value) { + case PermissionSelectValue.READ: + return PermissionLevel.CAN_READ; + case PermissionSelectValue.WRITE: + return PermissionLevel.CAN_WRITE; + case PermissionSelectValue.MANAGE: + return PermissionLevel.CAN_MANAGE; + default: + return PermissionLevel.NONE; } -}); - -export const PermissionSelect = withStyles(PermissionSelectStyles)( - ({ classes, ...props }: SelectProps & WithStyles) => - ); +}; -const renderPermissionItem = (value: string) => - ; +export const formatPermissionLevel = (value: PermissionLevel) => { + switch (value) { + case PermissionLevel.CAN_READ: + return PermissionSelectValue.READ; + case PermissionLevel.CAN_WRITE: + return PermissionSelectValue.WRITE; + case PermissionLevel.CAN_MANAGE: + return PermissionSelectValue.MANAGE; + default: + return PermissionSelectValue.READ; + } +}; -type PermissionItemClasses = 'value'; -const permissionItemStyles: StyleRulesCallback = theme => ({ - value: { - marginLeft: theme.spacing.unit, - } -}); +export const PermissionSelect = (props: SelectProps) => + ; -const PermissionItem = withStyles(permissionItemStyles)( - ({ value, classes }: { value: string } & WithStyles) => - - {renderPermissionIcon(value)} - - {value} - - ); +const renderPermissionItem = (value: string) => + ; -const renderPermissionIcon = (value: string) => { +const getIcon = (value: string) => { switch (value) { case PermissionSelectValue.READ: - return ; + return RemoveRedEye; case PermissionSelectValue.WRITE: - return ; + return Edit; case PermissionSelectValue.MANAGE: - return ; + return Computer; default: - return null; + return Computer; } };