import { makeStyles } from '@mui/styles'; import React from 'react'; import type { AccessorReferenceNode, EnumMemberReferenceNode, MethodReferenceNode, PropertyReferenceNode } from '../../reference/index.js'; import OverviewTableEntry from './OverviewTableEntry.js'; const useStyles = makeStyles( theme => ({ root: { display: 'flex', marginBottom: theme.spacing.unit * 2, padding: theme.spacing.unit * 2 }, column: { minWidth: 300 }, heading: { margin: 0, marginBottom: theme.spacing.unit }, list: { margin: 0, paddingLeft: theme.spacing.unit, borderLeft: `${theme.spacing.unit / 2}px solid ${theme.colors.border}` } }), { name: 'OverviewTable' } ); type OverviewTablePropertyEntry = PropertyReferenceNode | AccessorReferenceNode; interface OverviewTableProps { members?: EnumMemberReferenceNode[]; events?: PropertyReferenceNode[]; properties?: OverviewTablePropertyEntry[]; methods?: MethodReferenceNode[]; } const OverviewTable: React.FC = ({ members, events, properties, methods }) => { const classes = useStyles(); return (
{members?.length ? (

Members

    {members.map(member => ( ))}
) : null} {events?.length ? (

Events

    {events.map(event => ( ))}
) : null} {properties?.length ? (

Properties

    {properties.map(prop => ( ))}
) : null} {methods?.length ? (

Methods

    {methods.map(method => ( ))}
) : null}
); }; export default OverviewTable;