From 7198026f91e1a250fd3de73d3b676f89bb867e74 Mon Sep 17 00:00:00 2001 From: RachelElysia <71795832+RachelElysia@users.noreply.github.com> Date: Thu, 6 Apr 2023 14:37:31 -0400 Subject: [PATCH] Manage policies page: Add search functionality (#10967) --- .../PoliciesTable/PoliciesTable.tsx | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/frontend/pages/policies/ManagePoliciesPage/components/PoliciesTable/PoliciesTable.tsx b/frontend/pages/policies/ManagePoliciesPage/components/PoliciesTable/PoliciesTable.tsx index 8550685003..a2910e6fcd 100644 --- a/frontend/pages/policies/ManagePoliciesPage/components/PoliciesTable/PoliciesTable.tsx +++ b/frontend/pages/policies/ManagePoliciesPage/components/PoliciesTable/PoliciesTable.tsx @@ -1,4 +1,4 @@ -import React, { useContext } from "react"; +import React, { useContext, useState } from "react"; import { AppContext } from "context/app"; import { noop } from "lodash"; import paths from "router/paths"; @@ -9,7 +9,7 @@ import { IEmptyTableProps } from "interfaces/empty_table"; import Button from "components/buttons/Button"; import Spinner from "components/Spinner"; -import TableContainer from "components/TableContainer"; +import TableContainer, { ITableQueryData } from "components/TableContainer"; import EmptyTable from "components/EmptyTable"; import { generateTableHeaders, generateDataSet } from "./PoliciesTableConfig"; @@ -46,6 +46,12 @@ const PoliciesTable = ({ const { config } = useContext(AppContext); + const [searchString, setSearchString] = useState(""); + + const handleSearchChange = ({ searchQuery }: ITableQueryData) => { + setSearchString(searchQuery); + }; + const emptyState = () => { const emptyPolicies: IEmptyTableProps = { iconName: "empty-policies", @@ -90,10 +96,19 @@ const PoliciesTable = ({ ); } + if (searchString) { + delete emptyPolicies.iconName; + delete emptyPolicies.primaryButton; + emptyPolicies.header = "No policies match the current search criteria."; + emptyPolicies.info = + "Expecting to see policies? Try again in a few seconds as the system catches up."; + } return emptyPolicies; }; + const searchable = !(policiesList?.length === 0 && searchString === ""); + return (
)}