[message-list] Add support for double-clicking inline images to open

Summary: See title

Test Plan: Run locally, verify that double clicking inline images opens them

Reviewers: evan, juan, spang

Reviewed By: juan, spang

Differential Revision: https://phab.nylas.com/D3963
This commit is contained in:
Mark Hahnenberg 2017-02-17 11:50:39 -08:00
parent 9cf703c6cd
commit 00299e446d
2 changed files with 10 additions and 3 deletions

View file

@ -5,7 +5,7 @@ import {EventedIFrame} from 'nylas-component-kit';
import {Utils, QuotedHTMLTransformer, MessageStore} from 'nylas-exports';
import {autolink} from './autolinker';
import {autoscaleImages} from './autoscale-images';
import {addInlineDownloadPrompts} from './inline-download-prompts';
import {addInlineImageListeners} from './inline-image-listeners';
import EmailFrameStylesStore from './email-frame-styles-store';
export default class EmailFrame extends React.Component {
@ -70,7 +70,7 @@ export default class EmailFrame extends React.Component {
autolink(doc, {async: true});
autoscaleImages(doc);
addInlineDownloadPrompts(doc);
addInlineImageListeners(doc);
for (const extension of MessageStore.extensions()) {
if (!extension.renderedMessageBodyIntoDocument) {

View file

@ -26,6 +26,13 @@ function _runOnImageNode(node) {
node.style.display = 'none';
node.parentNode.insertBefore(downloadButton, node);
});
node.addEventListener('load', () => {
const file = JSON.parse(safeDecode(node.dataset.nylasFile), Utils.registeredObjectReviver);
node.addEventListener('dblclick', () => {
Actions.fetchAndOpenFile(file);
});
});
}
}
@ -33,7 +40,7 @@ export function encodedAttributeForFile(file) {
return safeEncode(JSON.stringify(file, Utils.registeredObjectReplacer));
}
export function addInlineDownloadPrompts(doc) {
export function addInlineImageListeners(doc) {
const imgTagWalker = document.createTreeWalker(doc.body, NodeFilter.SHOW_ELEMENT, {
acceptNode: (node) => {
if (node.nodeName === 'IMG') {