Sha256: 4638a57cbbc040b3aacd5830022a5b77a57f07931b9d031d25c55271334a47bb

Contents?: true

Size: 1.37 KB

Versions: 54

Compression:

Stored size: 1.37 KB

Contents

import React, { useEffect } from 'react';
import { useDispatch, useSelector, shallowEqual } from 'react-redux';
import PropTypes from 'prop-types';
import { STATUS } from 'foremanReact/constants';
import EmptyStateMessage from '../../../components/Table/EmptyStateMessage';
import Loading from '../../../components/Loading';
import getContentViewDetails from './ContentViewDetailActions';
import { selectCVDetails,
  selectCVDetailStatus,
  selectCVDetailError } from './ContentViewDetailSelectors';

const DetailsContainer = ({ children, cvId, isOpen }) => {
  const dispatch = useDispatch();
  const details = useSelector(state => selectCVDetails(state, cvId), shallowEqual);
  const status = useSelector(state => selectCVDetailStatus(state, cvId), shallowEqual);
  const error = useSelector(state => selectCVDetailError(state, cvId), shallowEqual);

  useEffect(() => {
    if (isOpen && Object.keys(details).length === 0) {
      dispatch(getContentViewDetails(cvId));
    }
  });

  if (status === STATUS.PENDING) return (<Loading />);
  if (status === STATUS.ERROR) return (<EmptyStateMessage error={error} />);
  return (<React.Fragment>{children}</React.Fragment>);
};

DetailsContainer.propTypes = {
  children: PropTypes.element.isRequired,
  cvId: PropTypes.number.isRequired,
  isOpen: PropTypes.bool,
};

DetailsContainer.defaultProps = {
  isOpen: true,
};

export default DetailsContainer;

Version data entries

54 entries across 54 versions & 1 rubygems

Version Path
katello-4.2.2 webpack/scenes/ContentViews/Details/DetailsContainer.js
katello-4.3.0.rc4 webpack/scenes/ContentViews/Details/DetailsContainer.js
katello-4.3.0.rc3 webpack/scenes/ContentViews/Details/DetailsContainer.js
katello-4.3.0.rc2.1 webpack/scenes/ContentViews/Details/DetailsContainer.js
katello-4.3.0.rc2 webpack/scenes/ContentViews/Details/DetailsContainer.js
katello-4.3.0.rc1 webpack/scenes/ContentViews/Details/DetailsContainer.js
katello-4.2.1 webpack/scenes/ContentViews/Details/DetailsContainer.js
katello-4.2.0.1 webpack/scenes/ContentViews/Details/DetailsContainer.js
katello-4.1.4 webpack/scenes/ContentViews/Details/DetailsContainer.js
katello-4.0.3 webpack/scenes/ContentViews/Details/DetailsContainer.js
katello-4.2.0.1.rc3 webpack/scenes/ContentViews/Details/DetailsContainer.js
katello-3.18.5 webpack/scenes/ContentViews/Details/DetailsContainer.js
katello-4.2.0.1.rc2 webpack/scenes/ContentViews/Details/DetailsContainer.js
katello-4.2.0.rc2 webpack/scenes/ContentViews/Details/DetailsContainer.js
katello-4.1.3 webpack/scenes/ContentViews/Details/DetailsContainer.js
katello-4.2.0.rc1 webpack/scenes/ContentViews/Details/DetailsContainer.js
katello-4.0.2.1 webpack/scenes/ContentViews/Details/DetailsContainer.js
katello-4.1.2.1 webpack/scenes/ContentViews/Details/DetailsContainer.js
katello-4.0.2 webpack/scenes/ContentViews/Details/DetailsContainer.js
katello-4.1.2 webpack/scenes/ContentViews/Details/DetailsContainer.js