MCPcopy Create free account
hub / github.com/CommE2E/comm / createMediaMessageData

Function createMediaMessageData

lib/shared/message-utils.js:168–219  ·  view source on GitHub ↗
(
  input: MediaMessageDataCreationInput,
  options: {
    +forceMultimediaMessageType?: boolean,
  } = defaultMediaMessageOptions,
)

Source from the content-addressed store, hash-verified

166 ...
167};
168function 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
221type MediaMessageInfoCreationInput = {
222 ...$Exact<MediaMessageDataCreationInput>,

Callers 2

createMediaMessageInfoFunction · 0.85

Calls 1

pushMethod · 0.80

Tested by

no test coverage detected