From ec014c0fdf6406894b372aa8f7166daf43fb3b79 Mon Sep 17 00:00:00 2001 From: Mateusz Kwasniewski Date: Fri, 31 Jan 2025 10:09:29 +0100 Subject: [PATCH] feat: limit user filter options (#9179) --- .../GroupFormUsersSelect.tsx | 14 +++-- .../ProjectAccessAssign.tsx | 57 ++++++++++--------- 2 files changed, 38 insertions(+), 33 deletions(-) diff --git a/frontend/src/component/admin/groups/GroupForm/GroupFormUsersSelect/GroupFormUsersSelect.tsx b/frontend/src/component/admin/groups/GroupForm/GroupFormUsersSelect/GroupFormUsersSelect.tsx index 854a38daa0..d615791232 100644 --- a/frontend/src/component/admin/groups/GroupForm/GroupFormUsersSelect/GroupFormUsersSelect.tsx +++ b/frontend/src/component/admin/groups/GroupForm/GroupFormUsersSelect/GroupFormUsersSelect.tsx @@ -125,12 +125,14 @@ export const GroupFormUsersSelect: VFC = ({ renderOption(props, option as UserOption, selected) } filterOptions={(options, { inputValue }) => - options.filter( - ({ name, username, email }) => - caseInsensitiveSearch(inputValue, email) || - caseInsensitiveSearch(inputValue, name) || - caseInsensitiveSearch(inputValue, username), - ) + options + .filter( + ({ name, username, email }) => + caseInsensitiveSearch(inputValue, email) || + caseInsensitiveSearch(inputValue, name) || + caseInsensitiveSearch(inputValue, username), + ) + .slice(0, 100) } isOptionEqualToValue={(option, value) => option.id === value.id} getOptionLabel={(option: UserOption) => diff --git a/frontend/src/component/project/ProjectAccess/ProjectAccessAssign/ProjectAccessAssign.tsx b/frontend/src/component/project/ProjectAccess/ProjectAccessAssign/ProjectAccessAssign.tsx index 87cc5b5417..fafae19412 100644 --- a/frontend/src/component/project/ProjectAccess/ProjectAccessAssign/ProjectAccessAssign.tsx +++ b/frontend/src/component/project/ProjectAccess/ProjectAccessAssign/ProjectAccessAssign.tsx @@ -414,34 +414,37 @@ export const ProjectAccessAssign = ({ } }} filterOptions={(options, { inputValue }) => - options.filter((option: IAccessOption) => { - if ( - option.type === ENTITY_TYPE.USER || - option.type === - ENTITY_TYPE.SERVICE_ACCOUNT - ) { - const optionUser = - option.entity as IUser; - return ( - caseInsensitiveSearch( - inputValue, - optionUser.email, - ) || - caseInsensitiveSearch( - inputValue, - optionUser.name, - ) || - caseInsensitiveSearch( - inputValue, - optionUser.username, - ) + options + .filter((option: IAccessOption) => { + if ( + option.type === + ENTITY_TYPE.USER || + option.type === + ENTITY_TYPE.SERVICE_ACCOUNT + ) { + const optionUser = + option.entity as IUser; + return ( + caseInsensitiveSearch( + inputValue, + optionUser.email, + ) || + caseInsensitiveSearch( + inputValue, + optionUser.name, + ) || + caseInsensitiveSearch( + inputValue, + optionUser.username, + ) + ); + } + return caseInsensitiveSearch( + inputValue, + option.entity.name, ); - } - return caseInsensitiveSearch( - inputValue, - option.entity.name, - ); - }) + }) + .slice(0, 100) } isOptionEqualToValue={(option, value) => option.type === value.type &&