diff --git a/lib/selectors/thread-selectors.js b/lib/selectors/thread-selectors.js --- a/lib/selectors/thread-selectors.js +++ b/lib/selectors/thread-selectors.js @@ -45,6 +45,7 @@ } from '../types/minimally-encoded-thread-permissions-types.js'; import type { BaseAppState } from '../types/redux-types.js'; import { + threadTypeIsThick, threadTypeIsCommunityRoot, type ThreadType, threadTypeIsSidebar, @@ -452,7 +453,8 @@ if ( threadIsPending(threadID) || (rawThreadInfo.parentThreadID !== genesis().id && - !threadTypeIsSidebar(rawThreadInfo.type)) + !threadTypeIsSidebar(rawThreadInfo.type) && + !threadTypeIsThick(rawThreadInfo.type)) ) { continue; } 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 @@ -1267,21 +1267,39 @@ const { searching, userInfoInputArray } = params; const { sourceMessageID } = baseThreadInfo; - const pendingThreadID = searching - ? getPendingThreadID( - pendingThreadType(userInfoInputArray.length, 'thin'), - [...userInfoInputArray.map(user => user.id), viewerID], - sourceMessageID, - ) - : getPendingThreadID( - baseThreadInfo.type, - baseThreadInfo.members.map(member => member.id), - sourceMessageID, - ); - - const realizedThreadID = pendingToRealizedThreadIDs.get(pendingThreadID); - if (realizedThreadID && threadInfos[realizedThreadID]) { - return threadInfos[realizedThreadID]; + + if (searching) { + const pendingThinThreadID = getPendingThreadID( + pendingThreadType(userInfoInputArray.length, 'thin'), + [...userInfoInputArray.map(user => user.id), viewerID], + sourceMessageID, + ); + const realizedThinThreadID = + pendingToRealizedThreadIDs.get(pendingThinThreadID); + if (realizedThinThreadID && threadInfos[realizedThinThreadID]) { + return threadInfos[realizedThinThreadID]; + } + const pendingThickThreadID = getPendingThreadID( + pendingThreadType(userInfoInputArray.length, 'thick'), + [...userInfoInputArray.map(user => user.id), viewerID], + sourceMessageID, + ); + const realizedThickThreadID = + pendingToRealizedThreadIDs.get(pendingThickThreadID); + if (realizedThickThreadID && threadInfos[realizedThickThreadID]) { + return threadInfos[realizedThickThreadID]; + } + } else { + const pendingThinThreadID = getPendingThreadID( + baseThreadInfo.type, + baseThreadInfo.members.map(member => member.id), + sourceMessageID, + ); + const realizedThreadID = + pendingToRealizedThreadIDs.get(pendingThinThreadID); + if (realizedThreadID && threadInfos[realizedThreadID]) { + return threadInfos[realizedThreadID]; + } } const updatedThread = searching