diff --git a/lib/shared/message-utils.js b/lib/shared/message-utils.js --- a/lib/shared/message-utils.js +++ b/lib/shared/message-utils.js @@ -47,6 +47,8 @@ const localIDPrefix = 'local'; +const defaultMediaMessageOptions = Object.freeze({}); + // Prefers localID function messageKey(messageInfo: MessageInfo | RawMessageInfo): string { if (messageInfo.localID) { @@ -246,6 +248,9 @@ }; function createMediaMessageData( input: MediaMessageDataCreationInput, + options: { + +forceMultimediaMessageType?: boolean, + } = defaultMediaMessageOptions, ): MultimediaMessageData { let allMediaArePhotos = true; const photoMedia = []; @@ -259,9 +264,10 @@ } const { localID, threadID, creatorID, sidebarCreation } = input; + const { forceMultimediaMessageType = false } = options; const time = input.time ? input.time : Date.now(); let messageData; - if (allMediaArePhotos) { + if (allMediaArePhotos && !forceMultimediaMessageType) { messageData = ({ type: messageTypes.IMAGES, threadID, @@ -299,8 +305,11 @@ }; function createMediaMessageInfo( input: MediaMessageInfoCreationInput, + options: { + +forceMultimediaMessageType?: boolean, + } = defaultMediaMessageOptions, ): RawMultimediaMessageInfo { - const messageData = createMediaMessageData(input); + const messageData = createMediaMessageData(input, options); const createRawMessageInfo = messageSpecs[messageData.type].rawMessageInfoFromMessageData; invariant(