From 00299e446d2b4bd5f6c5d90efef7dd77480d5900 Mon Sep 17 00:00:00 2001 From: Mark Hahnenberg Date: Fri, 17 Feb 2017 11:50:39 -0800 Subject: [PATCH] [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 --- .../internal_packages/message-list/lib/email-frame.jsx | 4 ++-- ...e-download-prompts.es6 => inline-image-listeners.es6} | 9 ++++++++- 2 files changed, 10 insertions(+), 3 deletions(-) rename packages/client-app/internal_packages/message-list/lib/{inline-download-prompts.es6 => inline-image-listeners.es6} (83%) diff --git a/packages/client-app/internal_packages/message-list/lib/email-frame.jsx b/packages/client-app/internal_packages/message-list/lib/email-frame.jsx index 792835e66..63463d7b2 100644 --- a/packages/client-app/internal_packages/message-list/lib/email-frame.jsx +++ b/packages/client-app/internal_packages/message-list/lib/email-frame.jsx @@ -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) { diff --git a/packages/client-app/internal_packages/message-list/lib/inline-download-prompts.es6 b/packages/client-app/internal_packages/message-list/lib/inline-image-listeners.es6 similarity index 83% rename from packages/client-app/internal_packages/message-list/lib/inline-download-prompts.es6 rename to packages/client-app/internal_packages/message-list/lib/inline-image-listeners.es6 index 84e05f4ac..15c86b155 100644 --- a/packages/client-app/internal_packages/message-list/lib/inline-download-prompts.es6 +++ b/packages/client-app/internal_packages/message-list/lib/inline-image-listeners.es6 @@ -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') {