// ** React Imports import { useState, SyntheticEvent, Fragment, ReactNode } from 'react' // ** Next Import import Link from 'next/link' // ** MUI Imports import Box from '@mui/material/Box' import Grid from '@mui/material/Grid' import Divider from '@mui/material/Divider' import Tooltip from '@mui/material/Tooltip' import IconButton from '@mui/material/IconButton' import Typography from '@mui/material/Typography' import { styled, Theme } from '@mui/material/styles' import useMediaQuery from '@mui/material/useMediaQuery' import MuiMenu, { MenuProps } from '@mui/material/Menu' import MuiMenuItem, { MenuItemProps } from '@mui/material/MenuItem' // ** Icon Imports import Icon from 'src/@core/components/icon' // ** Third Party Components import PerfectScrollbarComponent from 'react-perfect-scrollbar' // ** Type Imports import { Settings } from 'src/@core/context/settingsContext' // ** Custom Components Imports import CustomAvatar from 'src/@core/components/mui/avatar' export type ShortcutsType = { url: string icon: string title: string subtitle: string } interface Props { settings: Settings shortcuts: ShortcutsType[] } // ** Styled Menu component const Menu = styled(MuiMenu)(({ theme }) => ({ '& .MuiMenu-paper': { width: 350, overflow: 'hidden', marginTop: theme.spacing(4), [theme.breakpoints.down('sm')]: { width: '100%' } }, '& .MuiMenu-list': { padding: 0 } })) // ** Styled MenuItem component const MenuItem = styled(MuiMenuItem)(({ theme }) => ({ paddingTop: theme.spacing(3), paddingBottom: theme.spacing(3), '&:not(:last-of-type)': { borderBottom: `1px solid ${theme.palette.divider}` } })) // ** Styled PerfectScrollbar component const PerfectScrollbar = styled(PerfectScrollbarComponent)({ maxHeight: '30rem' }) const ScrollWrapper = ({ children, hidden }: { children: ReactNode; hidden: boolean }) => { if (hidden) { return {children} } else { return {children} } } const ShortcutsDropdown = (props: Props) => { // ** Props const { shortcuts, settings } = props // ** States const [anchorEl, setAnchorEl] = useState<(EventTarget & Element) | null>(null) // ** Hook const hidden = useMediaQuery((theme: Theme) => theme.breakpoints.down('lg')) // ** Vars const { direction } = settings const handleDropdownOpen = (event: SyntheticEvent) => { setAnchorEl(event.currentTarget) } const handleDropdownClose = () => { setAnchorEl(null) } return ( Shortcuts ) } export default ShortcutsDropdown