import * as React from "react"; import { Menu, MenuItem, ListItemIcon, ListItemText } from "@material-ui/core"; import Card from "@material-ui/core/Card"; import CardHeader from "@material-ui/core/CardHeader"; import CardContent from "@material-ui/core/CardContent"; import IconButton from "@material-ui/core/IconButton"; import MoreVertIcon from "@material-ui/icons/MoreVert"; import { WidgetContainerProps } from "./types"; /** * A container for showing custom dashboard widget components */ const WidgetContainer: React.FC = ({ children, title, actions, actionComponent, }) => { const [anchorEl, setAnchorEl] = React.useState(null); const handleClick = (event: React.MouseEvent) => { setAnchorEl(event.currentTarget); }; const handleClose = () => { setAnchorEl(null); }; const ActionComponent = actionComponent || (actions && ( <> {actions.map((itm, key) => { const { icon, label } = itm; return ( { itm.onSelect(); handleClose(); }} > {icon && {icon}} ); })} )) || null; return ( {(title || actions) && ( )} {children} ); }; export default WidgetContainer;