import { IconButton, Tooltip } from '@material-ui/core'; import React, { useContext } from 'react'; import AccessContext from '../../../contexts/AccessContext'; interface IPermissionIconButtonProps extends React.DetailedHTMLProps< React.HTMLAttributes, HTMLButtonElement > { permission: string; Icon?: React.ElementType; tooltip?: string; onClick?: (e: any) => void; projectId?: string; environmentId?: string; edge?: string; className?: string; title?: string; } const PermissionIconButton: React.FC = ({ permission, Icon, tooltip, onClick, projectId, children, environmentId, ...rest }) => { const { hasAccess } = useContext(AccessContext); let access; if (projectId && environmentId) { access = hasAccess(permission, projectId, environmentId); } else if (projectId) { access = hasAccess(permission, projectId); } else { access = hasAccess(permission); } const tooltipText = !access ? "You don't have access to perform this operation" : ''; return ( {children} ); }; export default PermissionIconButton;