import React, { useState } from "react"; import PropTypes from "prop-types"; import { filter, includes } from "lodash"; import Button from "components/buttons/Button"; import Modal from "components/modals/Modal"; import InputField from "components/forms/fields/InputField"; import queryInterface from "interfaces/query"; import hostInterface from "interfaces/host"; import helpers from "../helpers"; import OpenNewTabIcon from "../../../../../assets/images/open-new-tab-12x12@2x.png"; import ErrorIcon from "../../../../../assets/images/icon-error-16x16@2x.png"; const baseClass = "select-query-modal"; const onQueryHostCustom = (host, dispatch) => { const { queryHostCustom } = helpers; queryHostCustom(dispatch, host); return false; }; const onQueryHostSaved = (host, selectedQuery, dispatch) => { const { queryHostSaved } = helpers; queryHostSaved(dispatch, host, selectedQuery); return false; }; const SelectQueryModal = (props) => { const { host, toggleQueryHostModal, dispatch, queries, queryErrors } = props; const [queriesFilter, setQueriesFilter] = useState(""); const getQueries = () => { if (!queriesFilter) { return queries; } const lowerQueryFilter = queriesFilter.toLowerCase(); return filter(queries, (query) => { if (!query.name) { return false; } const lowerQueryName = query.name.toLowerCase(); return includes(lowerQueryName, lowerQueryFilter); }); }; const customQueryButton = () => { return ( ); }; const onFilterQueries = (event) => { setQueriesFilter(event); return false; }; const queriesFiltered = getQueries(); const queriesCount = queriesFiltered.length; const results = () => { if (queryErrors) { return (