diff --git a/frontend/src/modules/activity/config/filters/main.ts b/frontend/src/modules/activity/config/filters/main.ts index 26bd3cc8e9..18a89b563e 100644 --- a/frontend/src/modules/activity/config/filters/main.ts +++ b/frontend/src/modules/activity/config/filters/main.ts @@ -1,5 +1,6 @@ import { FilterConfig } from '@/shared/modules/filters/types/FilterConfig'; import { SearchFilterConfig } from '@/shared/modules/filters/types/filterTypes/SearchFilterConfig'; +import { trimAndReduceSpaces } from '@/utils/string'; import activityType from './activityType/config'; import channel from './channel/config'; import date from './date/config'; @@ -20,11 +21,13 @@ export const activityFilters: Record = { export const activitySearchFilter: SearchFilterConfig = { placeholder: 'Search activities', apiFilterRenderer(value: string): any[] { + const trimmedValue = trimAndReduceSpaces(value); + return [ { or: [ - { title: { textContains: value } }, - { body: { textContains: value } }, + { title: { textContains: trimmedValue } }, + { body: { textContains: trimmedValue } }, ], }, ]; diff --git a/frontend/src/modules/conversation/config/filters/main.ts b/frontend/src/modules/conversation/config/filters/main.ts index b7709dbf16..eac1383158 100644 --- a/frontend/src/modules/conversation/config/filters/main.ts +++ b/frontend/src/modules/conversation/config/filters/main.ts @@ -1,5 +1,6 @@ import { FilterConfig } from '@/shared/modules/filters/types/FilterConfig'; import { SearchFilterConfig } from '@/shared/modules/filters/types/filterTypes/SearchFilterConfig'; +import { trimAndReduceSpaces } from '@/utils/string'; import noOfActivities from './noOfActivities/config'; import channel from './channel/config'; import dateStarted from './dateStarted/config'; @@ -19,7 +20,7 @@ export const conversationSearchFilter: SearchFilterConfig = { return [ { or: [ - { title: { textContains: value } }, + { title: { textContains: trimAndReduceSpaces(value) } }, ], }, ]; diff --git a/frontend/src/modules/member/config/filters/main.ts b/frontend/src/modules/member/config/filters/main.ts index 66be5ccf84..aa669811fb 100644 --- a/frontend/src/modules/member/config/filters/main.ts +++ b/frontend/src/modules/member/config/filters/main.ts @@ -1,5 +1,6 @@ import { FilterConfig } from '@/shared/modules/filters/types/FilterConfig'; import { SearchFilterConfig } from '@/shared/modules/filters/types/filterTypes/SearchFilterConfig'; +import { trimAndReduceSpaces } from '@/utils/string'; import noOfActivities from './noOfActivities/config'; import noOfOSSContributions from './noOfOSSContributions/config'; import activeOn from './activeOn/config'; @@ -37,11 +38,12 @@ export const memberFilters: Record = { export const memberSearchFilter: SearchFilterConfig = { placeholder: 'Search contacts', apiFilterRenderer(value: string): any[] { + const trimmedValue = trimAndReduceSpaces(value); return [ { or: [ - { displayName: { textContains: value } }, - { emails: { textContains: value } }, + { displayName: { textContains: trimmedValue } }, + { emails: { textContains: trimmedValue } }, ], }, ]; diff --git a/frontend/src/modules/organization/config/filters/main.ts b/frontend/src/modules/organization/config/filters/main.ts index 42f726f0dd..5f5dd3ab16 100644 --- a/frontend/src/modules/organization/config/filters/main.ts +++ b/frontend/src/modules/organization/config/filters/main.ts @@ -1,5 +1,6 @@ import { FilterConfig } from '@/shared/modules/filters/types/FilterConfig'; import { SearchFilterConfig } from '@/shared/modules/filters/types/filterTypes/SearchFilterConfig'; +import { trimAndReduceSpaces } from '@/utils/string'; import noOfMembers from './noOfMembers/config'; import noOfActivities from './noOfActivities/config'; import activeOn from './activeOn/config'; @@ -46,7 +47,7 @@ export const organizationSearchFilter: SearchFilterConfig = { return [ { or: [ - { displayName: { textContains: value } }, + { displayName: { textContains: trimAndReduceSpaces(value) } }, ], }, ]; diff --git a/frontend/src/utils/string.js b/frontend/src/utils/string.js index dcac56d977..860a306a13 100644 --- a/frontend/src/utils/string.js +++ b/frontend/src/utils/string.js @@ -20,3 +20,9 @@ export const truncateText = (text, characters = 200, suffix = '') => { } return text; }; + +/** trim and replace multiple/double spaces with a single space + * ' Emma Ray ' ==> 'Emma Ray + * 'Emma Ray' ==> 'Emman Ray +*/ +export const trimAndReduceSpaces = (str) => str.trim().replace(/\s+/g, ' ');