mdc-react
Version:
Material Components for the web implemented in React
64 lines (53 loc) • 1.64 kB
JSX
import { forwardRef } from 'react';
import PropTypes from 'prop-types';
import classnames from 'classnames';
import { Clone } from '../component';
import { listItemCssClasses as cssClasses } from './constants';
const ListItemContent = forwardRef(({
overline,
primary,
secondary,
overlineText = overline,
primaryText = primary,
secondaryText = secondary,
element = 'span',
component: Element = element,
className,
children,
...props
}, ref) => {
const classNames = classnames(cssClasses.CONTENT, className);
return (
<Element ref={ref} className={classNames} {...props}>
{overlineText &&
<Clone
component={overlineText}
fallback="span"
className={cssClasses.OVERLINE_TEXT}
/>
}
{primaryText &&
<Clone
component={primaryText}
fallback="span"
className={cssClasses.PRIMARY_TEXT}
/>
}
{secondaryText &&
<Clone
component={secondaryText}
fallback="span"
className={cssClasses.SECONDARY_TEXT}
/>
}
{children}
</Element>
);
});
ListItemContent.displayName = 'MDCListItemContent';
ListItemContent.propTypes = {
overlineText: PropTypes.node,
primaryText: PropTypes.node,
secondaryText: PropTypes.node
};
export default ListItemContent;