diff --git a/src/components/Search/SearchPageHeader/SearchPageHeaderInput.tsx b/src/components/Search/SearchPageHeader/SearchPageHeaderInput.tsx index 480b0d8d5639..68ee96a6168a 100644 --- a/src/components/Search/SearchPageHeader/SearchPageHeaderInput.tsx +++ b/src/components/Search/SearchPageHeader/SearchPageHeaderInput.tsx @@ -196,9 +196,9 @@ function SearchPageHeaderInput({queryJSON, searchRouterListVisible, hideSearchRo ); const submitSearch = useCallback( - (queryString: SearchQueryString) => { + (queryString: SearchQueryString, shouldSkipAmountConversion = false) => { const queryWithSubstitutions = getQueryWithSubstitutions(queryString, autocompleteSubstitutions); - const updatedQuery = getQueryWithUpdatedValues(queryWithSubstitutions); + const updatedQuery = getQueryWithUpdatedValues(queryWithSubstitutions, shouldSkipAmountConversion); if (!updatedQuery) { return; @@ -268,7 +268,7 @@ function SearchPageHeaderInput({queryJSON, searchRouterListVisible, hideSearchRo timestamp: endTime, }); } else if (item.searchItemType === CONST.SEARCH.SEARCH_ROUTER_ITEM_TYPE.SEARCH) { - submitSearch(item.searchQuery); + submitSearch(item.searchQuery, item.keyForList !== 'findItem'); const endTime = Date.now(); Log.info('[CMD_K_DEBUG] Page search submitted', false, { diff --git a/src/libs/SearchQueryUtils.ts b/src/libs/SearchQueryUtils.ts index 58f9f58ff516..da2ff159a7f8 100644 --- a/src/libs/SearchQueryUtils.ts +++ b/src/libs/SearchQueryUtils.ts @@ -270,8 +270,11 @@ function getFilters(queryJSON: SearchQueryJSON) { * - for `AMOUNT` it formats value to "backend" amount * - for personal filters it tries to substitute any user emails with accountIDs */ -function getUpdatedFilterValue(filterName: ValueOf, filterValue: string | string[]) { +function getUpdatedFilterValue(filterName: ValueOf, filterValue: string | string[], shouldSkipAmountConversion = false) { if (AMOUNT_FILTER_KEYS.includes(filterName as SearchAmountFilterKeys)) { + if (shouldSkipAmountConversion) { + return filterValue; + } if (typeof filterValue === 'string') { const backendAmount = convertToBackendAmount(Number(filterValue)); return Number.isNaN(backendAmount) ? filterValue : backendAmount.toString(); @@ -1141,7 +1144,7 @@ function traverseAndUpdatedQuery(queryJSON: SearchQueryJSON, computeNodeValue: ( * Returns new string query, after parsing it and traversing to update some filter values. * If there are any personal emails, it will try to substitute them with accountIDs */ -function getQueryWithUpdatedValues(query: string) { +function getQueryWithUpdatedValues(query: string, shouldSkipAmountConversion = false) { const queryJSON = buildSearchQueryJSON(query); if (!queryJSON) { @@ -1149,7 +1152,9 @@ function getQueryWithUpdatedValues(query: string) { return; } - const standardizedQuery = traverseAndUpdatedQuery(queryJSON, getUpdatedFilterValue); + const computeNodeValue = (left: ValueOf, right: string | string[]) => getUpdatedFilterValue(left, right, shouldSkipAmountConversion); + + const standardizedQuery = traverseAndUpdatedQuery(queryJSON, computeNodeValue); return buildSearchQueryString(standardizedQuery); }