import { useState } from 'react'; import { Box, IconButton, ListItemIcon, ListItemText, MenuItem, MenuList, Popover, Tooltip, Typography, styled, } from '@mui/material'; import MoreVertIcon from '@mui/icons-material/MoreVert'; import FileCopyIcon from '@mui/icons-material/FileCopy'; import { Delete, Edit } from '@mui/icons-material'; import { PermissionHOC } from 'component/common/PermissionHOC/PermissionHOC'; import { ADMIN } from 'component/providers/AccessProvider/permissions'; import { defaultBorderRadius } from 'themes/themeStyles'; const StyledBoxCell = styled(Box)({ display: 'flex', justifyContent: 'center', }); interface IIncomingWebhooksActionsCellProps { incomingWebhookId: number; onCopyToClipboard: (event: React.SyntheticEvent) => void; onEdit: (event: React.SyntheticEvent) => void; onDelete: (event: React.SyntheticEvent) => void; } export const IncomingWebhooksActionsCell = ({ incomingWebhookId, onCopyToClipboard, onEdit, onDelete, }: IIncomingWebhooksActionsCellProps) => { const [anchorEl, setAnchorEl] = useState(null); const open = Boolean(anchorEl); const handleClick = (event: React.MouseEvent) => { setAnchorEl(event.currentTarget); }; const handleClose = () => { setAnchorEl(null); }; const id = `incoming-webhook-${incomingWebhookId}-actions`; const menuId = `${id}-menu`; return ( ({ borderRadius: `${theme.shape.borderRadius}px`, padding: theme.spacing(1, 1.5), }), }} > Copy URL {({ hasAccess }) => ( Edit )} {({ hasAccess }) => ( Remove )} ); };