Implement video support in lightbox

This commit is contained in:
Daniel Gasienica 2018-04-25 18:15:57 -04:00
parent ac04f0648a
commit 45d6c7a5a8
5 changed files with 61 additions and 24 deletions

View file

@ -109,7 +109,8 @@
}
const props = {
imageURL: this.objectUrl,
objectURL: this.objectUrl,
contentType: this.model.contentType,
onSave: () => this.saveFile(),
// implicit: `close`
};

View file

@ -600,25 +600,28 @@
const media = await loadMessages(rawMedia);
const saveAttachment = async ({ message } = {}) => {
const loadedMessage = await Signal.Migrations.loadMessage(message);
const attachment = loadedMessage.attachments[0];
const timestamp = loadedMessage.received_at;
const attachment = message.attachments[0];
const timestamp = message.received_at;
Signal.Types.AttachmentTS.save({ attachment, timestamp });
};
const onItemClick = async ({ message, type }) => {
const loadedMessage = Signal.Components.Types.Message
.withObjectURL(await Signal.Migrations.loadMessage(message));
switch (type) {
case 'documents': {
saveAttachment({ message });
saveAttachment({ message: loadedMessage });
break;
}
case 'media': {
const attachment = loadedMessage.attachments[0];
this.lightboxView = new Whisper.ReactWrapperView({
Component: Signal.Components.Lightbox,
props: {
imageURL: message.objectURL,
onSave: () => saveAttachment({ message }),
objectURL: loadedMessage.objectURL,
contentType: attachment.contentType,
onSave: () => saveAttachment({ message: loadedMessage }),
},
onClose: () => Signal.Backbone.Views.Lightbox.hide(),
});