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 @@ -13,7 +13,7 @@ import { extractUserMentionsFromText } from './mention-utils.js'; import { getMessageTitle, isInvalidSidebarSource } from './message-utils.js'; import { relationshipBlockedInEitherDirection } from './relationship-utils.js'; -import { useForwardLookupSearchText } from './search-utils.js'; +import { useForwardLookupSearchText, useSearchUsers } from './search-utils.js'; import threadWatcher from './thread-watcher.js'; import { fetchMostRecentMessagesActionTypes, @@ -129,6 +129,7 @@ type DispatchActionPromise, } from '../utils/redux-promise-utils.js'; import { useSelector } from '../utils/redux-utils.js'; +import { usingCommServicesAccessToken } from '../utils/services-utils.js'; import { firstLine } from '../utils/string-utils.js'; import { trimText } from '../utils/text-utils.js'; import { pendingThreadIDRegex } from '../utils/validation-utils.js'; @@ -1560,9 +1561,10 @@ searchText: string, viewerID: ?string, ): ThreadListSearchResult { - const callSearchUsers = useLegacyAshoatKeyserverCall(searchUserCall); const usersWithPersonalThread = useSelector(usersWithPersonalThreadSelector); const forwardLookupSearchText = useForwardLookupSearchText(searchText); + + const callSearchUsers = useLegacyAshoatKeyserverCall(searchUserCall); const searchUsers = React.useCallback( async (usernamePrefix: string) => { if (usernamePrefix.length === 0) { @@ -1588,11 +1590,23 @@ void (async () => { const results = threadSearchIndex.getSearchResults(searchText); setThreadSearchResults(new Set(results)); - const usersResults = await searchUsers(forwardLookupSearchText); - setUsersSearchResults(usersResults); + if (!usingCommServicesAccessToken) { + const usersResults = await searchUsers(forwardLookupSearchText); + setUsersSearchResults(usersResults); + } })(); }, [searchText, forwardLookupSearchText, threadSearchIndex, searchUsers]); + const identitySearchUsers = useSearchUsers(forwardLookupSearchText); + React.useEffect(() => { + if (usingCommServicesAccessToken) { + const userInfos = identitySearchUsers.filter( + info => !usersWithPersonalThread.has(info.id) && info.id !== viewerID, + ); + setUsersSearchResults(userInfos); + } + }, [identitySearchUsers, usersWithPersonalThread, viewerID]); + return { threadSearchResults, usersSearchResults }; }