diff --git a/lib/selectors/user-selectors.js b/lib/selectors/user-selectors.js --- a/lib/selectors/user-selectors.js +++ b/lib/selectors/user-selectors.js @@ -130,16 +130,12 @@ [id: string]: AccountUserInfo, } = createSelector( (state: BaseAppState<>) => state.userStore.userInfos, - (state: BaseAppState<>) => state.currentUserInfo && state.currentUserInfo.id, - ( - userInfos: UserInfos, - currentUserID: ?string, - ): { [id: string]: AccountUserInfo } => { + (userInfos: UserInfos): { [id: string]: AccountUserInfo } => { const availableUsers: { [id: string]: AccountUserInfo } = {}; for (const id in userInfos) { const { username, relationshipStatus } = userInfos[id]; - if (id === currentUserID || !username) { + if (!username) { continue; } if ( diff --git a/native/chat/compose-subchannel.react.js b/native/chat/compose-subchannel.react.js --- a/native/chat/compose-subchannel.react.js +++ b/native/chat/compose-subchannel.react.js @@ -197,11 +197,16 @@ community ? threadInfoSelector(state)[community] : null, ); const auxUserInfos = useSelector(state => state.auxUserStore.auxUserInfos); + const viewerID = useSelector(state => state.currentUserInfo?.id); + const excludeUserIDs = React.useMemo( + () => [...userInfoInputIDs, ...(viewerID ? [viewerID] : [])], + [userInfoInputIDs, viewerID], + ); const userSearchResults = usePotentialMemberItems({ text: usernameInputText, userInfos: otherUserInfos, auxUserInfos, - excludeUserIDs: userInfoInputIDs, + excludeUserIDs, inputParentThreadInfo: parentThreadInfo, inputCommunityThreadInfo: communityThreadInfo, threadType, diff --git a/native/chat/settings/add-users-modal.react.js b/native/chat/settings/add-users-modal.react.js --- a/native/chat/settings/add-users-modal.react.js +++ b/native/chat/settings/add-users-modal.react.js @@ -174,9 +174,14 @@ () => threadActualMembers(threadInfo.members), [threadInfo.members], ); + const viewerID = useSelector(state => state.currentUserInfo?.id); const excludeUserIDs = React.useMemo( - () => userInfoInputIDs.concat(threadMemberIDs), - [userInfoInputIDs, threadMemberIDs], + () => [ + ...userInfoInputIDs, + ...threadMemberIDs, + ...(viewerID ? [viewerID] : []), + ], + [userInfoInputIDs, threadMemberIDs, viewerID], ); const otherUserInfos = useSelector(userInfoSelectorForPotentialMembers); diff --git a/web/settings/relationship/add-users-utils.js b/web/settings/relationship/add-users-utils.js --- a/web/settings/relationship/add-users-utils.js +++ b/web/settings/relationship/add-users-utils.js @@ -139,12 +139,14 @@ community ? threadInfoSelector(state)[community] : null, ); const otherUserInfos = useSelector(userInfoSelectorForPotentialMembers); + const viewerID = useSelector(state => state.currentUserInfo?.id); const excludeUserIDs = React.useMemo( - () => - threadActualMembers(threadInfo.members).concat( - Array.from(previouslySelectedUsers.keys()), - ), - [previouslySelectedUsers, threadInfo.members], + () => [ + ...threadActualMembers(threadInfo.members), + ...previouslySelectedUsers.keys(), + ...(viewerID ? [viewerID] : []), + ], + [previouslySelectedUsers, threadInfo.members, viewerID], ); const auxUserInfos = useSelector(state => state.auxUserStore.auxUserInfos); @@ -215,12 +217,18 @@ [previouslySelectedUsers], ); + const viewerID = useSelector(state => state.currentUserInfo?.id); + const excludeUserIDs = React.useMemo( + () => [...previouslySelectedUserIDs, ...(viewerID ? [viewerID] : [])], + [previouslySelectedUserIDs, viewerID], + ); + const auxUserInfos = useSelector(state => state.auxUserStore.auxUserInfos); const userSearchResults = usePotentialMemberItems({ text: searchText, userInfos: otherUserInfos, auxUserInfos, - excludeUserIDs: previouslySelectedUserIDs, + excludeUserIDs, inputParentThreadInfo: parentThreadInfo, inputCommunityThreadInfo: communityThreadInfo, threadType,