All files / elements/Card/subComponents/CardInner index.js

100% Statements 20/20
100% Branches 15/15
100% Functions 4/4
100% Lines 20/20

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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85                              1x         4x 4x 2x   2x     1x       4x 4x 3x   1x     1x           4x 4x 1x   3x     1x       4x 4x                       1x               1x                
import React from 'react';
import PropTypes from 'prop-types';
import { Box } from 'src/elements/grid';
import {
  cardBaseDefaultProps,
  cardBasePropTypes,
  cardBodyBaseDefaultProps,
  cardBodyBasePropTypes,
  cardHeaderBaseDefaultProps,
  cardHeaderBasePropTypes,
  cardInnerBaseDefaultProps,
  cardInnerBasePropTypes,
} from 'src/elements/Card/utils';
import { getCardHeader } from '../CardHeader';
 
const getPaddingBottom = props => {
  const {
    cardBody,
    cardPadding,
    cardSecondaryMedia,
  } = props;
  if ((getCardHeader(props) || cardBody) && !cardSecondaryMedia) {
    return cardPadding;
  }
  return '';
};
 
const getPaddingX = props => {
  const {
    cardBody,
    cardPadding,
  } = props;
  if (getCardHeader(props) || cardBody) {
    return cardPadding;
  }
  return '';
};
 
const getPaddingTop = props => {
  const {
    cardActions,
    cardActionsLeft,
    cardActionsRight,
    cardPadding,
  } = props;
  if (!getCardHeader(props) && (cardActions || cardActionsLeft || cardActionsRight)) {
    return cardPadding;
  }
  return '';
};
 
export const CardInner = props => {
  const {
    cardInnerProps,
    children,
  } = props;
  return (
    <Box
      pb={getPaddingBottom(props)}
      pt={getPaddingTop(props)}
      px={getPaddingX(props)}
      {...cardInnerProps}
    >
      {children}
    </Box>
  );
};
 
CardInner.propTypes = {
  ...cardBasePropTypes,
  ...cardBodyBasePropTypes,
  ...cardHeaderBasePropTypes,
  ...cardInnerBasePropTypes,
  children: PropTypes.node,
};
 
CardInner.defaultProps = {
  ...cardBaseDefaultProps,
  ...cardBodyBaseDefaultProps,
  ...cardHeaderBaseDefaultProps,
  ...cardInnerBaseDefaultProps,
  cardPadding: [2, null, 3],
  children: '',
};