import * as React from "react"; import Button from "@mui/material/Button"; import ButtonGroup from "@mui/material/ButtonGroup"; import ArrowDropDownIcon from "@mui/icons-material/ArrowDropDown"; import ClickAwayListener from "@mui/material/ClickAwayListener"; import Grow from "@mui/material/Grow"; import Paper from "@mui/material/Paper"; import Popper from "@mui/material/Popper"; import MenuItem from "@mui/material/MenuItem"; import MenuList from "@mui/material/MenuList"; import { useNavigate } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { createToast } from "../../Utils/toastUtils"; import { useExportMonitors } from "../../Hooks/monitorHooks"; const MonitorActions = ({ isLoading }) => { const [open, setOpen] = React.useState(false); const anchorRef = React.useRef(null); const [selectedIndex, setSelectedIndex] = React.useState(0); const navigate = useNavigate(); const { t } = useTranslation(); const [exportMonitors, isExporting] = useExportMonitors(); const options = [t("monitorActions.import"), t("monitorActions.export")]; const handleClick = async () => { if (selectedIndex === 0) { // Import navigate("/uptime/bulk-import"); } else { // Export const [success, error] = await exportMonitors(); if (!success) { createToast({ body: error || t("export.failed") }); } } }; const handleMenuItemClick = (event, index) => { setSelectedIndex(index); setOpen(false); }; const handleToggle = () => { setOpen((prevOpen) => !prevOpen); }; const handleClose = (event) => { if (anchorRef.current && anchorRef.current.contains(event.target)) { return; } setOpen(false); }; return ( {({ TransitionProps, placement }) => ( {options.map((option, index) => ( handleMenuItemClick(event, index)} > {option} ))} )} ); }; export default MonitorActions;