Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions src/pages/workspace/WorkspaceMembersPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ import {isPersonalDetailsReady, sortAlphabetically} from '@libs/OptionsListUtils
import {getAccountIDsByLogins, getDisplayNameOrDefault, getPersonalDetailsByIDs} from '@libs/PersonalDetailsUtils';
import {getMemberAccountIDsForWorkspace, isDeletedPolicyEmployee, isExpensifyTeam, isPaidGroupPolicy, isPolicyAdmin as isPolicyAdminUtils} from '@libs/PolicyUtils';
import {getDisplayNameForParticipant} from '@libs/ReportUtils';
import StringUtils from '@libs/StringUtils';
import tokenizedSearch from '@libs/tokenizedSearch';
import {convertPolicyEmployeesToApprovalWorkflows, updateWorkflowDataOnApproverRemoval} from '@libs/WorkflowUtils';
import {close} from '@userActions/Modal';
import {dismissAddedWithPrimaryLoginMessages} from '@userActions/Policy/Policy';
Expand Down Expand Up @@ -480,10 +480,8 @@ function WorkspaceMembersPage({personalDetails, route, policy}: WorkspaceMembers
]);

const filterMember = useCallback((memberOption: MemberOption, searchQuery: string) => {
const memberText = StringUtils.normalize(memberOption.text?.toLowerCase() ?? '');
const alternateText = StringUtils.normalize(memberOption.alternateText?.toLowerCase() ?? '');
const normalizedSearchQuery = StringUtils.normalize(searchQuery);
return memberText.includes(normalizedSearchQuery) || alternateText.includes(normalizedSearchQuery);
const results = tokenizedSearch([memberOption], searchQuery, (option) => [option.text ?? '', option.alternateText ?? '']);
return results.length > 0;
}, []);
const sortMembers = useCallback((memberOptions: MemberOption[]) => sortAlphabetically(memberOptions, 'text', localeCompare), [localeCompare]);
const [inputValue, setInputValue, filteredData] = useSearchResults(data, filterMember, sortMembers);
Expand Down
8 changes: 3 additions & 5 deletions src/pages/workspace/categories/WorkspaceCategoriesPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavig
import type {WorkspaceSplitNavigatorParamList} from '@libs/Navigation/types';
import {isDisablingOrDeletingLastEnabledCategory} from '@libs/OptionsListUtils';
import {getConnectedIntegration, getCurrentConnectionName, hasAccountingConnections, shouldShowSyncError} from '@libs/PolicyUtils';
import StringUtils from '@libs/StringUtils';
import tokenizedSearch from '@libs/tokenizedSearch';
import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper';
import {close} from '@userActions/Modal';
import {clearCategoryErrors, deleteWorkspaceCategories, downloadCategoriesCSV, openPolicyCategoriesPage, setWorkspaceCategoryEnabled} from '@userActions/Policy/Category';
Expand Down Expand Up @@ -200,10 +200,8 @@ function WorkspaceCategoriesPage({route}: WorkspaceCategoriesPageProps) {
}, [policyCategories, isOffline, translate, updateWorkspaceCategoryEnabled, policy]);

