Sha256: f38ee491c6efcc598e12191d20de9b8b2a62f042f4d98c27538900d0738a5335
Contents?: true
Size: 1.53 KB
Versions: 8
Compression:
Stored size: 1.53 KB
Contents
import React from 'react'; import PropTypes from 'prop-types'; import { orderBy } from 'lodash'; import { Grid, ListView, noop } from 'patternfly-react'; import ListItem from './components/ListItem'; import './InsightsTab.scss'; class InsightsHostDetailsTab extends React.Component { componentDidMount() { const { fetchHits, hostID } = this.props; fetchHits(hostID); } render() { const { hits } = this.props; if (!hits.length) { return <h2>No recommendations were found for this host!</h2>; } const hitsSorted = orderBy(hits, ['insights_hit.total_risk'], ['desc']); const items = hitsSorted.map( ( { insights_hit: { title, total_risk: totalRisk, results_url: resultsUrl, solution_url: solutionUrl, }, }, index ) => ( <ListItem key={index} title={title} totalRisk={totalRisk} resultsUrl={resultsUrl} solutionUrl={solutionUrl} /> ) ); return ( <div id="host_details_insights_tab"> <Grid.Row> <Grid.Col xs={12}> <h2>Recommendations</h2> <ListView id="hits_list">{items}</ListView> </Grid.Col> </Grid.Row> </div> ); } } InsightsHostDetailsTab.propTypes = { hostID: PropTypes.number.isRequired, fetchHits: PropTypes.func, hits: PropTypes.array, }; InsightsHostDetailsTab.defaultProps = { fetchHits: noop, hits: [], }; export default InsightsHostDetailsTab;
Version data entries
8 entries across 8 versions & 1 rubygems