From cf357fb70e66b9f5255db39c45fbaa0beef9f0a4 Mon Sep 17 00:00:00 2001 From: Eric Han Date: Sat, 4 Nov 2023 00:15:53 +0800 Subject: [PATCH] Fix incorrect email validation msg caused comma separated search term --- src/pages/workspace/WorkspaceInvitePage.js | 53 ++++++++-------------- 1 file changed, 20 insertions(+), 33 deletions(-) diff --git a/src/pages/workspace/WorkspaceInvitePage.js b/src/pages/workspace/WorkspaceInvitePage.js index afb0c55e7d4e..ee6e2d826198 100644 --- a/src/pages/workspace/WorkspaceInvitePage.js +++ b/src/pages/workspace/WorkspaceInvitePage.js @@ -85,49 +85,36 @@ function WorkspaceInvitePage(props) { const excludedUsers = useMemo(() => PolicyUtils.getIneligibleInvitees(props.policyMembers, props.personalDetails), [props.policyMembers, props.personalDetails]); useEffect(() => { - let emails = _.compact( - searchTerm - .trim() - .replace(/\s*,\s*/g, ',') - .split(','), - ); - - if (emails.length === 0) { - emails = ['']; - } - const newUsersToInviteDict = {}; const newPersonalDetailsDict = {}; const newSelectedOptionsDict = {}; - _.each(emails, (email) => { - const inviteOptions = OptionsListUtils.getMemberInviteOptions(props.personalDetails, props.betas, email, excludedUsers); + const inviteOptions = OptionsListUtils.getMemberInviteOptions(props.personalDetails, props.betas, searchTerm, excludedUsers); - // Update selectedOptions with the latest personalDetails and policyMembers information - const detailsMap = {}; - _.each(inviteOptions.personalDetails, (detail) => (detailsMap[detail.login] = OptionsListUtils.formatMemberForList(detail))); + // Update selectedOptions with the latest personalDetails and policyMembers information + const detailsMap = {}; + _.each(inviteOptions.personalDetails, (detail) => (detailsMap[detail.login] = OptionsListUtils.formatMemberForList(detail))); - const newSelectedOptions = []; - _.each(selectedOptions, (option) => { - newSelectedOptions.push(_.has(detailsMap, option.login) ? {...detailsMap[option.login], isSelected: true} : option); - }); + const newSelectedOptions = []; + _.each(selectedOptions, (option) => { + newSelectedOptions.push(_.has(detailsMap, option.login) ? {...detailsMap[option.login], isSelected: true} : option); + }); - const userToInvite = inviteOptions.userToInvite; + const userToInvite = inviteOptions.userToInvite; - // Only add the user to the invites list if it is valid - if (userToInvite) { - newUsersToInviteDict[userToInvite.accountID] = userToInvite; - } + // Only add the user to the invites list if it is valid + if (userToInvite) { + newUsersToInviteDict[userToInvite.accountID] = userToInvite; + } - // Add all personal details to the new dict - _.each(inviteOptions.personalDetails, (details) => { - newPersonalDetailsDict[details.accountID] = details; - }); + // Add all personal details to the new dict + _.each(inviteOptions.personalDetails, (details) => { + newPersonalDetailsDict[details.accountID] = details; + }); - // Add all selected options to the new dict - _.each(newSelectedOptions, (option) => { - newSelectedOptionsDict[option.accountID] = option; - }); + // Add all selected options to the new dict + _.each(newSelectedOptions, (option) => { + newSelectedOptionsDict[option.accountID] = option; }); // Strip out dictionary keys and update arrays