mirror of
https://github.com/fleetdm/fleet
synced 2026-04-30 18:07:56 +00:00
* Api client get targets * Allow entities to parse full api response * responsive nav style fixes * Add disabled prop to button * Add targets from API to target select input * customize target rendering in input field * call API on select target input change * display # hosts selected * Adds new icons to icon font * Customize select targets input options * Update directory structure * restructure select targets input * Adds hosts to labels * Host modal styles * ShadowBoxInput component * TargetInfoModal for labels * consistent entity response in api client stubs * Fix bug removing multiple hosts in target select input * change Button component to use css classes
46 lines
1.1 KiB
JavaScript
46 lines
1.1 KiB
JavaScript
import React, { Component, PropTypes } from 'react';
|
|
import Select from 'react-select';
|
|
import 'react-select/dist/react-select.css';
|
|
|
|
import targetInterface from '../../../interfaces/target';
|
|
|
|
class SelectTargetsInput extends Component {
|
|
static propTypes = {
|
|
isLoading: PropTypes.bool,
|
|
menuRenderer: PropTypes.func,
|
|
onTargetSelect: PropTypes.func,
|
|
onTargetSelectInputChange: PropTypes.func,
|
|
selectedTargets: PropTypes.arrayOf(targetInterface),
|
|
targets: PropTypes.arrayOf(targetInterface),
|
|
};
|
|
|
|
render () {
|
|
const {
|
|
isLoading,
|
|
menuRenderer,
|
|
onTargetSelect,
|
|
onTargetSelectInputChange,
|
|
selectedTargets,
|
|
targets,
|
|
} = this.props;
|
|
|
|
return (
|
|
<Select
|
|
className="target-select"
|
|
isLoading={isLoading}
|
|
menuRenderer={menuRenderer}
|
|
multi
|
|
name="targets"
|
|
options={targets}
|
|
onChange={onTargetSelect}
|
|
onInputChange={onTargetSelectInputChange}
|
|
placeholder="Label Name, Host Name, IP Address, etc."
|
|
resetValue={[]}
|
|
value={selectedTargets}
|
|
valueKey="label"
|
|
/>
|
|
);
|
|
}
|
|
}
|
|
|
|
export default SelectTargetsInput;
|