const filterCategory = useCallback((categoryOption: PolicyOption, searchInput: string) => {
const categoryText = StringUtils.normalize(categoryOption.text?.toLowerCase() ?? '');
const alternateText = StringUtils.normalize(categoryOption.alternateText?.toLowerCase() ?? '');
const normalizedSearchInput = StringUtils.normalize(searchInput);
return categoryText.includes(normalizedSearchInput) || alternateText.includes(normalizedSearchInput);
const results = tokenizedSearch([categoryOption], searchInput, (option) => [option.text ?? '', option.alternateText ?? '']);
return results.length > 0;
}, []);
const sortCategories = useCallback(
(data: PolicyOption[]) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ import {canUseTouchScreen} from '@libs/DeviceCapabilities';
import Navigation from '@libs/Navigation/Navigation';
import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types';
import {getDistanceRateCustomUnit} from '@libs/PolicyUtils';
import StringUtils from '@libs/StringUtils';
import tokenizedSearch from '@libs/tokenizedSearch';
import type {WorkspaceSplitNavigatorParamList} from '@navigation/types';
import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper';
import ButtonWithDropdownMenu from '@src/components/ButtonWithDropdownMenu';
Expand Down Expand Up @@ -248,9 +248,8 @@ function PolicyDistanceRatesPage({
);

const filterRate = useCallback((rate: RateForList, searchInput: string) => {
const rateText = StringUtils.normalize(rate.text?.toLowerCase() ?? '');
const normalizedSearchInput = StringUtils.normalize(searchInput.toLowerCase());
return rateText.includes(normalizedSearchInput);
const results = tokenizedSearch([rate], searchInput, (option) => [option.text ?? '']);
return results.length > 0;
}, []);
const sortRates = useCallback((rates: RateForList[]) => rates.sort((a, b) => localeCompare(a.text ?? '', b.text ?? '')), [localeCompare]);
const [inputValue, setInputValue, filteredDistanceRatesList] = useSearchResults(distanceRatesList, filterRate, sortRates);
Expand Down
7 changes: 3 additions & 4 deletions src/pages/workspace/perDiem/WorkspacePerDiemPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavig
import type {WorkspaceSplitNavigatorParamList} from '@libs/Navigation/types';
import {hasEnabledOptions} from '@libs/OptionsListUtils';
import {getPerDiemCustomUnit} from '@libs/PolicyUtils';
import StringUtils from '@libs/StringUtils';
import tokenizedSearch from '@libs/tokenizedSearch';
import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper';
import {turnOffMobileSelectionMode} from '@userActions/MobileSelectionMode';
import {close} from '@userActions/Modal';
Expand Down Expand Up @@ -190,9 +190,8 @@ function WorkspacePerDiemPage({route}: WorkspacePerDiemPageProps) {
);

const filterRate = useCallback((rate: PolicyOption, searchInput: string) => {
const rateText = StringUtils.normalize(rate.text?.toLowerCase() ?? '');
const normalizedSearchInput = StringUtils.normalize(searchInput.toLowerCase());
return rateText.includes(normalizedSearchInput);
const results = tokenizedSearch([rate], searchInput, (option) => [option.text ?? '']);
return results.length > 0;
}, []);
const sortRates = useCallback((rates: PolicyOption[]) => rates.sort((a, b) => localeCompare(a.text ?? '', b.text ?? '')), [localeCompare]);
const [inputValue, setInputValue, filteredSubRatesList] = useSearchResults(subRatesList, filterRate, sortRates);
Expand Down
8 changes: 3 additions & 5 deletions src/pages/workspace/tags/WorkspaceTagsPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ import {
isMultiLevelTags as isMultiLevelTagsPolicyUtils,
shouldShowSyncError,
} from '@libs/PolicyUtils';
import StringUtils from '@libs/StringUtils';
import tokenizedSearch from '@libs/tokenizedSearch';
import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper';
import {close} from '@userActions/Modal';
import CONST from '@src/CONST';
Expand Down Expand Up @@ -284,10 +284,8 @@ function WorkspaceTagsPage({route}: WorkspaceTagsPageProps) {
}, [isMultiLevelTags, policyTagLists, hasDependentTags, translate, policy, policyTags, updateWorkspaceRequiresTag, updateWorkspaceTagEnabled]);

const filterTag = useCallback((tag: TagListItem, searchInput: string) => {
const tagText = StringUtils.normalize(tag.text?.toLowerCase() ?? '');
const tagValue = StringUtils.normalize(tag.value?.toLowerCase() ?? '');
const normalizeSearchInput = StringUtils.normalize(searchInput.toLowerCase());
return tagText.includes(normalizeSearchInput) || tagValue.includes(normalizeSearchInput);
const results = tokenizedSearch([tag], searchInput, (option) => [option.text ?? '', option.value ?? '']);
return results.length > 0;
}, []);
const sortTags = useCallback(
(tags: TagListItem[]) => {
Expand Down
8 changes: 3 additions & 5 deletions src/pages/workspace/taxes/WorkspaceTaxesPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ import {
hasAccountingConnections as hasAccountingConnectionsPolicyUtils,
shouldShowSyncError,
} from '@libs/PolicyUtils';
import StringUtils from '@libs/StringUtils';
import tokenizedSearch from '@libs/tokenizedSearch';
import type {WorkspaceSplitNavigatorParamList} from '@navigation/types';
import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper';
import type {WithPolicyAndFullscreenLoadingProps} from '@pages/workspace/withPolicyAndFullscreenLoading';
Expand Down Expand Up @@ -181,10 +181,8 @@ function WorkspaceTaxesPage({
}, [policy, textForDefault, translate, updateWorkspaceTaxEnabled]);

const filterTax = useCallback((tax: ListItem, searchInput: string) => {
const taxName = StringUtils.normalize(tax.text?.toLowerCase() ?? '');
const taxAlternateText = StringUtils.normalize(tax.alternateText?.toLowerCase() ?? '');
const normalizedSearchInput = StringUtils.normalize(searchInput.toLowerCase() ?? '');
return taxName.includes(normalizedSearchInput) || taxAlternateText.includes(normalizedSearchInput);
const results = tokenizedSearch([tax], searchInput, (option) => [option.text ?? '', option.alternateText ?? '']);
return results.length > 0;
}, []);
const sortTaxes = useCallback(
(taxes: ListItem[]) => {
Expand Down
Loading