import React, { MouseEvent, useState } from 'react'; import IconButton from '@mui/material/IconButton'; import Tooltip from '@mui/material/Tooltip'; import { MRT_ColumnActionMenu } from '../menus/MRT_ColumnActionMenu'; import type { MRT_Header, MRT_TableInstance } from '..'; interface Props { header: MRT_Header; table: MRT_TableInstance; } export const MRT_TableHeadCellColumnActionsButton = ({ header, table, }: Props) => { const { options: { icons: { MoreVertIcon }, localization, muiTableHeadCellColumnActionsButtonProps, }, } = table; const { column } = header; const { columnDef } = column; const [anchorEl, setAnchorEl] = useState(null); const handleClick = (event: MouseEvent) => { event.stopPropagation(); event.preventDefault(); setAnchorEl(event.currentTarget); }; const mTableHeadCellColumnActionsButtonProps = muiTableHeadCellColumnActionsButtonProps instanceof Function ? muiTableHeadCellColumnActionsButtonProps({ column, table }) : muiTableHeadCellColumnActionsButtonProps; const mcTableHeadCellColumnActionsButtonProps = columnDef.muiTableHeadCellColumnActionsButtonProps instanceof Function ? columnDef.muiTableHeadCellColumnActionsButtonProps({ column, table, }) : columnDef.muiTableHeadCellColumnActionsButtonProps; const iconButtonProps = { ...mTableHeadCellColumnActionsButtonProps, ...mcTableHeadCellColumnActionsButtonProps, }; return ( <> ({ height: '2rem', m: '-8px -4px', opacity: 0.5, transform: 'scale(0.85) translateX(-4px)', transition: 'opacity 150ms', width: '2rem', '&:hover': { opacity: 1, }, ...(iconButtonProps?.sx instanceof Function ? iconButtonProps.sx(theme) : (iconButtonProps?.sx as any)), })} title={undefined} > {anchorEl && ( )} ); };