diff --git a/client/src/modules/Score/hooks/types.ts b/client/src/modules/Score/hooks/types.ts index 2bcdb88d8e..b12b4cf5fd 100644 --- a/client/src/modules/Score/hooks/types.ts +++ b/client/src/modules/Score/hooks/types.ts @@ -1,8 +1,8 @@ export type ScoreTableFilters = { - githubId?: string; - name?: string; - 'mentor.githubId'?: string; - cityName?: string; + githubId?: string[]; + name?: string[]; + 'mentor.githubId'?: string[]; + cityName?: string[]; activeOnly: boolean; }; diff --git a/client/src/utils/optionalQueryString.ts b/client/src/utils/optionalQueryString.ts index ae49cd174f..4d32c0c440 100644 --- a/client/src/utils/optionalQueryString.ts +++ b/client/src/utils/optionalQueryString.ts @@ -1,3 +1,10 @@ -export function optionalQueryString(value: string | undefined) { - return value ? String(value) : undefined; +export function optionalQueryString(value: string | string[] | undefined) { + if (Array.isArray(value)) { + const trimmedElements = value.map(elem => elem.trim()).join(','); + if (trimmedElements !== '') { + return trimmedElements; + } + } else if (typeof value === 'string') { + return String(value).trim(); + } } diff --git a/client/src/utils/queryParams-utils.ts b/client/src/utils/queryParams-utils.ts index b39d8208f2..9d5141efb7 100644 --- a/client/src/utils/queryParams-utils.ts +++ b/client/src/utils/queryParams-utils.ts @@ -9,13 +9,17 @@ export const getQueryParams = ( let params = { ...initialQueryParams }; for (const [key, value] of Object.entries(queryParams)) { if (!isNil(value)) { - if (Array.isArray(value) && value[0] !== '') { - params = { ...params, [key]: value[0] }; + if (Array.isArray(value)) { + const trimmedElements = value.map(elem => elem.trim()).join(','); + if (trimmedElements !== '') { + params = { ...params, [key]: trimmedElements }; + } } else if (typeof value === 'string' && value !== '') { - params = { ...params, [key]: value }; + params = { ...params, [key]: value.trim() }; } } } + return params; };