From f62d5a20867e07e9c49f8d1ed68ac322ae215359 Mon Sep 17 00:00:00 2001 From: "Cong Pham (via MelvinBot)" Date: Tue, 10 Mar 2026 04:34:17 +0000 Subject: [PATCH 1/2] Fix: Filter tags and categories by selected workspace only When a workspace is selected in search filters but has no tags/categories, the filter pages incorrectly fall back to showing tags/categories from all workspaces. Change the condition to check whether a workspace filter is applied (policyIDs.length === 0) rather than whether the result is empty, so that selecting a workspace with no tags/categories correctly shows an empty list instead of items from other workspaces. Co-authored-by: Cong Pham --- .../SearchAdvancedFiltersPage/SearchFiltersCategoryPage.tsx | 6 +++--- .../SearchAdvancedFiltersPage/SearchFiltersTagPage.tsx | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/pages/Search/SearchAdvancedFiltersPage/SearchFiltersCategoryPage.tsx b/src/pages/Search/SearchAdvancedFiltersPage/SearchFiltersCategoryPage.tsx index 6ea2bdb253aac..aca88eaa0e2ad 100644 --- a/src/pages/Search/SearchAdvancedFiltersPage/SearchFiltersCategoryPage.tsx +++ b/src/pages/Search/SearchAdvancedFiltersPage/SearchFiltersCategoryPage.tsx @@ -61,12 +61,12 @@ function SearchFiltersCategoryPage() { const items = [{name: translate('search.noCategory'), value: CONST.SEARCH.CATEGORY_EMPTY_VALUE as string}]; const uniqueCategoryNames = new Set(); - if (!selectedPoliciesCategories || selectedPoliciesCategories.length === 0) { + if (policyIDs.length === 0) { const categories = Object.values(allPolicyCategories ?? {}).flatMap((policyCategories) => Object.values(policyCategories ?? {})); for (const category of categories) { uniqueCategoryNames.add(category.name); } - } else { + } else if (selectedPoliciesCategories.length > 0) { for (const category of selectedPoliciesCategories) { uniqueCategoryNames.add(category.name); } @@ -80,7 +80,7 @@ function SearchFiltersCategoryPage() { }), ); return items; - }, [allPolicyCategories, selectedPoliciesCategories, translate]); + }, [allPolicyCategories, policyIDs, selectedPoliciesCategories, translate]); const onSaveSelection = useCallback((values: string[]) => updateAdvancedFilters({category: values}), []); diff --git a/src/pages/Search/SearchAdvancedFiltersPage/SearchFiltersTagPage.tsx b/src/pages/Search/SearchAdvancedFiltersPage/SearchFiltersTagPage.tsx index 99b7a5ecfb314..1597c87c7afbe 100644 --- a/src/pages/Search/SearchAdvancedFiltersPage/SearchFiltersTagPage.tsx +++ b/src/pages/Search/SearchAdvancedFiltersPage/SearchFiltersTagPage.tsx @@ -39,12 +39,12 @@ function SearchFiltersTagPage() { const items = [{name: translate('search.noTag'), value: CONST.SEARCH.TAG_EMPTY_VALUE as string}]; const uniqueTagNames = new Set(); - if (!selectedPoliciesTagLists || selectedPoliciesTagLists.length === 0) { + if (policyIDs.length === 0) { const tagListsUnpacked = Object.values(allPolicyTagLists ?? {}).filter((item) => !!item); for (const tag of tagListsUnpacked.map(getTagNamesFromTagsLists).flat()) { uniqueTagNames.add(tag); } - } else { + } else if (selectedPoliciesTagLists.length > 0) { for (const tag of selectedPoliciesTagLists) { uniqueTagNames.add(tag); } @@ -52,7 +52,7 @@ function SearchFiltersTagPage() { items.push(...Array.from(uniqueTagNames).map((tagName) => ({name: getCleanedTagName(tagName), value: tagName}))); return items; - }, [allPolicyTagLists, selectedPoliciesTagLists, translate]); + }, [allPolicyTagLists, policyIDs, selectedPoliciesTagLists, translate]); const updateTagFilter = useCallback((values: string[]) => updateAdvancedFilters({tag: values}), []); From 89d18bc7c20cf400a8273dfb4e23173b14e70df1 Mon Sep 17 00:00:00 2001 From: "Cong Pham (via MelvinBot)" Date: Tue, 10 Mar 2026 04:38:47 +0000 Subject: [PATCH 2/2] Fix ESLint: use policyIDs.length in dependency arrays Co-authored-by: Cong Pham --- .../SearchAdvancedFiltersPage/SearchFiltersCategoryPage.tsx | 2 +- .../Search/SearchAdvancedFiltersPage/SearchFiltersTagPage.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/Search/SearchAdvancedFiltersPage/SearchFiltersCategoryPage.tsx b/src/pages/Search/SearchAdvancedFiltersPage/SearchFiltersCategoryPage.tsx index aca88eaa0e2ad..f10d09faa0495 100644 --- a/src/pages/Search/SearchAdvancedFiltersPage/SearchFiltersCategoryPage.tsx +++ b/src/pages/Search/SearchAdvancedFiltersPage/SearchFiltersCategoryPage.tsx @@ -80,7 +80,7 @@ function SearchFiltersCategoryPage() { }), ); return items; - }, [allPolicyCategories, policyIDs, selectedPoliciesCategories, translate]); + }, [allPolicyCategories, policyIDs.length, selectedPoliciesCategories, translate]); const onSaveSelection = useCallback((values: string[]) => updateAdvancedFilters({category: values}), []); diff --git a/src/pages/Search/SearchAdvancedFiltersPage/SearchFiltersTagPage.tsx b/src/pages/Search/SearchAdvancedFiltersPage/SearchFiltersTagPage.tsx index 1597c87c7afbe..f3da68625743c 100644 --- a/src/pages/Search/SearchAdvancedFiltersPage/SearchFiltersTagPage.tsx +++ b/src/pages/Search/SearchAdvancedFiltersPage/SearchFiltersTagPage.tsx @@ -52,7 +52,7 @@ function SearchFiltersTagPage() { items.push(...Array.from(uniqueTagNames).map((tagName) => ({name: getCleanedTagName(tagName), value: tagName}))); return items; - }, [allPolicyTagLists, policyIDs, selectedPoliciesTagLists, translate]); + }, [allPolicyTagLists, policyIDs.length, selectedPoliciesTagLists, translate]); const updateTagFilter = useCallback((values: string[]) => updateAdvancedFilters({tag: values}), []);