MetaPhase-Consulting/State-TalentMAP

View on GitHub
src/Components/PositionViews/PositionViews.jsx

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
/* eslint-disable */
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import numeral from 'numeral';
import { get } from 'lodash';
import Skeleton from 'react-loading-skeleton';

const PositionViews = ({ views, viewsIsLoading, viewsHasErored }) => {
  const view = get(views, '[0]', {});
  const views$ = numeral(view.count).format('0,0');
  let text = `${views$} ${view.title}`;
  if (viewsIsLoading) text = <Skeleton />;
  if (viewsHasErored) text = 'Error loading statistics';
  return (
    <span>{text}</span>
  );
};

PositionViews.propTypes = {
  views: PropTypes.arrayOf(PropTypes.shape({})),
  viewsIsLoading: PropTypes.bool,
  viewsHasErored: PropTypes.bool,
};

PositionViews.defaultProps = {
  views: [],
  viewsIsLoading: false,
  viewsHasErored: false,
};

const mapStateToProps = state => ({
  views: state.positionViews,
  viewsIsLoading: state.positionViewsIsLoading,
  viewsHasErored: state.positionViewsHasErored,
});

export default connect(mapStateToProps)(PositionViews);