UNPKG

mdc-react

Version:

Material Components for the web implemented in React

42 lines (33 loc) 972 B
import { forwardRef, useRef, useImperativeHandle } from 'react'; import PropTypes from 'prop-types'; import classnames from 'classnames'; import { cssClasses } from './constants'; import { useRipple } from './hooks'; const RippleSurface = forwardRef(({ primary, accent, className, element: Element = 'div', ...props }, ref) => { const rootRef = useRef(); useImperativeHandle(ref, () => rootRef.current); useRipple(rootRef); const classNames = classnames(cssClasses.SURFACE, { [cssClasses.SURFACE_PRIMARY]: primary, [cssClasses.SURFACE_ACCENT]: accent }, className); return ( <Element ref={rootRef} className={classNames} {...props} /> ); }); RippleSurface.displayName = 'MDCRippleSurface'; RippleSurface.propTypes = { primary: PropTypes.bool, accent: PropTypes.bool }; export default RippleSurface;