import React from 'react'; import PropTypes from 'prop-types'; import { get } from 'lodash'; import Button from 'components/buttons/Button'; import campaignInterface from 'interfaces/campaign'; import ProgressBar from 'components/loaders/ProgressBar'; import Timer from 'components/loaders/Timer'; const baseClass = 'query-progress-details'; const QueryProgressDetails = ({ campaign, className, onRunQuery, onStopQuery, query, queryIsRunning, queryTimerMilliseconds }) => { const handleRunQuery = () => { return onRunQuery(query); }; const { hosts_count: hostsCount } = campaign; const totalHostsCount = get(campaign, ['totals', 'count'], 0); const totalRowsCount = get(campaign, ['query_results', 'length'], 0); const runQueryBtn = (
); const stopQueryBtn = (
); if (!hostsCount.total) { return (
{queryIsRunning ? stopQueryBtn : runQueryBtn}
); } return (
{hostsCount.total} of  {totalHostsCount} Hosts Returning  {totalRowsCount} Records  ({hostsCount.failed} failed) {queryIsRunning && }
{queryIsRunning ? stopQueryBtn : runQueryBtn}
); }; QueryProgressDetails.propTypes = { campaign: campaignInterface, className: PropTypes.string, onRunQuery: PropTypes.func.isRequired, onStopQuery: PropTypes.func.isRequired, query: PropTypes.string, queryIsRunning: PropTypes.bool, queryTimerMilliseconds: PropTypes.number, }; export default QueryProgressDetails;