diff --git a/lib/utils/message-ops-utils.js b/lib/utils/message-ops-utils.js --- a/lib/utils/message-ops-utils.js +++ b/lib/utils/message-ops-utils.js @@ -12,17 +12,34 @@ type ClientDBMessageStoreOperation, } from '../types/message-types'; -function translateMediaToClientDBMediaInfo(media: Media): ClientDBMediaInfo { - return { - id: media.id, - uri: media.uri, - type: media.type, - extras: JSON.stringify({ - dimensions: media.dimensions, - loop: media.type === 'video' ? media.loop : false, - local_media_selection: media.localMediaSelection, - }), - }; +function translateMediaToClientDBMediaInfos( + media: $ReadOnlyArray, +): $ReadOnlyArray { + const clientDBMediaInfos = []; + for (const m of media) { + clientDBMediaInfos.push({ + id: m.id, + uri: m.uri, + type: m.type, + extras: JSON.stringify({ + dimensions: m.dimensions, + loop: m.type === 'video' ? m.loop : false, + local_media_selection: m.localMediaSelection, + }), + }); + if (m.type === 'video') { + clientDBMediaInfos.push({ + id: m.thumbnailID, + uri: m.thumbnailURI, + type: 'photo', + extras: JSON.stringify({ + dimensions: m.dimensions, + loop: false, + }), + }); + } + } + return clientDBMediaInfos; } function translateClientDBMediaInfoToImage( @@ -69,7 +86,7 @@ media_infos: rawMessageInfo.type === messageTypes.IMAGES || rawMessageInfo.type === messageTypes.MULTIMEDIA - ? rawMessageInfo.media.map(translateMediaToClientDBMediaInfo) + ? translateMediaToClientDBMediaInfos(rawMessageInfo.media) : null, }; } @@ -111,7 +128,6 @@ export { translateClientDBMediaInfoToImage, - translateMediaToClientDBMediaInfo, translateRawMessageInfoToClientDBMessageInfo, translateClientDBMessageInfoToRawMessageInfo, translateClientDBMessageInfosToRawMessageInfos,