Skip to content

Commit e909406

Browse files
committed
fix: search name and last name
1 parent 028bd0f commit e909406

3 files changed

Lines changed: 37 additions & 4 deletions

File tree

src/components/Search/SearchAutocompleteList.tsx

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -254,8 +254,30 @@ function SearchAutocompleteList(
254254

255255
const autocompleteSuggestions = useMemo<AutocompleteItemData[]>(() => {
256256
const {autocomplete, ranges = []} = autocompleteParsedQuery ?? {};
257-
const autocompleteKey = autocomplete?.key;
258-
const autocompleteValue = autocomplete?.value ?? '';
257+
258+
let autocompleteKey = autocomplete?.key;
259+
let autocompleteValue = autocomplete?.value ?? '';
260+
261+
if (!autocomplete && ranges.length > 0) {
262+
const lastRange = ranges.at(ranges.length - 1);
263+
const nameFields = [
264+
CONST.SEARCH.SYNTAX_FILTER_KEYS.TO,
265+
CONST.SEARCH.SYNTAX_FILTER_KEYS.FROM,
266+
CONST.SEARCH.SYNTAX_FILTER_KEYS.ASSIGNEE,
267+
CONST.SEARCH.SYNTAX_FILTER_KEYS.PAYER,
268+
CONST.SEARCH.SYNTAX_FILTER_KEYS.EXPORTER,
269+
] as const;
270+
271+
if (lastRange && nameFields.includes(lastRange.key as TupleToUnion<typeof nameFields>)) {
272+
const afterLastRange = autocompleteQueryValue.substring(lastRange.start + lastRange.length);
273+
const continuationMatch = afterLastRange.match(/^\s+(\w+)/);
274+
275+
if (continuationMatch) {
276+
autocompleteKey = lastRange.key;
277+
autocompleteValue = `${lastRange.value} ${continuationMatch[1]}`;
278+
}
279+
}
280+
}
259281

260282
const alreadyAutocompletedKeys = ranges
261283
.filter((range) => {
@@ -446,6 +468,7 @@ function SearchAutocompleteList(
446468
}
447469
}, [
448470
autocompleteParsedQuery,
471+
autocompleteQueryValue,
449472
tagAutocompleteList,
450473
recentTagsAutocompleteList,
451474
categoryAutocompleteList,

src/components/Search/SearchPageHeader/SearchPageHeaderInput.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,8 +243,13 @@ function SearchPageHeaderInput({queryJSON, searchRouterListVisible, hideSearchRo
243243
}
244244

245245
if (item.searchItemType === CONST.SEARCH.SEARCH_ROUTER_ITEM_TYPE.AUTOCOMPLETE_SUGGESTION && textInputValue) {
246-
const trimmedUserSearchQuery = getQueryWithoutAutocompletedPart(textInputValue);
246+
const fieldKey = item.mapKey?.includes(':') ? item.mapKey.split(':').at(0) : null;
247+
const keyIndex = fieldKey ? textInputValue.toLowerCase().lastIndexOf(`${fieldKey}:`) : -1;
248+
249+
const trimmedUserSearchQuery =
250+
keyIndex !== -1 && fieldKey ? textInputValue.substring(0, keyIndex + fieldKey.length + 1) : getQueryWithoutAutocompletedPart(textInputValue);
247251
const newSearchQuery = `${trimmedUserSearchQuery}${sanitizeSearchValue(item.searchQuery)}\u00A0`;
252+
248253
onSearchQueryChange(newSearchQuery);
249254
setSelection({start: newSearchQuery.length, end: newSearchQuery.length});
250255

src/components/Search/SearchRouter/SearchRouter.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,12 @@ function SearchRouter({onRouterClose, shouldHideInputCaret, isSearchRouterDispla
349349
timestamp: endTime,
350350
});
351351
} else if (item.searchItemType === CONST.SEARCH.SEARCH_ROUTER_ITEM_TYPE.AUTOCOMPLETE_SUGGESTION && textInputValue) {
352-
const trimmedUserSearchQuery = getQueryWithoutAutocompletedPart(textInputValue);
352+
const fieldKey = item.mapKey?.includes(':') ? item.mapKey.split(':').at(0) : null;
353+
const keyIndex = fieldKey ? textInputValue.toLowerCase().lastIndexOf(`${fieldKey}:`) : -1;
354+
355+
const trimmedUserSearchQuery =
356+
keyIndex !== -1 && fieldKey ? textInputValue.substring(0, keyIndex + fieldKey.length + 1) : getQueryWithoutAutocompletedPart(textInputValue);
357+
353358
const newSearchQuery = `${trimmedUserSearchQuery}${sanitizeSearchValue(item.searchQuery)}\u00A0`;
354359
onSearchQueryChange(newSearchQuery, true);
355360
setSelection({start: newSearchQuery.length, end: newSearchQuery.length});

0 commit comments

Comments
 (0)