import React from "react";
// nodejs library that concatenates classes
import classNames from "classnames";
// nodejs library to set properties for components
import PropTypes from "prop-types";
// @material-ui/core components
import { makeStyles } from "@material-ui/core/styles";
import MenuItem from "@material-ui/core/MenuItem";
import MenuList from "@material-ui/core/MenuList";
import ClickAwayListener from "@material-ui/core/ClickAwayListener";
import Paper from "@material-ui/core/Paper";
import Grow from "@material-ui/core/Grow";
import Divider from "@material-ui/core/Divider";
import Icon from "@material-ui/core/Icon";
import Popper from "@material-ui/core/Popper";
// core components
import Button from "components/CustomButtons/Button.js";
import styles from "assets/jss/nextjs-material-kit/components/customDropdownStyle.js";
const useStyles = makeStyles(styles);
export default function CustomDropdown(props) {
const [anchorEl, setAnchorEl] = React.useState(null);
const handleClick = event => {
if (anchorEl && anchorEl.contains(event.target)) {
setAnchorEl(null);
} else {
setAnchorEl(event.currentTarget);
}
};
const handleClose = param => {
setAnchorEl(null);
if (props && props.onClick) {
props.onClick(param);
}
};
const handleCloseAway = event => {
if (anchorEl.contains(event.target)) {
return;
}
setAnchorEl(null);
};
const classes = useStyles();
const {
buttonText,
buttonIcon,
dropdownList,
buttonProps,
dropup,
dropdownHeader,
caret,
hoverColor,
left,
rtlActive,
noLiPadding,
navDropdown
} = props;
const caretClasses = classNames({
[classes.caret]: true,
[classes.caretActive]: Boolean(anchorEl),
[classes.caretRTL]: rtlActive
});
const dropdownItem = classNames({
[classes.dropdownItem]: true,
[classes[hoverColor + "Hover"]]: true,
[classes.noLiPadding]: noLiPadding,
[classes.dropdownItemRTL]: rtlActive
});
let icon = null;
switch (typeof buttonIcon) {
case "object":
icon =