// ** React Imports import { KeyboardEvent, useEffect, useRef, useState, MouseEvent, TouchEvent } from 'react' // ** MUI Imports import Grow from '@mui/material/Grow' import Paper from '@mui/material/Paper' import Button from '@mui/material/Button' import Popper from '@mui/material/Popper' import MenuList from '@mui/material/MenuList' import MenuItem from '@mui/material/MenuItem' import ClickAwayListener from '@mui/material/ClickAwayListener' // ** Hook Import import { useSettings } from 'src/@core/hooks/useSettings' const MenuComposition = () => { // ** States const [open, setOpen] = useState(false) // ** Hook & Var const { settings } = useSettings() const { skin } = settings // ** Ref const anchorRef = useRef(null) const handleToggle = () => { setOpen(prevOpen => !prevOpen) } const handleClose = (event: MouseEvent | TouchEvent): void => { if (anchorRef.current && anchorRef.current.contains(event.target as HTMLElement)) { return } setOpen(false) } const handleListKeyDown = (event: KeyboardEvent) => { if (event.key === 'Tab') { event.preventDefault() setOpen(false) } else if (event.key === 'Escape') { setOpen(false) } } // return focus to the button when we transitioned from !open -> open const prevOpen = useRef(open) useEffect(() => { if (prevOpen.current === true && open === false) { anchorRef.current!.focus() } prevOpen.current = open }, [open]) return (
{({ TransitionProps, placement }) => ( `1px solid ${theme.palette.divider}` } : {}} > setOpen(false)}> Profile My account Logout )}
) } export default MenuComposition