From e68dafe3a76314fac396d16e514b1d47cf8e9a51 Mon Sep 17 00:00:00 2001 From: RachelElysia <71795832+RachelElysia@users.noreply.github.com> Date: Thu, 26 Sep 2024 07:42:53 -0700 Subject: [PATCH] Fleet UI: Fix host software filter dropdown to persist other changes (#22392) --- changes/21594-host-software-filter-bug | 1 + .../Software/HostSoftwareTable/HostSoftwareTable.tsx | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 changes/21594-host-software-filter-bug diff --git a/changes/21594-host-software-filter-bug b/changes/21594-host-software-filter-bug new file mode 100644 index 0000000000..fb7ff11dda --- /dev/null +++ b/changes/21594-host-software-filter-bug @@ -0,0 +1 @@ +- Fleet UI: Fix host software filter bug that resets dropdown filter on table changes (pagination, order by column, etc) diff --git a/frontend/pages/hosts/details/cards/Software/HostSoftwareTable/HostSoftwareTable.tsx b/frontend/pages/hosts/details/cards/Software/HostSoftwareTable/HostSoftwareTable.tsx index be7a476d78..99275f7751 100644 --- a/frontend/pages/hosts/details/cards/Software/HostSoftwareTable/HostSoftwareTable.tsx +++ b/frontend/pages/hosts/details/cards/Software/HostSoftwareTable/HostSoftwareTable.tsx @@ -118,6 +118,7 @@ const HostSoftwareTable = ({ /> ); }, [handleFilterDropdownChange, hostSoftwareFilter]); + const determineQueryParamChange = useCallback( (newTableQuery: ITableQueryData) => { const changedEntry = Object.entries(newTableQuery).find(([key, val]) => { @@ -148,9 +149,15 @@ const HostSoftwareTable = ({ page: changedParam === "pageIndex" ? newTableQuery.pageIndex : 0, }; + if (hostSoftwareFilter === "vulnerableSoftware") { + newQueryParam.vulnerable = "true"; + } else if (hostSoftwareFilter === "installableSoftware") { + newQueryParam.available_for_install = "true"; + } + return newQueryParam; }, - [] + [hostSoftwareFilter] ); // TODO: Look into useDebounceCallback with dependencies