diff --git a/lib/shared/threads/protocols/dm-thread-protocol.js b/lib/shared/threads/protocols/dm-thread-protocol.js --- a/lib/shared/threads/protocols/dm-thread-protocol.js +++ b/lib/shared/threads/protocols/dm-thread-protocol.js @@ -800,6 +800,7 @@ nativeChatThreadListIcon: 'lock', webChatThreadListIcon: 'lock', threadAncestorLabel: () => 'Local DM', + threadSearchHeaderShowsGenesis: false, }, uploadMultimediaMetadataToKeyserver: false, diff --git a/lib/shared/threads/protocols/keyserver-thread-protocol.js b/lib/shared/threads/protocols/keyserver-thread-protocol.js --- a/lib/shared/threads/protocols/keyserver-thread-protocol.js +++ b/lib/shared/threads/protocols/keyserver-thread-protocol.js @@ -599,6 +599,7 @@ nativeChatThreadListIcon: 'server', webChatThreadListIcon: 'server', threadAncestorLabel: (ancestorPath: React.Node) => ancestorPath, + threadSearchHeaderShowsGenesis: true, }, uploadMultimediaMetadataToKeyserver: true, diff --git a/lib/shared/threads/thread-spec.js b/lib/shared/threads/thread-spec.js --- a/lib/shared/threads/thread-spec.js +++ b/lib/shared/threads/thread-spec.js @@ -344,6 +344,7 @@ +nativeChatThreadListIcon: string, +webChatThreadListIcon: 'lock' | 'server', +threadAncestorLabel: (ancestorPath: React.Node) => React.Node, + +threadSearchHeaderShowsGenesis: boolean, }, +uploadMultimediaMetadataToKeyserver: boolean, +canActionsTargetPendingMessages: boolean, diff --git a/native/chat/message-list-container.react.js b/native/chat/message-list-container.react.js --- a/native/chat/message-list-container.react.js +++ b/native/chat/message-list-container.react.js @@ -15,10 +15,8 @@ useSearchUsers, } from 'lib/shared/search-utils.js'; import { useExistingThreadInfoFinder } from 'lib/shared/thread-utils.js'; -import { dmThreadProtocol } from 'lib/shared/threads/protocols/dm-thread-protocol.js'; -import { keyserverThreadProtocol } from 'lib/shared/threads/protocols/keyserver-thread-protocol.js'; +import { threadSpecs } from 'lib/shared/threads/thread-specs.js'; import type { ThreadInfo } from 'lib/types/minimally-encoded-thread-permissions-types.js'; -import { threadTypeIsThick } from 'lib/types/thread-types-enum.js'; import type { AccountUserInfo, UserListItem } from 'lib/types/user-types.js'; import { pinnedMessageCountText } from 'lib/utils/message-pinning-utils.js'; @@ -162,13 +160,15 @@ if (searching) { const { userInfoInputArray, genesisThreadInfo } = this.props; let parentThreadHeader; - if (threadTypeIsThick(threadInfo.type)) { + const protocol = threadSpecs[threadInfo.type].protocol; + const childThreadType = protocol.pendingThreadType( + userInfoInputArray.length, + ); + const threadSearchHeaderShowsGenesis = + protocol.presentationDetails.threadSearchHeaderShowsGenesis; + if (!threadSearchHeaderShowsGenesis) { parentThreadHeader = ( - + ); } else if (genesisThreadInfo) { // It's technically possible for the client to be missing the Genesis @@ -176,9 +176,7 @@ parentThreadHeader = ( ); }