From 95ad4587955b81d22c7dd8ef8464010eaacdbb40 Mon Sep 17 00:00:00 2001 From: Patrick Fic <> Date: Fri, 19 Feb 2021 11:15:34 -0800 Subject: [PATCH] Debounce global search IO-530 --- .../global-search/global-search.component.jsx | 31 +++++++------------ .../scoreboard-jobs-list.component.jsx | 6 ++-- 2 files changed, 15 insertions(+), 22 deletions(-) diff --git a/client/src/components/global-search/global-search.component.jsx b/client/src/components/global-search/global-search.component.jsx index 42410ab72..ec07512a7 100644 --- a/client/src/components/global-search/global-search.component.jsx +++ b/client/src/components/global-search/global-search.component.jsx @@ -1,12 +1,13 @@ import { useLazyQuery } from "@apollo/react-hooks"; import { AutoComplete, Input } from "antd"; +import _ from "lodash"; import React from "react"; import { useTranslation } from "react-i18next"; import { Link } from "react-router-dom"; -import { logImEXEvent } from "../../firebase/firebase.utils"; import { GLOBAL_SEARCH_QUERY } from "../../graphql/search.queries"; import CurrencyFormatter from "../../utils/CurrencyFormatter"; import AlertComponent from "../alert/alert.component"; + export default function GlobalSearch() { const { t } = useTranslation(); @@ -14,27 +15,18 @@ export default function GlobalSearch() { GLOBAL_SEARCH_QUERY ); - const handleSearch = (searchTerm) => { - logImEXEvent("global_search", { term: searchTerm }); + const executeSearch = (v) => { + callSearch(v); + }; + const debouncedExecuteSearch = _.debounce(executeSearch, 500); - if (searchTerm.length > 0) - callSearch({ variables: { search: searchTerm } }); + const handleSearch = (value) => { + if (value && value !== "") + debouncedExecuteSearch({ variables: { search: value } }); }; const renderTitle = (title) => { - return ( - - {title} - - more - - - ); + return {title}; }; const options = data @@ -155,8 +147,9 @@ export default function GlobalSearch() { dropdownMatchSelectWidth={false} style={{ width: 200 }} options={options} + onSearch={handleSearch} > - + ); diff --git a/client/src/components/scoreboard-jobs-list/scoreboard-jobs-list.component.jsx b/client/src/components/scoreboard-jobs-list/scoreboard-jobs-list.component.jsx index 69bfc7b23..a5ef6abe3 100644 --- a/client/src/components/scoreboard-jobs-list/scoreboard-jobs-list.component.jsx +++ b/client/src/components/scoreboard-jobs-list/scoreboard-jobs-list.component.jsx @@ -1,5 +1,5 @@ import React from "react"; -import { Dropdown, Button, Table } from "antd"; +import { Dropdown, Button, Table, Space } from "antd"; import { useTranslation } from "react-i18next"; import { Link } from "react-router-dom"; import ScoreboardRemoveButton from "../scoreboard-remove-button/scorebard-remove-button.component"; @@ -42,10 +42,10 @@ export default function ScoreboardJobsList({ scoreBoardlist }) { dataIndex: "actions", key: "actions", render: (text, record) => ( -
+ -
+ ), }, ];