/* * Copyright (C) Contributors to the Suwayomi project * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ /* * src: https://github.com/webzep/mui-nested-menu/blob/main/packages/mui-nested-menu/src/components/IconMenuItem.tsx (2024-04-20 01:42) */ import ListItemIcon from '@mui/material/ListItemIcon'; import MenuItem, { MenuItemProps as MuiMenuItemProps } from '@mui/material/MenuItem'; import { SxProps, Theme } from '@mui/material/styles'; import React, { forwardRef, RefObject } from 'react'; import { OverridableComponent } from '@mui/material/OverridableComponent'; import { SvgIconTypeMap } from '@mui/material/SvgIcon'; import ListItemText from '@mui/material/ListItemText'; type IconMenuItemProps = { MenuItemProps?: MuiMenuItemProps; className?: string; disabled?: boolean; label?: string; renderLabel?: () => React.ReactNode; LeftIcon?: OverridableComponent & { muiName: string }; onClick?: (event: React.MouseEvent) => void; ref?: RefObject; RightIcon?: OverridableComponent & { muiName: string }; sx?: SxProps; }; export const IconMenuItem = forwardRef( ({ MenuItemProps, className, label, LeftIcon, renderLabel, RightIcon, ...props }, ref) => ( {LeftIcon && ( )} {label} {RightIcon && ( )} ), );