From 92e94d7bcc68c52064514144fc549b9fc9bbcdc8 Mon Sep 17 00:00:00 2001 From: Mingze Xiao Date: Thu, 9 Jul 2020 22:35:48 -0700 Subject: [PATCH] chore(log): Add log for image zoom click --- src/lib/events.js | 1 + src/lib/viewers/image/ImageBaseViewer.js | 2 ++ src/lib/viewers/image/__tests__/ImageBaseViewer-test.js | 9 +++++++++ 3 files changed, 12 insertions(+) diff --git a/src/lib/events.js b/src/lib/events.js index d7a3a592a4..6d15933fff 100644 --- a/src/lib/events.js +++ b/src/lib/events.js @@ -3,6 +3,7 @@ export const VIEWER_EVENT = { default: 'viewerevent', // The default viewer event. download: 'download', // Begin downloading the file. error: 'error', // When an error occurs. + imageZoomClick: 'imagezoomclick', // When image is clicked directly to zoom/reset load: 'load', // Preview is finished loading. mediaEndAutoplay: 'mediaendautoplay', // Media playback has completed, with autoplay enabled. metric: 'viewermetric', // A viewer metric. diff --git a/src/lib/viewers/image/ImageBaseViewer.js b/src/lib/viewers/image/ImageBaseViewer.js index 5100f8aebd..b0523f4a4f 100644 --- a/src/lib/viewers/image/ImageBaseViewer.js +++ b/src/lib/viewers/image/ImageBaseViewer.js @@ -378,6 +378,8 @@ class ImageBaseViewer extends BaseViewer { // click mouse up. In that case reset the image size, mimicking single-click-unzoom. this.zoom('reset'); } + + this.emitMetric(VIEWER_EVENT.imageZoomClick, this.options.file.id); } } diff --git a/src/lib/viewers/image/__tests__/ImageBaseViewer-test.js b/src/lib/viewers/image/__tests__/ImageBaseViewer-test.js index 07847bd01d..c0c05f6051 100644 --- a/src/lib/viewers/image/__tests__/ImageBaseViewer-test.js +++ b/src/lib/viewers/image/__tests__/ImageBaseViewer-test.js @@ -313,9 +313,15 @@ describe('lib/viewers/image/ImageBaseViewer', () => { describe('handleMouseUp()', () => { beforeEach(() => { + stubs.emitMetric = sandbox.stub(imageBase, 'emitMetric'); stubs.pan = sandbox.stub(imageBase, 'stopPanning'); stubs.zoom = sandbox.stub(imageBase, 'zoom'); imageBase.isPanning = false; + imageBase.options = { + file: { + id: 1, + }, + }; }); it('should do nothing if incorrect click type', () => { @@ -335,6 +341,7 @@ describe('lib/viewers/image/ImageBaseViewer', () => { event.metaKey = 'blah'; imageBase.handleMouseUp(event); expect(stubs.zoom).to.not.have.been.called; + expect(stubs.emitMetric).to.not.have.been.called; }); it('should zoom in if zoomable but not pannable', () => { @@ -349,6 +356,7 @@ describe('lib/viewers/image/ImageBaseViewer', () => { imageBase.isZoomable = true; imageBase.handleMouseUp(event); expect(stubs.zoom).to.have.been.calledWith('in'); + expect(stubs.emitMetric).to.be.calledWith('imagezoomclick', 1); }); it('should reset zoom if mouseup was not due to end of panning', () => { @@ -364,6 +372,7 @@ describe('lib/viewers/image/ImageBaseViewer', () => { imageBase.didPan = false; imageBase.handleMouseUp(event); expect(stubs.zoom).to.have.been.calledWith('reset'); + expect(stubs.emitMetric).to.be.calledWith('imagezoomclick', 1); }); it('should not zoom if mouse up was due to end of panning', () => {