1
0
Fork 1
mirror of https://github.com/SomboChea/ui synced 2024-06-16 16:29:42 +07:00
verdaccio-ui/src/muiComponents/ListItem/ListItem.tsx
Juan Picado @jotadeveloper e6b53c0479
chore: migrate eslint@6.6.0 (#227)
* chore: migrate to eslint6

* chore: migrate to eslint6
2019-10-27 15:49:30 +01:00

24 lines
821 B
TypeScript

import React, { forwardRef } from 'react';
import { default as MaterialUIListItem, ListItemProps } from '@material-ui/core/ListItem';
type ListItemRef<T extends boolean = false> = T extends true ? HTMLDivElement : HTMLLIElement;
interface Props<T extends boolean = false> extends Omit<ListItemProps, 'button'> {
button?: T;
}
const ListItem = forwardRef(function ListItem<T extends boolean>(
{ button, ...props }: Props<T>,
ref: React.Ref<ListItemRef<T>>
) {
// 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 <MaterialUIListItem {...props} button={button as any} innerRef={ref} />;
});
ListItem.defaultProps = {
button: false,
};
export default ListItem;