import React from 'react'; import { MenuProps as MuiMenuProps } from '@mui/material/Menu'; /** * Material UI has a known typescript problem with components that uses the 'component' prop: * * @see https://github.com/mui/material-ui/pull/32404#issuecomment-1105228783 * * Therefore, adding a workaround by extending the source MenuProps interface and adding the 'component' prop. * * At the moment that the following PR is merged, this workaround can probably be removed: * * @see https://github.com/mui/material-ui/pull/35924 * * Once the PR is merged, verify the fix by making sure that there is no typescript error in the following code: * *
* * The following components share the same problem: Button, IconButton, ToggleButton, List, ListItem, ListItemButton, MenuList, Menu, MenuItem, Paper, Dialog, Drawer, Typography. */ export interface MenuProps extends MuiMenuProps { MenuListProps?: MuiMenuProps['MenuListProps'] & { component?: React.ElementType; }; PaperProps?: MuiMenuProps['PaperProps'] & { component?: React.ElementType; }; } /** * Modified reasons: * * - Material UI Typescript problem with the 'component' prop. * - The Menu component uses the Popover component internally, which does not handle RTL properly, therefore we're overriding it with our Popover component since it already handles this case. * - Modifying the default props. */ declare const Menu: React.FC