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 @@ -9,9 +9,10 @@ } from './message-spec.js'; import { joinResult } from './utils.js'; import { messageTypes } from '../../types/message-types-enum.js'; -import type { - MessageInfo, - ClientDBMessageInfo, +import { + type MessageInfo, + type ClientDBMessageInfo, + isInvalidSidebarSource, } from '../../types/message-types.js'; import { type AddMembersMessageData, @@ -166,5 +167,9 @@ return rawMessageInfo.addedUserIDs; }, + canBeSidebarSource(rawMessageInfo: RawAddMembersMessageInfo): boolean { + return !isInvalidSidebarSource(rawMessageInfo); + }, + validator: rawAddMembersMessageInfoValidator, }); diff --git a/lib/shared/messages/change-role-message-spec.js b/lib/shared/messages/change-role-message-spec.js --- a/lib/shared/messages/change-role-message-spec.js +++ b/lib/shared/messages/change-role-message-spec.js @@ -12,9 +12,10 @@ import { joinResult } from './utils.js'; import type { PlatformDetails } from '../../types/device-types.js'; import { messageTypes } from '../../types/message-types-enum.js'; -import type { - MessageInfo, - ClientDBMessageInfo, +import { + type MessageInfo, + type ClientDBMessageInfo, + isInvalidSidebarSource, } from '../../types/message-types.js'; import { type ChangeRoleMessageData, @@ -236,5 +237,9 @@ generatesNotifs: async () => pushTypes.NOTIF, + canBeSidebarSource(rawMessageInfo: RawChangeRoleMessageInfo): boolean { + return !isInvalidSidebarSource(rawMessageInfo); + }, + validator: rawChangeRoleMessageInfoValidator, }); diff --git a/lib/shared/messages/change-settings-message-spec.js b/lib/shared/messages/change-settings-message-spec.js --- a/lib/shared/messages/change-settings-message-spec.js +++ b/lib/shared/messages/change-settings-message-spec.js @@ -10,9 +10,10 @@ } from './message-spec.js'; import { joinResult } from './utils.js'; import { messageTypes } from '../../types/message-types-enum.js'; -import type { - MessageInfo, - ClientDBMessageInfo, +import { + type MessageInfo, + type ClientDBMessageInfo, + isInvalidSidebarSource, } from '../../types/message-types.js'; import { type ChangeSettingsMessageData, @@ -182,5 +183,9 @@ generatesNotifs: async () => pushTypes.NOTIF, + canBeSidebarSource(rawMessageInfo: RawChangeSettingsMessageInfo): boolean { + return !isInvalidSidebarSource(rawMessageInfo); + }, + validator: rawChangeSettingsMessageInfoValidator, }); diff --git a/lib/shared/messages/create-entry-message-spec.js b/lib/shared/messages/create-entry-message-spec.js --- a/lib/shared/messages/create-entry-message-spec.js +++ b/lib/shared/messages/create-entry-message-spec.js @@ -5,9 +5,10 @@ import { pushTypes, type MessageSpec } from './message-spec.js'; import { joinResult } from './utils.js'; import { messageTypes } from '../../types/message-types-enum.js'; -import type { - MessageInfo, - ClientDBMessageInfo, +import { + type MessageInfo, + type ClientDBMessageInfo, + isInvalidSidebarSource, } from '../../types/message-types.js'; import { type CreateEntryMessageData, @@ -121,5 +122,9 @@ generatesNotifs: async () => pushTypes.NOTIF, + canBeSidebarSource(rawMessageInfo: RawCreateEntryMessageInfo): boolean { + return !isInvalidSidebarSource(rawMessageInfo); + }, + validator: rawCreateEntryMessageInfoValidator, }); diff --git a/lib/shared/messages/create-sidebar-message-spec.js b/lib/shared/messages/create-sidebar-message-spec.js --- a/lib/shared/messages/create-sidebar-message-spec.js +++ b/lib/shared/messages/create-sidebar-message-spec.js @@ -12,9 +12,10 @@ import { joinResult } from './utils.js'; import type { PlatformDetails } from '../../types/device-types.js'; import { messageTypes } from '../../types/message-types-enum.js'; -import type { - MessageInfo, - ClientDBMessageInfo, +import { + type MessageInfo, + type ClientDBMessageInfo, + isInvalidSidebarSource, } from '../../types/message-types.js'; import { type CreateSidebarMessageData, @@ -229,5 +230,9 @@ return [parentThreadID]; }, + canBeSidebarSource(rawMessageInfo: RawCreateSidebarMessageInfo): boolean { + return !isInvalidSidebarSource(rawMessageInfo); + }, + validator: rawCreateSidebarMessageInfoValidator, }); diff --git a/lib/shared/messages/create-sub-thread-message-spec.js b/lib/shared/messages/create-sub-thread-message-spec.js --- a/lib/shared/messages/create-sub-thread-message-spec.js +++ b/lib/shared/messages/create-sub-thread-message-spec.js @@ -11,9 +11,10 @@ import { assertSingleMessageInfo } from './utils.js'; import { permissionLookup } from '../../permissions/thread-permissions.js'; import { messageTypes } from '../../types/message-types-enum.js'; -import type { - MessageInfo, - ClientDBMessageInfo, +import { + type MessageInfo, + type ClientDBMessageInfo, + isInvalidSidebarSource, } from '../../types/message-types.js'; import { type CreateSubthreadMessageData, @@ -163,5 +164,9 @@ return [rawMessageInfo.childThreadID]; }, + canBeSidebarSource(rawMessageInfo: RawCreateSubthreadMessageInfo): boolean { + return !isInvalidSidebarSource(rawMessageInfo); + }, + validator: rawCreateSubthreadMessageInfoValidator, }); diff --git a/lib/shared/messages/create-thread-message-spec.js b/lib/shared/messages/create-thread-message-spec.js --- a/lib/shared/messages/create-thread-message-spec.js +++ b/lib/shared/messages/create-thread-message-spec.js @@ -10,9 +10,10 @@ } from './message-spec.js'; import { assertSingleMessageInfo } from './utils.js'; import { messageTypes } from '../../types/message-types-enum.js'; -import type { - MessageInfo, - ClientDBMessageInfo, +import { + type MessageInfo, + type ClientDBMessageInfo, + isInvalidSidebarSource, } from '../../types/message-types.js'; import { type CreateThreadMessageData, @@ -202,5 +203,9 @@ return parentThreadID ? [parentThreadID] : []; }, + canBeSidebarSource(rawMessageInfo: RawCreateThreadMessageInfo): boolean { + return !isInvalidSidebarSource(rawMessageInfo); + }, + validator: rawCreateThreadMessageInfoValidator, }); diff --git a/lib/shared/messages/delete-entry-message-spec.js b/lib/shared/messages/delete-entry-message-spec.js --- a/lib/shared/messages/delete-entry-message-spec.js +++ b/lib/shared/messages/delete-entry-message-spec.js @@ -5,9 +5,10 @@ import { pushTypes, type MessageSpec } from './message-spec.js'; import { assertSingleMessageInfo } from './utils.js'; import { messageTypes } from '../../types/message-types-enum.js'; -import type { - MessageInfo, - ClientDBMessageInfo, +import { + type MessageInfo, + type ClientDBMessageInfo, + isInvalidSidebarSource, } from '../../types/message-types.js'; import { type DeleteEntryMessageData, @@ -136,5 +137,9 @@ generatesNotifs: async () => pushTypes.NOTIF, + canBeSidebarSource(rawMessageInfo: RawDeleteEntryMessageInfo): boolean { + return !isInvalidSidebarSource(rawMessageInfo); + }, + validator: rawDeleteEntryMessageInfoValidator, }); diff --git a/lib/shared/messages/edit-entry-message-spec.js b/lib/shared/messages/edit-entry-message-spec.js --- a/lib/shared/messages/edit-entry-message-spec.js +++ b/lib/shared/messages/edit-entry-message-spec.js @@ -5,9 +5,10 @@ import { pushTypes, type MessageSpec } from './message-spec.js'; import { joinResult } from './utils.js'; import { messageTypes } from '../../types/message-types-enum.js'; -import type { - MessageInfo, - ClientDBMessageInfo, +import { + type MessageInfo, + type ClientDBMessageInfo, + isInvalidSidebarSource, } from '../../types/message-types.js'; import { type EditEntryMessageData, @@ -121,5 +122,9 @@ generatesNotifs: async () => pushTypes.NOTIF, + canBeSidebarSource(rawMessageInfo: RawEditEntryMessageInfo): boolean { + return !isInvalidSidebarSource(rawMessageInfo); + }, + validator: rawEditEntryMessageInfoValidator, }); diff --git a/lib/shared/messages/edit-message-spec.js b/lib/shared/messages/edit-message-spec.js --- a/lib/shared/messages/edit-message-spec.js +++ b/lib/shared/messages/edit-message-spec.js @@ -8,7 +8,10 @@ assertMessageType, messageTypes, } from '../../types/message-types-enum.js'; -import { type ClientDBMessageInfo } from '../../types/message-types.js'; +import { + type ClientDBMessageInfo, + isInvalidSidebarSource, +} from '../../types/message-types.js'; import { type EditMessageData, type RawEditMessageInfo, @@ -140,5 +143,9 @@ return unwrapped; }, + canBeSidebarSource(messageInfo: RawEditMessageInfo): boolean { + return !isInvalidSidebarSource(messageInfo); + }, + validator: rawEditMessageInfoValidator, }); 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 @@ -5,9 +5,10 @@ import type { MessageSpec, RobotextParams } from './message-spec.js'; import { joinResult } from './utils.js'; import { messageTypes } from '../../types/message-types-enum.js'; -import type { - MessageInfo, - ClientDBMessageInfo, +import { + type MessageInfo, + type ClientDBMessageInfo, + isInvalidSidebarSource, } from '../../types/message-types.js'; import { type JoinThreadMessageData, @@ -119,5 +120,9 @@ return joinResult(rawMessageInfo.type, rawMessageInfo.threadID); }, + canBeSidebarSource(rawMessageInfo: RawJoinThreadMessageInfo): boolean { + return !isInvalidSidebarSource(rawMessageInfo); + }, + validator: rawJoinThreadMessageInfoValidator, }); 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 @@ -5,9 +5,10 @@ import type { MessageSpec, RobotextParams } from './message-spec.js'; import { joinResult } from './utils.js'; import { messageTypes } from '../../types/message-types-enum.js'; -import type { - MessageInfo, - ClientDBMessageInfo, +import { + type MessageInfo, + type ClientDBMessageInfo, + isInvalidSidebarSource, } from '../../types/message-types.js'; import { type LeaveThreadMessageData, @@ -119,5 +120,9 @@ return joinResult(rawMessageInfo.type, rawMessageInfo.threadID); }, + canBeSidebarSource(rawMessageInfo: RawLeaveThreadMessageInfo): boolean { + return !isInvalidSidebarSource(rawMessageInfo); + }, + validator: rawLeaveThreadMessageInfoValidator, }); diff --git a/lib/shared/messages/message-spec.js b/lib/shared/messages/message-spec.js --- a/lib/shared/messages/message-spec.js +++ b/lib/shared/messages/message-spec.js @@ -113,6 +113,7 @@ +startsThread?: boolean, +threadIDs?: (rawMessageInfo: RawInfo) => $ReadOnlyArray, +includedInRepliesCount?: boolean, + +canBeSidebarSource: (rawMessageInfo: RawInfo) => boolean, +useCreationSideEffectsFunc?: () => CreationSideEffectsFunc, +validator: TType, }; diff --git a/lib/shared/messages/multimedia-message-spec.js b/lib/shared/messages/multimedia-message-spec.js --- a/lib/shared/messages/multimedia-message-spec.js +++ b/lib/shared/messages/multimedia-message-spec.js @@ -23,6 +23,7 @@ import { isMediaMessageType, rawMultimediaMessageInfoValidator, + isInvalidSidebarSource, } from '../../types/message-types.js'; import type { MessageInfo, @@ -351,6 +352,12 @@ includedInRepliesCount: true, + canBeSidebarSource( + rawMessageInfo: RawMediaMessageInfo | RawImagesMessageInfo, + ): boolean { + return !isInvalidSidebarSource(rawMessageInfo); + }, + validator: rawMultimediaMessageInfoValidator, }); diff --git a/lib/shared/messages/reaction-message-spec.js b/lib/shared/messages/reaction-message-spec.js --- a/lib/shared/messages/reaction-message-spec.js +++ b/lib/shared/messages/reaction-message-spec.js @@ -17,6 +17,7 @@ import { type MessageInfo, type ClientDBMessageInfo, + isInvalidSidebarSource, } from '../../types/message-types.js'; import { type ReactionMessageData, @@ -218,5 +219,9 @@ return action === 'add_reaction' ? pushTypes.NOTIF : pushTypes.RESCIND; }, + canBeSidebarSource(rawMessageInfo: RawReactionMessageInfo): boolean { + return !isInvalidSidebarSource(rawMessageInfo); + }, + validator: rawReactionMessageInfoValidator, }); 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 @@ -9,9 +9,10 @@ } from './message-spec.js'; import { joinResult } from './utils.js'; import { messageTypes } from '../../types/message-types-enum.js'; -import type { - MessageInfo, - ClientDBMessageInfo, +import { + type MessageInfo, + type ClientDBMessageInfo, + isInvalidSidebarSource, } from '../../types/message-types.js'; import { type RawRemoveMembersMessageInfo, @@ -166,5 +167,9 @@ return rawMessageInfo.removedUserIDs; }, + canBeSidebarSource(messageInfo: RawRemoveMembersMessageInfo): boolean { + return !isInvalidSidebarSource(messageInfo); + }, + validator: rawRemoveMembersMessageInfoValidator, }); diff --git a/lib/shared/messages/restore-entry-message-spec.js b/lib/shared/messages/restore-entry-message-spec.js --- a/lib/shared/messages/restore-entry-message-spec.js +++ b/lib/shared/messages/restore-entry-message-spec.js @@ -5,9 +5,10 @@ import { pushTypes, type MessageSpec } from './message-spec.js'; import { assertSingleMessageInfo } from './utils.js'; import { messageTypes } from '../../types/message-types-enum.js'; -import type { - MessageInfo, - ClientDBMessageInfo, +import { + type MessageInfo, + type ClientDBMessageInfo, + isInvalidSidebarSource, } from '../../types/message-types.js'; import { type RawRestoreEntryMessageInfo, @@ -136,5 +137,9 @@ generatesNotifs: async () => pushTypes.NOTIF, + canBeSidebarSource(rawMessageInfo: RawRestoreEntryMessageInfo): boolean { + return !isInvalidSidebarSource(rawMessageInfo); + }, + validator: rawRestoreEntryMessageInfoValidator, }); diff --git a/lib/shared/messages/sidebar-source-message-spec.js b/lib/shared/messages/sidebar-source-message-spec.js --- a/lib/shared/messages/sidebar-source-message-spec.js +++ b/lib/shared/messages/sidebar-source-message-spec.js @@ -181,5 +181,9 @@ startsThread: true, + canBeSidebarSource(rawMessageInfo: RawSidebarSourceMessageInfo): boolean { + return !isInvalidSidebarSource(rawMessageInfo); + }, + validator: rawSidebarSourceMessageInfoValidator, }); diff --git a/lib/shared/messages/text-message-spec.js b/lib/shared/messages/text-message-spec.js --- a/lib/shared/messages/text-message-spec.js +++ b/lib/shared/messages/text-message-spec.js @@ -15,9 +15,10 @@ changeThreadSettings, } from '../../actions/thread-actions.js'; import { messageTypes } from '../../types/message-types-enum.js'; -import type { - MessageInfo, - ClientDBMessageInfo, +import { + type MessageInfo, + type ClientDBMessageInfo, + isInvalidSidebarSource, } from '../../types/message-types.js'; import { type RawTextMessageInfo, @@ -314,5 +315,9 @@ }; }, + canBeSidebarSource(rawMessageInfo: RawTextMessageInfo): boolean { + return !isInvalidSidebarSource(rawMessageInfo); + }, + validator: rawTextMessageInfoValidator, }); diff --git a/lib/shared/messages/toggle-pin-message-spec.js b/lib/shared/messages/toggle-pin-message-spec.js --- a/lib/shared/messages/toggle-pin-message-spec.js +++ b/lib/shared/messages/toggle-pin-message-spec.js @@ -9,7 +9,10 @@ } from './message-spec.js'; import type { PlatformDetails } from '../../types/device-types'; import { messageTypes } from '../../types/message-types-enum.js'; -import type { ClientDBMessageInfo } from '../../types/message-types.js'; +import { + type ClientDBMessageInfo, + isInvalidSidebarSource, +} from '../../types/message-types.js'; import { type TogglePinMessageData, type TogglePinMessageInfo, @@ -155,5 +158,9 @@ return unwrapped; }, + canBeSidebarSource(messageInfo: RawTogglePinMessageInfo): boolean { + return !isInvalidSidebarSource(messageInfo); + }, + validator: rawTogglePinMessageInfoValidator, }); diff --git a/lib/shared/messages/unsupported-message-spec.js b/lib/shared/messages/unsupported-message-spec.js --- a/lib/shared/messages/unsupported-message-spec.js +++ b/lib/shared/messages/unsupported-message-spec.js @@ -4,7 +4,10 @@ import { pushTypes, type MessageSpec } from './message-spec.js'; import { messageTypes } from '../../types/message-types-enum.js'; -import { type ClientDBMessageInfo } from '../../types/message-types.js'; +import { + type ClientDBMessageInfo, + isInvalidSidebarSource, +} from '../../types/message-types.js'; import { type RawUnsupportedMessageInfo, type UnsupportedMessageInfo, @@ -74,5 +77,9 @@ generatesNotifs: async () => pushTypes.NOTIF, + canBeSidebarSource(messageInfo: RawUnsupportedMessageInfo): boolean { + return !isInvalidSidebarSource(messageInfo); + }, + validator: rawUnsupportedMessageInfoValidator, }); diff --git a/lib/shared/messages/update-relationship-message-spec.js b/lib/shared/messages/update-relationship-message-spec.js --- a/lib/shared/messages/update-relationship-message-spec.js +++ b/lib/shared/messages/update-relationship-message-spec.js @@ -10,9 +10,10 @@ import { assertSingleMessageInfo } from './utils.js'; import type { PlatformDetails } from '../../types/device-types.js'; import { messageTypes } from '../../types/message-types-enum.js'; -import type { - MessageInfo, - ClientDBMessageInfo, +import { + type MessageInfo, + type ClientDBMessageInfo, + isInvalidSidebarSource, } from '../../types/message-types.js'; import type { RawUnsupportedMessageInfo } from '../../types/messages/unsupported.js'; import { @@ -177,5 +178,11 @@ generatesNotifs: async () => pushTypes.NOTIF, + canBeSidebarSource( + rawMessageInfo: RawUpdateRelationshipMessageInfo, + ): boolean { + return !isInvalidSidebarSource(rawMessageInfo); + }, + validator: rawUpdateRelationshipMessageInfoValidator, });