Changeset View
Changeset View
Standalone View
Standalone View
lib/selectors/user-selectors.js
Show All 25 Lines | |||||
function userIDsToRelativeUserInfos( | function userIDsToRelativeUserInfos( | ||||
userIDs: $ReadOnlyArray<string>, | userIDs: $ReadOnlyArray<string>, | ||||
viewerID: ?string, | viewerID: ?string, | ||||
userInfos: UserInfos, | userInfos: UserInfos, | ||||
): RelativeUserInfo[] { | ): RelativeUserInfo[] { | ||||
const relativeUserInfos = []; | const relativeUserInfos = []; | ||||
for (const userID of userIDs) { | for (const userID of userIDs) { | ||||
const username = userInfos[userID] ? userInfos[userID].username : null; | const username = userInfos[userID] ? userInfos[userID].username : null; | ||||
const avatar = userInfos[userID].avatar ? userInfos[userID].avatar : null; | |||||
if (userID === viewerID) { | if (userID === viewerID) { | ||||
relativeUserInfos.unshift({ | relativeUserInfos.unshift({ | ||||
id: userID, | id: userID, | ||||
username, | username, | ||||
avatar, | |||||
isViewer: true, | isViewer: true, | ||||
}); | }); | ||||
} else { | } else { | ||||
relativeUserInfos.push({ | relativeUserInfos.push({ | ||||
id: userID, | id: userID, | ||||
username, | username, | ||||
avatar, | |||||
isViewer: false, | isViewer: false, | ||||
}); | }); | ||||
} | } | ||||
} | } | ||||
return relativeUserInfos; | return relativeUserInfos; | ||||
} | } | ||||
const emptyArray = []; | const emptyArray = []; | ||||
Show All 11 Lines | ): $ReadOnlyArray<RelativeMemberInfo> { | ||||
for (const memberInfo of memberInfos) { | for (const memberInfo of memberInfos) { | ||||
const isParentAdmin = memberHasAdminPowers(memberInfo); | const isParentAdmin = memberHasAdminPowers(memberInfo); | ||||
if (!memberInfo.role && !isParentAdmin) { | if (!memberInfo.role && !isParentAdmin) { | ||||
continue; | continue; | ||||
} | } | ||||
const username = userInfos[memberInfo.id] | const username = userInfos[memberInfo.id] | ||||
? userInfos[memberInfo.id].username | ? userInfos[memberInfo.id].username | ||||
: null; | : null; | ||||
const avatar = userInfos[memberInfo.id] | |||||
? userInfos[memberInfo.id].avatar | |||||
: null; | |||||
if (memberInfo.id === currentUserID) { | if (memberInfo.id === currentUserID) { | ||||
relativeMemberInfos.unshift({ | relativeMemberInfos.unshift({ | ||||
id: memberInfo.id, | id: memberInfo.id, | ||||
role: memberInfo.role, | role: memberInfo.role, | ||||
permissions: memberInfo.permissions, | permissions: memberInfo.permissions, | ||||
username, | username, | ||||
avatar, | |||||
isViewer: true, | isViewer: true, | ||||
isSender: memberInfo.isSender, | isSender: memberInfo.isSender, | ||||
}); | }); | ||||
} else { | } else { | ||||
relativeMemberInfos.push({ | relativeMemberInfos.push({ | ||||
id: memberInfo.id, | id: memberInfo.id, | ||||
role: memberInfo.role, | role: memberInfo.role, | ||||
permissions: memberInfo.permissions, | permissions: memberInfo.permissions, | ||||
username, | username, | ||||
avatar, | |||||
isViewer: false, | isViewer: false, | ||||
isSender: memberInfo.isSender, | isSender: memberInfo.isSender, | ||||
}); | }); | ||||
} | } | ||||
} | } | ||||
return relativeMemberInfos; | return relativeMemberInfos; | ||||
} | } | ||||
Show All 26 Lines | const userInfoSelectorForPotentialMembers: (state: BaseAppState<*>) => { | ||||
(state: BaseAppState<*>) => state.currentUserInfo && state.currentUserInfo.id, | (state: BaseAppState<*>) => state.currentUserInfo && state.currentUserInfo.id, | ||||
( | ( | ||||
userInfos: UserInfos, | userInfos: UserInfos, | ||||
currentUserID: ?string, | currentUserID: ?string, | ||||
): { [id: string]: AccountUserInfo } => { | ): { [id: string]: AccountUserInfo } => { | ||||
const availableUsers: { [id: string]: AccountUserInfo } = {}; | const availableUsers: { [id: string]: AccountUserInfo } = {}; | ||||
for (const id in userInfos) { | for (const id in userInfos) { | ||||
const { username, avatar, relationshipStatus } = userInfos[id]; | const { username, relationshipStatus } = userInfos[id]; | ||||
if (id === currentUserID || !username) { | if (id === currentUserID || !username) { | ||||
continue; | continue; | ||||
} | } | ||||
if ( | if ( | ||||
relationshipStatus !== userRelationshipStatus.BLOCKED_VIEWER && | relationshipStatus !== userRelationshipStatus.BLOCKED_VIEWER && | ||||
relationshipStatus !== userRelationshipStatus.BOTH_BLOCKED | relationshipStatus !== userRelationshipStatus.BOTH_BLOCKED | ||||
) { | ) { | ||||
availableUsers[id] = { id, username, avatar, relationshipStatus }; | availableUsers[id] = { id, username, relationshipStatus }; | ||||
} | } | ||||
} | } | ||||
return availableUsers; | return availableUsers; | ||||
}, | }, | ||||
); | ); | ||||
function searchIndexFromUserInfos(userInfos: { | function searchIndexFromUserInfos(userInfos: { | ||||
[id: string]: AccountUserInfo, | [id: string]: AccountUserInfo, | ||||
▲ Show 20 Lines • Show All 73 Lines • Show Last 20 Lines |