fleet/frontend/components/queries/QueryPageSelectTargets/QueryPageSelectTargets.jsx
Zachary Wasserman 1eccf9a874
Add warning in query UI when Redis fails (#2086)
- Add warning message when Redis fails
- Disable query button when Redis fails
- Refactor SMTP warning banner into component for reuse

Closes #2073
2019-08-13 09:42:58 -07:00

64 lines
1.8 KiB
JavaScript

import React, { Component } from 'react';
import PropTypes from 'prop-types';
import campaignInterface from 'interfaces/campaign';
import QueryProgressDetails from 'components/queries/QueryProgressDetails';
import SelectTargetsDropdown from 'components/forms/fields/SelectTargetsDropdown';
import targetInterface from 'interfaces/target';
const baseClass = 'query-page-select-targets';
class QueryPageSelectTargets extends Component {
static propTypes = {
campaign: campaignInterface,
error: PropTypes.string,
onFetchTargets: PropTypes.func.isRequired,
onRunQuery: PropTypes.func.isRequired,
onStopQuery: PropTypes.func.isRequired,
onTargetSelect: PropTypes.func.isRequired,
queryIsRunning: PropTypes.bool,
selectedTargets: PropTypes.arrayOf(targetInterface),
targetsCount: PropTypes.number,
queryTimerMilliseconds: PropTypes.number,
disableRun: PropTypes.bool,
};
render () {
const {
error,
onFetchTargets,
onTargetSelect,
selectedTargets,
targetsCount,
campaign,
onRunQuery,
onStopQuery,
queryIsRunning,
queryTimerMilliseconds,
disableRun,
} = this.props;
return (
<div className={`${baseClass}__wrapper body-wrap`}>
<QueryProgressDetails
campaign={campaign}
onRunQuery={onRunQuery}
onStopQuery={onStopQuery}
queryIsRunning={queryIsRunning}
queryTimerMilliseconds={queryTimerMilliseconds}
disableRun={disableRun}
/>
<SelectTargetsDropdown
error={error}
onFetchTargets={onFetchTargets}
onSelect={onTargetSelect}
selectedTargets={selectedTargets}
targetsCount={targetsCount}
label="Select Targets"
/>
</div>
);
}
}
export default QueryPageSelectTargets;