From 7d909c6b66855a04f131a5080a2dc5462fa60136 Mon Sep 17 00:00:00 2001 From: olav Date: Wed, 22 Jun 2022 13:13:08 +0200 Subject: [PATCH] refactor: show env buttons when missing permission (#1111) * refactor: disable environment drag-and-drop when missing permission * refactor: show env buttons when missing permission --- .../EnvironmentActionCell.tsx | 124 ++++++------------ .../EnvironmentRow/EnvironmentRow.tsx | 6 +- 2 files changed, 43 insertions(+), 87 deletions(-) diff --git a/frontend/src/component/environments/EnvironmentTable/EnvironmentActionCell/EnvironmentActionCell.tsx b/frontend/src/component/environments/EnvironmentTable/EnvironmentActionCell/EnvironmentActionCell.tsx index 5fbd3716c4..18709a2e99 100644 --- a/frontend/src/component/environments/EnvironmentTable/EnvironmentActionCell/EnvironmentActionCell.tsx +++ b/frontend/src/component/environments/EnvironmentTable/EnvironmentActionCell/EnvironmentActionCell.tsx @@ -4,11 +4,8 @@ import { UPDATE_ENVIRONMENT, } from 'component/providers/AccessProvider/permissions'; import { Edit, Delete } from '@mui/icons-material'; -import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender'; -import { IconButton, Tooltip } from '@mui/material'; import { useNavigate } from 'react-router-dom'; -import AccessContext from 'contexts/AccessContext'; -import { useContext, useState } from 'react'; +import { useState } from 'react'; import { IEnvironment } from 'interfaces/environments'; import { formatUnknownError } from 'utils/formatUnknownError'; import EnvironmentToggleConfirm from '../../EnvironmentToggleConfirm/EnvironmentToggleConfirm'; @@ -17,8 +14,8 @@ import useEnvironmentApi from 'hooks/api/actions/useEnvironmentApi/useEnvironmen import useProjectRolePermissions from 'hooks/api/getters/useProjectRolePermissions/useProjectRolePermissions'; import { useEnvironments } from 'hooks/api/getters/useEnvironments/useEnvironments'; import useToast from 'hooks/useToast'; -import { useId } from 'hooks/useId'; import PermissionSwitch from 'component/common/PermissionSwitch/PermissionSwitch'; +import PermissionIconButton from 'component/common/PermissionIconButton/PermissionIconButton'; interface IEnvironmentTableActionsProps { environment: IEnvironment; @@ -28,9 +25,6 @@ export const EnvironmentActionCell = ({ environment, }: IEnvironmentTableActionsProps) => { const navigate = useNavigate(); - const { hasAccess } = useContext(AccessContext); - const updatePermission = hasAccess(UPDATE_ENVIRONMENT); - const { setToastApiError, setToastData } = useToast(); const { refetchEnvironments } = useEnvironments(); const { refetch: refetchPermissions } = useProjectRolePermissions(); @@ -95,88 +89,46 @@ export const EnvironmentActionCell = ({ } }; - const toggleIconTooltip = environment.enabled - ? `Disable environment ${environment.name}` - : `Enable environment ${environment.name}`; - - const toggleId = useId(); - const editId = useId(); - const deleteId = useId(); - return ( - - -
- setToggleModal(true)} - disabled={environment.protected} - inputProps={{ 'aria-labelledby': toggleId }} - /> -
-
- - - } - /> - - - { - navigate( - `/environments/${environment.name}` - ); - }} - size="large" - > - - - - - } - /> - - - setDeleteModal(true)} - size="large" - > - - - - + setToggleModal(true)} /> + + navigate(`/environments/${environment.name}`)} + > + + + setDeleteModal(true)} + > + + { + const { hasAccess } = useContext(AccessContext); const dragItemRef = useDragItem(row.index, moveListItem); const { searchQuery } = useSearchHighlightContext(); - const draggable = !searchQuery; + const draggable = !searchQuery && hasAccess(UPDATE_ENVIRONMENT); return (