apjames93/mui-storyblok

View on GitHub
src/lib/components/PageGrid/atoms/ListItemText/ListItemText.js

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
import React from 'react';
import PropTypes from 'prop-types';
import { ListItemText as MuiListItemText } from '@material-ui/core';
import Storyblok from 'lib/utils/Storyblok';

/**
 * MuiListItemText is used in storyblok redirect to react routes
 */

export const ListItemText = ({
  secondary,
  primary,
  rootClass,
  storyblokClass,
  dataBlokC,
  dataBlokUid,
}) => {
  const styles = Storyblok.arrayToMuiStyles(rootClass);

  return (
    <MuiListItemText
      className={`${styles.root} ${storyblokClass}`}
      primary={primary}
      secondary={secondary}
      data-blok-c={dataBlokC}
      data-blok-uid={dataBlokUid}
    />
  );
};

export default ListItemText;

ListItemText.propTypes = {
  /** primary text */
  primary: PropTypes.string.isRequired,
  /** secondary text */
  secondary: PropTypes.string,
  /**
   * stroyblok multiselect of css classes
   * Override or extend the styles applied to the component
   * */
  rootClass: PropTypes.arrayOf(PropTypes.string),
  dataBlokC: '',
  dataBlokUid: '',
  storyblokClass: '',
};

ListItemText.defaultProps = {
  rootClass: [],
  secondary: '',
  /** storyblok prop for when in editor to allow click bridge */
  dataBlokC: PropTypes.string,
  /** storyblok prop for when in editor to allow click bridge */
  dataBlokUid: PropTypes.string,
  /** storyblok prop for when in editor to allow click bridge */
  storyblokClass: PropTypes.string,
};