mirror of
https://github.com/SomboChea/ui
synced 2026-01-17 08:35:47 +07:00
fix: rest MUI components - Introduced ForwardRef (#224)
* refactor(162): added forwardRef Card * refactor(162): introduced forwardRefDivider * refactor(162): introduced forwardRef MuiComponents * refactor(162): introducing forwardRef * refactor(162): introduced forwardRef * refactor(162): introduced forwardRef * fix(162): fixed link * fix: fixed port number * fix: fixed duplicated id * fix: fixed ref iconbutton * fix: updated snaps * fix: fixed port * fix: fixed eslint errors * fix: the item should be a button * fix: fixed eslint errors
This commit is contained in:
committed by
Juan Picado @jotadeveloper
parent
a4cdd145d2
commit
b56e43846b
21
src/muiComponents/MenuItem/MenuItem.tsx
Normal file
21
src/muiComponents/MenuItem/MenuItem.tsx
Normal file
@@ -0,0 +1,21 @@
|
||||
import React, { forwardRef } from 'react';
|
||||
import { default as MaterialUIMenuItem, MenuItemProps } from '@material-ui/core/MenuItem';
|
||||
|
||||
type HTMLElementTagName = keyof HTMLElementTagNameMap;
|
||||
type MenuItemRef = HTMLElementTagNameMap[HTMLElementTagName];
|
||||
|
||||
interface Props extends Omit<MenuItemProps, 'component'> {
|
||||
component?: HTMLElementTagName;
|
||||
}
|
||||
|
||||
const MenuItem = forwardRef<MenuItemRef, Props>(function MenuItem({ button, ...props }, ref) {
|
||||
// it seems typescript has some discrimination type limitions. Please see: https://github.com/mui-org/material-ui/issues/14971
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
return <MaterialUIMenuItem {...props} button={button as any} innerRef={ref} />;
|
||||
});
|
||||
|
||||
MenuItem.defaultProps = {
|
||||
component: 'li',
|
||||
};
|
||||
|
||||
export default MenuItem;
|
||||
Reference in New Issue
Block a user