All files / RippleEffect RippleEffect.js

100% Statements 6/6
100% Branches 18/18
100% Functions 1/1
100% Lines 6/6

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30            17x 17x               17x 17x       1x 1x                
import React from 'react';
import { defaultProps } from './props/defaultProps';
import { propTypes } from './props/propTypes';
import CssProvider from '../Provider/CssProvider';
import style from './RippleEffect.module.css';
export default function RippleEffect(props) {
  let { children, isActive, isDisabled, palette, hoverType, isNeedEffect, needBorder, isCopyTextEnabled } = props;
  let className = isNeedEffect
    ? `${style.effect} ${style[palette]} ${needBorder ? style.border : ''} ${
        style[`${hoverType}Hover`] ? style[`${hoverType}Hover`] : ''
      } ${isActive && !isDisabled ? style.active : ''} ${isDisabled ? '' : style.hoverEffect} ${
        isCopyTextEnabled ? style.notAllowed : isDisabled ? CssProvider('isDisabled') : ''
      }`
    : '';
 
  let child = React.Children.only(children);
  return React.cloneElement(child, {
    className: `${child.props.className || ''} ${className}`
  });
}
RippleEffect.defaultProps = defaultProps;
RippleEffect.propTypes = propTypes;
 
// if (__DOCS__) {
//   RippleEffect.docs = {
//     componentGroup: 'RippleEffect',
//     folderName: 'Style Guide'
//   };
// }