diff --git a/lib/shared/thread-utils.js b/lib/shared/thread-utils.js --- a/lib/shared/thread-utils.js +++ b/lib/shared/thread-utils.js @@ -209,6 +209,15 @@ .map(memberInfo => memberInfo.id); } +function threadOtherMembers( + memberInfos: $ReadOnlyArray, + viewerID: ?string, +): $ReadOnlyArray { + return memberInfos.filter( + memberInfo => memberInfo.role && memberInfo.id !== viewerID, + ); +} + function threadMembersWithoutAddedAshoat( threadInfo: T, ): $PropertyType { @@ -239,20 +248,6 @@ return !!threadID?.startsWith('pending'); } -function getThreadOtherUsers( - threadInfo: ThreadInfo | RawThreadInfo, - viewerID: ?string, -): string[] { - const otherUserIDs = []; - for (const member of threadInfo.members) { - if (!member.role || member.id === viewerID) { - continue; - } - otherUserIDs.push(member.id); - } - return otherUserIDs; -} - function getSingleOtherUser( threadInfo: ThreadInfo | RawThreadInfo, viewerID: ?string, @@ -260,11 +255,11 @@ if (!viewerID) { return undefined; } - const otherMemberIDs = getThreadOtherUsers(threadInfo, viewerID); - if (otherMemberIDs.length !== 1) { + const otherMembers = threadOtherMembers(threadInfo.members, viewerID); + if (otherMembers.length !== 1) { return undefined; } - return otherMemberIDs[0]; + return otherMembers[0].id; } function getPendingThreadID( @@ -524,7 +519,9 @@ return threadInfo.id; } - const otherMemberIDs = getThreadOtherUsers(threadInfo, viewerID); + const otherMemberIDs = threadOtherMembers(threadInfo.members, viewerID).map( + member => member.id, + ); let resultPromise; if (threadInfo.type !== threadTypes.SIDEBAR) { invariant( @@ -700,8 +697,8 @@ viewerID: ?string, userInfos: UserInfos, ): string { - const threadUsernames = getThreadOtherUsers(threadInfo, viewerID) - .map(memberID => userInfos[memberID] && userInfos[memberID].username) + const threadUsernames = threadOtherMembers(threadInfo.members, viewerID) + .map(member => userInfos[member.id] && userInfos[member.id].username) .filter(Boolean); if (threadUsernames.length === 0) { return 'just you'; @@ -1414,6 +1411,7 @@ threadInFilterList, userIsMember, threadActualMembers, + threadOtherMembers, threadIsGroupChat, threadIsPending, getSingleOtherUser,