diff --git a/lib/shared/messages/add-members-message-spec.js b/lib/shared/messages/add-members-message-spec.js --- a/lib/shared/messages/add-members-message-spec.js +++ b/lib/shared/messages/add-members-message-spec.js @@ -25,7 +25,6 @@ } from '../../types/messages/add-members.js'; import type { ThreadInfo } from '../../types/minimally-encoded-thread-permissions-types.js'; import type { NotifTexts } from '../../types/notif-types.js'; -import { threadTypeIsThick } from '../../types/thread-types-enum.js'; import { threadIDIsThick } from '../../types/thread-types.js'; import type { RelativeUserInfo } from '../../types/user-types.js'; import { @@ -35,6 +34,7 @@ } from '../../utils/entity-text.js'; import { values } from '../../utils/objects.js'; import { notifRobotextForMessageInfo } from '../notif-utils.js'; +import { threadSpecs } from '../threads/thread-specs.js'; function getAddMembersRobotext(messageInfo: AddMembersMessageInfo): EntityText { const users = messageInfo.addedMembers; @@ -232,12 +232,18 @@ showInMessagePreview: ( messageInfo: AddMembersMessageInfo, params: ShowInMessagePreviewParams, - ) => threadTypeIsThick(params.threadInfo.type), + ) => + threadSpecs[params.threadInfo.type].protocol + .membershipChangesShownInThreadPreview, getLastUpdatedTime: ( rawMessageInfo: RawAddMembersMessageInfo, params: ShowInMessagePreviewParams, - ) => (threadTypeIsThick(params.threadInfo.type) ? rawMessageInfo.time : null), + ) => + threadSpecs[params.threadInfo.type].protocol + .membershipChangesShownInThreadPreview + ? rawMessageInfo.time + : null, getMessageNotifyType: async (rawMessageInfo: RawAddMembersMessageInfo) => threadIDIsThick(rawMessageInfo.threadID) diff --git a/lib/shared/messages/join-thread-message-spec.js b/lib/shared/messages/join-thread-message-spec.js --- a/lib/shared/messages/join-thread-message-spec.js +++ b/lib/shared/messages/join-thread-message-spec.js @@ -24,7 +24,6 @@ } from '../../types/messages/join-thread.js'; import type { ThreadInfo } from '../../types/minimally-encoded-thread-permissions-types.js'; import type { NotifTexts } from '../../types/notif-types.js'; -import { threadTypeIsThick } from '../../types/thread-types-enum.js'; import { threadIDIsThick } from '../../types/thread-types.js'; import type { RelativeUserInfo } from '../../types/user-types.js'; import { @@ -33,6 +32,7 @@ pluralizeEntityText, } from '../../utils/entity-text.js'; import { values } from '../../utils/objects.js'; +import { threadSpecs } from '../threads/thread-specs.js'; function getJoinThreadRobotext( joinerString: EntityText, @@ -178,12 +178,18 @@ showInMessagePreview: ( messageInfo: JoinThreadMessageInfo, params: ShowInMessagePreviewParams, - ) => threadTypeIsThick(params.threadInfo.type), + ) => + threadSpecs[params.threadInfo.type].protocol + .membershipChangesShownInThreadPreview, getLastUpdatedTime: ( rawMessageInfo: RawJoinThreadMessageInfo, params: ShowInMessagePreviewParams, - ) => (threadTypeIsThick(params.threadInfo.type) ? rawMessageInfo.time : null), + ) => + threadSpecs[params.threadInfo.type].protocol + .membershipChangesShownInThreadPreview + ? rawMessageInfo.time + : null, getMessageNotifyType: async (rawMessageInfo: RawJoinThreadMessageInfo) => threadIDIsThick(rawMessageInfo.threadID) diff --git a/lib/shared/messages/leave-thread-message-spec.js b/lib/shared/messages/leave-thread-message-spec.js --- a/lib/shared/messages/leave-thread-message-spec.js +++ b/lib/shared/messages/leave-thread-message-spec.js @@ -24,7 +24,6 @@ } from '../../types/messages/leave-thread.js'; import type { ThreadInfo } from '../../types/minimally-encoded-thread-permissions-types.js'; import type { NotifTexts } from '../../types/notif-types.js'; -import { threadTypeIsThick } from '../../types/thread-types-enum.js'; import { threadIDIsThick } from '../../types/thread-types.js'; import type { RelativeUserInfo } from '../../types/user-types.js'; import { @@ -33,6 +32,7 @@ pluralizeEntityText, } from '../../utils/entity-text.js'; import { values } from '../../utils/objects.js'; +import { threadSpecs } from '../threads/thread-specs.js'; function getLeaveThreadRobotext( leaverString: EntityText, @@ -178,12 +178,18 @@ showInMessagePreview: ( messageInfo: LeaveThreadMessageInfo, params: ShowInMessagePreviewParams, - ) => threadTypeIsThick(params.threadInfo.type), + ) => + threadSpecs[params.threadInfo.type].protocol + .membershipChangesShownInThreadPreview, getLastUpdatedTime: ( rawMessageInfo: RawLeaveThreadMessageInfo, params: ShowInMessagePreviewParams, - ) => (threadTypeIsThick(params.threadInfo.type) ? rawMessageInfo.time : null), + ) => + threadSpecs[params.threadInfo.type].protocol + .membershipChangesShownInThreadPreview + ? rawMessageInfo.time + : null, getMessageNotifyType: async (rawMessageInfo: RawLeaveThreadMessageInfo) => threadIDIsThick(rawMessageInfo.threadID) diff --git a/lib/shared/messages/remove-members-message-spec.js b/lib/shared/messages/remove-members-message-spec.js --- a/lib/shared/messages/remove-members-message-spec.js +++ b/lib/shared/messages/remove-members-message-spec.js @@ -25,7 +25,6 @@ } from '../../types/messages/remove-members.js'; import type { ThreadInfo } from '../../types/minimally-encoded-thread-permissions-types.js'; import type { NotifTexts } from '../../types/notif-types.js'; -import { threadTypeIsThick } from '../../types/thread-types-enum.js'; import { threadIDIsThick } from '../../types/thread-types.js'; import type { RelativeUserInfo } from '../../types/user-types.js'; import { @@ -35,6 +34,7 @@ } from '../../utils/entity-text.js'; import { values } from '../../utils/objects.js'; import { notifRobotextForMessageInfo } from '../notif-utils.js'; +import { threadSpecs } from '../threads/thread-specs.js'; function getRemoveMembersRobotext( messageInfo: RemoveMembersMessageInfo, @@ -238,13 +238,18 @@ showInMessagePreview: ( messageInfo: RemoveMembersMessageInfo, params: ShowInMessagePreviewParams, - ) => threadTypeIsThick(params.threadInfo.type), + ) => + threadSpecs[params.threadInfo.type].protocol + .membershipChangesShownInThreadPreview, getLastUpdatedTime: ( rawMessageInfo: RawRemoveMembersMessageInfo, params: ShowInMessagePreviewParams, ) => - threadTypeIsThick(params.threadInfo.type) ? rawMessageInfo.time : null, + threadSpecs[params.threadInfo.type].protocol + .membershipChangesShownInThreadPreview + ? rawMessageInfo.time + : null, getMessageNotifyType: async ( rawMessageInfo: RawRemoveMembersMessageInfo, 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 @@ -429,6 +429,8 @@ threadID: threadInfo.id, }; }, + + membershipChangesShownInThreadPreview: true, }); export { dmThreadProtocol }; 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 @@ -212,6 +212,8 @@ } = input; return utils.keyserverSetThreadUnreadStatus(rest); }, + + membershipChangesShownInThreadPreview: false, }); function mediaIDIsKeyserverID(mediaID: string): boolean { 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 @@ -184,6 +184,7 @@ input: ProtocolSetThreadUnreadStatusInput, utils: SetThreadUnreadStatusUtils, ) => Promise, + +membershipChangesShownInThreadPreview: boolean, }; export type ThreadSpec = {