From bc42ec30b5c8feb20d5c4789cc561509ae649cfb Mon Sep 17 00:00:00 2001 From: Aramis Date: Thu, 1 Feb 2024 15:14:23 -0500 Subject: [PATCH] update usage of new getFullTextFields Signed-off-by: Aramis --- plugins/catalog-react/src/filters.ts | 2 +- plugins/catalog-react/src/utils/filters.ts | 30 ++++++++++++---------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/plugins/catalog-react/src/filters.ts b/plugins/catalog-react/src/filters.ts index cf94272280..dda13338a7 100644 --- a/plugins/catalog-react/src/filters.ts +++ b/plugins/catalog-react/src/filters.ts @@ -108,7 +108,7 @@ export class EntityTextFilter implements EntityFilter { return true; } - getFullTextFilter() { + getFullTextFilters() { return { term: this.value, // Update this to be more dynamic based on table columns. diff --git a/plugins/catalog-react/src/utils/filters.ts b/plugins/catalog-react/src/utils/filters.ts index ad597c08e7..82d7358b91 100644 --- a/plugins/catalog-react/src/utils/filters.ts +++ b/plugins/catalog-react/src/utils/filters.ts @@ -26,29 +26,31 @@ import { EntityUserFilter, UserListFilter, } from '../filters'; -import { merge } from 'lodash'; export interface CatalogFilters { - [x: string]: - | string - | Record - | undefined; filter: Record; fullTextFilter?: { term: string; }; } +function isEntityTextFilter(t: EntityFilter): t is EntityTextFilter { + return !!(t as EntityTextFilter).getFullTextFilters; +} + export function reduceCatalogFilters(filters: EntityFilter[]): CatalogFilters { - return filters.reduce((compoundFilter, filter) => { - const addedFilters = {}; - if (filter.getBackendRequestParameter) { - Object.assign(addedFilters, filter.getBackendRequestParameter()); - } else if (filter.getCatalogFilters) { - Object.assign(addedFilters, { filter: filter.getCatalogFilters() }); - } - return merge(compoundFilter, addedFilters); - }, {} as CatalogFilters); + const condensedFilters = filters.reduce( + (compoundFilter, filter) => { + return { + ...compoundFilter, + ...(filter.getCatalogFilters ? filter.getCatalogFilters() : {}), + }; + }, + {}, + ); + + const fullTextFilter = filters.find(isEntityTextFilter)?.getFullTextFilters(); + return { filter: condensedFilters, fullTextFilter }; } /**