(
input: MediaMessageDataCreationInput,
options: {
+forceMultimediaMessageType?: boolean,
} = defaultMediaMessageOptions,
)
| 166 | ... |
| 167 | }; |
| 168 | function createMediaMessageData( |
| 169 | input: MediaMessageDataCreationInput, |
| 170 | options: { |
| 171 | +forceMultimediaMessageType?: boolean, |
| 172 | } = defaultMediaMessageOptions, |
| 173 | ): MultimediaMessageData { |
| 174 | let allMediaArePhotos = true; |
| 175 | const photoMedia = []; |
| 176 | for (const singleMedia of input.media) { |
| 177 | if (singleMedia.type !== 'photo') { |
| 178 | allMediaArePhotos = false; |
| 179 | break; |
| 180 | } else { |
| 181 | photoMedia.push(singleMedia); |
| 182 | } |
| 183 | } |
| 184 | |
| 185 | const { localID, threadID, creatorID, sidebarCreation } = input; |
| 186 | const { forceMultimediaMessageType = false } = options; |
| 187 | const time = input.time ? input.time : Date.now(); |
| 188 | let messageData; |
| 189 | if (allMediaArePhotos && !forceMultimediaMessageType) { |
| 190 | messageData = ({ |
| 191 | type: messageTypes.IMAGES, |
| 192 | threadID, |
| 193 | creatorID, |
| 194 | time, |
| 195 | media: photoMedia, |
| 196 | }: ImagesMessageData); |
| 197 | if (localID) { |
| 198 | messageData = { ...messageData, localID }; |
| 199 | } |
| 200 | if (sidebarCreation) { |
| 201 | messageData = { ...messageData, sidebarCreation }; |
| 202 | } |
| 203 | } else { |
| 204 | messageData = ({ |
| 205 | type: messageTypes.MULTIMEDIA, |
| 206 | threadID, |
| 207 | creatorID, |
| 208 | time, |
| 209 | media: input.media, |
| 210 | }: MediaMessageData); |
| 211 | if (localID) { |
| 212 | messageData = { ...messageData, localID }; |
| 213 | } |
| 214 | if (sidebarCreation) { |
| 215 | messageData = { ...messageData, sidebarCreation }; |
| 216 | } |
| 217 | } |
| 218 | return messageData; |
| 219 | } |
| 220 | |
| 221 | type MediaMessageInfoCreationInput = { |
| 222 | ...$Exact<MediaMessageDataCreationInput>, |
no test coverage detected