import React from "react"; import { Row } from "react-table"; import { isEmpty, pullAllBy } from "lodash"; import { IHost } from "interfaces/host"; import { HOSTS_SEARCH_BOX_PLACEHOLDER } from "utilities/constants"; import DataError from "components/DataError"; // @ts-ignore import Input from "components/forms/fields/InputFieldWithIcon"; import TableContainer from "components/TableContainer"; import { generateTableHeaders } from "./TargetsInputHostsTableConfig"; interface ITargetsInputProps { tabIndex: number; searchText: string; searchResults: IHost[]; isTargetsLoading: boolean; hasFetchError: boolean; targetedHosts: IHost[]; setSearchText: (value: string) => void; handleRowSelect: (value: Row) => void; handleRowRemove: (value: Row) => void; } const baseClass = "targets-input"; const TargetsInput = ({ tabIndex, searchText, searchResults, isTargetsLoading, hasFetchError, targetedHosts, handleRowSelect, handleRowRemove, setSearchText, }: ITargetsInputProps): JSX.Element => { const resultsDropdownTableHeaders = generateTableHeaders(); const selectedTableHeaders = generateTableHeaders(handleRowRemove); const dropdownHosts = searchResults && pullAllBy(searchResults, targetedHosts, "display_name"); // const finalSelectedHostTargets = // targetedHosts && filter(targetedHosts, "display_name"); const isActiveSearch = !isEmpty(searchText) && (!hasFetchError || isTargetsLoading); const isSearchError = !isEmpty(searchText) && hasFetchError; return (
{isActiveSearch && (
(

No hosts match the current search criteria.

Expecting to see hosts? Try again in a few seconds as the system catches up.

)} showMarkAllPages={false} isAllPagesSelected={false} disableCount disablePagination disableMultiRowSelect onSelectSingleRow={handleRowSelect} />
)} {isSearchError && (
)}
<>} />
); }; export default TargetsInput;