import PropTypes from 'prop-types'; import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown'; import Button from '@mui/material/Button'; import ButtonGroup from '@mui/material/ButtonGroup'; import { ClickAwayListener } from '@mui/base/ClickAwayListener'; import Grow from '@mui/material/Grow'; import MenuItem from '@mui/material/MenuItem'; import MenuList from '@mui/material/MenuList'; import Paper from '@mui/material/Paper'; import Popper from '@mui/material/Popper'; import * as React from 'react'; import { Link } from 'react-router-dom'; export default function SplitButton(props) { const { options, disabled, defaultActionIndex = 0 } = props; const [open, setOpen] = React.useState(false); const anchorRef = React.useRef(null); const multiOptions = options.length > 1; const selectedOption = options[defaultActionIndex]; const handleToggle = () => { setOpen((prevOpen) => !prevOpen); }; const handleClose = (event) => { if (anchorRef.current && anchorRef.current.contains(event.target)) { return; } setOpen(false); }; return ( {multiOptions && ( )} {multiOptions && ( {({ TransitionProps, placement }) => ( {options.map((option, index) => ( {option.label} ))} )} )} ); } SplitButton.propTypes = { options: PropTypes.arrayOf( PropTypes.shape({ label: PropTypes.string.isRequired, key: PropTypes.string.isRequired, 'data-test': PropTypes.string.isRequired, to: PropTypes.string.isRequired, disabled: PropTypes.bool.isRequired, }).isRequired, ).isRequired, disabled: PropTypes.bool, defaultActionIndex: PropTypes.number, };