Skip to content

Commit 46f25e8

Browse files
committed
when validating if user has been already invited by the handle, check hanldes case-insensetive way
1 parent b27c424 commit 46f25e8

File tree

3 files changed

+17
-5
lines changed

3 files changed

+17
-5
lines changed

src/components/TeamManagement/ProjectManagementDialog.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import Modal from 'react-modal'
66
import XMarkIcon from '../../assets/icons/icon-x-mark.svg'
77
import Avatar from 'appirio-tech-react-components/components/Avatar/Avatar'
88
import {getAvatarResized} from '../../helpers/tcHelpers'
9-
import { compareEmail } from '../../helpers/utils'
9+
import { compareEmail, compareHandles } from '../../helpers/utils'
1010
import AutocompleteInputContainer from './AutocompleteInputContainer'
1111

1212
class ProjectManagementDialog extends React.Component {
@@ -57,7 +57,7 @@ class ProjectManagementDialog extends React.Component {
5757
isSelectedMemberAlreadyInvited(projectTeamInvites = [], selectedMember) {
5858
return !!projectTeamInvites.find((invite) => (
5959
(invite.email && compareEmail(invite.email, selectedMember.label)) ||
60-
(invite.userId && this.resolveUserHandle(invite.userId) === selectedMember.label)
60+
(invite.userId && compareHandles(this.resolveUserHandle(invite.userId), selectedMember.label))
6161
))
6262
}
6363

src/components/TeamManagement/TopcoderManagementDialog.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import AutocompleteInputContainer from './AutocompleteInputContainer'
1313
import {PROJECT_MEMBER_INVITE_STATUS_REQUESTED, PROJECT_MEMBER_INVITE_STATUS_PENDING} from '../../config/constants'
1414
import PERMISSIONS from '../../config/permissions'
1515
import {checkPermission} from '../../helpers/permissions'
16-
import { compareEmail } from '../../helpers/utils'
16+
import { compareEmail, compareHandles } from '../../helpers/utils'
1717

1818
class TopcoderManagementDialog extends React.Component {
1919
constructor(props) {
@@ -100,7 +100,7 @@ class TopcoderManagementDialog extends React.Component {
100100
isSelectedMemberAlreadyInvited(topcoderTeamInvites = [], selectedMember) {
101101
return !!topcoderTeamInvites.find((invite) => (
102102
(invite.email && compareEmail(invite.email, selectedMember.label)) ||
103-
(invite.userId && this.resolveUserHandle(invite.userId) === selectedMember.label)
103+
(invite.userId && compareHandles(this.resolveUserHandle(invite.userId), selectedMember.label))
104104
))
105105
}
106106

src/helpers/utils.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,16 @@ export const compareEmail = (email1, email2, options = { UNIQUE_GMAIL_VALIDATION
4343
}
4444
}
4545
return _.toLower(email1) === _.toLower(email2)
46-
}
46+
}
47+
48+
/**
49+
* Helper method to check the uniqueness of two user handles
50+
*
51+
* @param {String} handle1 first user handle to compare
52+
* @param {String} handle2 second user handle to compare
53+
*
54+
* @returns {Boolean} true if two user handles are same
55+
*/
56+
export const compareHandles = (handle1, handle2) => (
57+
(handle1 || '').toLowerCase() === (handle2 || '').toLowerCase()
58+
)

0 commit comments

Comments
 (0)