From 7f6995e3233f4b2c2eb9843acb5b8e15c0742e9a Mon Sep 17 00:00:00 2001 From: Rkmishra09 Date: Wed, 26 Nov 2025 18:35:28 +0530 Subject: [PATCH 1/3] fix: Report- "Uncategorized" chip not highlighted in search field. Signed-off-by: Rkmishra09 --- src/libs/SearchAutocompleteUtils.ts | 3 ++- src/libs/SearchQueryUtils.ts | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/libs/SearchAutocompleteUtils.ts b/src/libs/SearchAutocompleteUtils.ts index dc8da0f6a40fb..7596c3421e91c 100644 --- a/src/libs/SearchAutocompleteUtils.ts +++ b/src/libs/SearchAutocompleteUtils.ts @@ -181,7 +181,8 @@ function filterOutRangesWithCorrectValue( case CONST.SEARCH.SYNTAX_FILTER_KEYS.ACTION: return actionList.includes(range.value); case CONST.SEARCH.SYNTAX_FILTER_KEYS.CATEGORY: - return categoryList.get().includes(range.value); + // Highlight if value is a known category OR one of the empty-category synonyms (e.g., "none", "Uncategorized") + return categoryList.get().includes(range.value) || CONST.SEARCH.CATEGORY_EMPTY_VALUE.split(',').some((emptyVal) => emptyVal.toLowerCase() === range.value.toLowerCase()); case CONST.SEARCH.SYNTAX_FILTER_KEYS.TAG: return tagList.get().includes(range.value); case CONST.SEARCH.SYNTAX_ROOT_KEYS.GROUP_BY: diff --git a/src/libs/SearchQueryUtils.ts b/src/libs/SearchQueryUtils.ts index 17038bcf5aa62..06ce4e89a517d 100644 --- a/src/libs/SearchQueryUtils.ts +++ b/src/libs/SearchQueryUtils.ts @@ -771,9 +771,10 @@ function buildFilterFormValuesFromQuery( .flat(); const uniqueCategories = new Set(categories); const emptyCategories = CONST.SEARCH.CATEGORY_EMPTY_VALUE.split(','); - const hasEmptyCategoriesInFilter = emptyCategories.every((category) => filterValues.includes(category)); - // We split CATEGORY_EMPTY_VALUE into individual values to detect both are present in filterValues. - // If empty categories are found, append the CATEGORY_EMPTY_VALUE to filtersForm. + // Consider the empty category selected if ANY of its synonyms are present (e.g., "none" OR "Uncategorized") + const filterValuesLower = new Set(filterValues.map((v) => v.toLowerCase())); + const hasEmptyCategoriesInFilter = emptyCategories.some((category) => filterValuesLower.has(category.toLowerCase())); + // If an empty category synonym is found, append CATEGORY_EMPTY_VALUE to filtersForm so the chip appears selected. filtersForm[key as typeof filterKey] = filterValues.filter((name) => uniqueCategories.has(name)).concat(hasEmptyCategoriesInFilter ? [CONST.SEARCH.CATEGORY_EMPTY_VALUE] : []); } if (filterKey === CONST.SEARCH.SYNTAX_FILTER_KEYS.KEYWORD) { From bf13dcb8481cb966781c78b99c38e0a61ded8a4f Mon Sep 17 00:00:00 2001 From: Rkmishra09 Date: Fri, 28 Nov 2025 13:18:24 +0530 Subject: [PATCH 2/3] comment update. Signed-off-by: Rkmishra09 --- src/libs/SearchQueryUtils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/SearchQueryUtils.ts b/src/libs/SearchQueryUtils.ts index 06ce4e89a517d..dc6b2e40c408e 100644 --- a/src/libs/SearchQueryUtils.ts +++ b/src/libs/SearchQueryUtils.ts @@ -774,7 +774,7 @@ function buildFilterFormValuesFromQuery( // Consider the empty category selected if ANY of its synonyms are present (e.g., "none" OR "Uncategorized") const filterValuesLower = new Set(filterValues.map((v) => v.toLowerCase())); const hasEmptyCategoriesInFilter = emptyCategories.some((category) => filterValuesLower.has(category.toLowerCase())); - // If an empty category synonym is found, append CATEGORY_EMPTY_VALUE to filtersForm so the chip appears selected. + // If empty categories are found, append the CATEGORY_EMPTY_VALUE to filtersForm. filtersForm[key as typeof filterKey] = filterValues.filter((name) => uniqueCategories.has(name)).concat(hasEmptyCategoriesInFilter ? [CONST.SEARCH.CATEGORY_EMPTY_VALUE] : []); } if (filterKey === CONST.SEARCH.SYNTAX_FILTER_KEYS.KEYWORD) { From 20e56c77ce33f1b7274e96780ba6ad454be3c233 Mon Sep 17 00:00:00 2001 From: Ritika mishra Date: Fri, 5 Dec 2025 19:37:17 +0530 Subject: [PATCH 3/3] update comments. Signed-off-by: Ritika mishra --- src/libs/SearchAutocompleteUtils.ts | 2 +- src/libs/SearchQueryUtils.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libs/SearchAutocompleteUtils.ts b/src/libs/SearchAutocompleteUtils.ts index 7596c3421e91c..16727b4808e3c 100644 --- a/src/libs/SearchAutocompleteUtils.ts +++ b/src/libs/SearchAutocompleteUtils.ts @@ -181,7 +181,7 @@ function filterOutRangesWithCorrectValue( case CONST.SEARCH.SYNTAX_FILTER_KEYS.ACTION: return actionList.includes(range.value); case CONST.SEARCH.SYNTAX_FILTER_KEYS.CATEGORY: - // Highlight if value is a known category OR one of the empty-category synonyms (e.g., "none", "Uncategorized") + // Treat the empty category as selected if any of its synonyms (e.g., "none", "uncategorized") appear in filterValues. return categoryList.get().includes(range.value) || CONST.SEARCH.CATEGORY_EMPTY_VALUE.split(',').some((emptyVal) => emptyVal.toLowerCase() === range.value.toLowerCase()); case CONST.SEARCH.SYNTAX_FILTER_KEYS.TAG: return tagList.get().includes(range.value); diff --git a/src/libs/SearchQueryUtils.ts b/src/libs/SearchQueryUtils.ts index 7088daecce1c5..2cb3c90ea9f50 100644 --- a/src/libs/SearchQueryUtils.ts +++ b/src/libs/SearchQueryUtils.ts @@ -842,7 +842,7 @@ function buildFilterFormValuesFromQuery( .flat(); const uniqueCategories = new Set(categories); const emptyCategories = CONST.SEARCH.CATEGORY_EMPTY_VALUE.split(','); - // Consider the empty category selected if ANY of its synonyms are present (e.g., "none" OR "Uncategorized") + // Return true if the value is a known category or one of the empty-category synonyms (e.g., 'none', 'uncategorized'). const filterValuesLower = new Set(filterValues.map((v) => v.toLowerCase())); const hasEmptyCategoriesInFilter = emptyCategories.some((category) => filterValuesLower.has(category.toLowerCase())); // If empty categories are found, append the CATEGORY_EMPTY_VALUE to filtersForm.