import React, { useEffect } from 'react';
import PropTypes from 'prop-types';
import { useSelector, useDispatch } from 'react-redux';
import { get } from 'foremanReact/redux/API';
import { foremanUrl } from 'foremanReact/common/helpers';
import Loading from 'foremanReact/components/Loading';
import DefaultEmptyState from 'foremanReact/components/common/EmptyState';
import HostReportsShowPage from './ShowPage';
import { HOST_REPORT_REQUEST_KEY, HOST_REPORTS_PATH } from '../constants';
import {
selectHostReport,
selectIsLoading,
selectHasError,
selectErrorMessage,
selectPermissions,
} from './ShowPageSelectors';
import { fetchAndPush } from '../IndexPage/IndexPageActions';
const ConnectedHostReportsShowPage = ({ match }) => {
const dispatch = useDispatch();
const report = useSelector(selectHostReport);
const isLoading = useSelector(selectIsLoading);
const hasError = useSelector(selectHasError);
const error = useSelector(selectErrorMessage);
const permissions = useSelector(selectPermissions);
const { id } = match.params;
useEffect(() => {
dispatch(
get({
key: HOST_REPORT_REQUEST_KEY,
url: foremanUrl(`${HOST_REPORTS_PATH}/${id}`),
})
);
}, [dispatch, id]);
if (isLoading && !hasError) return ;
if (!isLoading && hasError) {
return (
);
}
return (
dispatch(fetchAndPush(params))}
/>
);
};
ConnectedHostReportsShowPage.propTypes = {
match: PropTypes.object.isRequired,
};
export default ConnectedHostReportsShowPage;