From cab17d9b82be4183e85cc74c9c2e5ba68865b74d Mon Sep 17 00:00:00 2001 From: Teddy Ortega Date: Wed, 28 Jun 2017 19:04:10 -0400 Subject: [PATCH] fix form entry within scrolllock --- lib/ScrollLock.js | 4 ++++ src/ScrollLock.jsx | 4 ++++ test/ScrollLock.test.jsx | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/lib/ScrollLock.js b/lib/ScrollLock.js index 3d07c1a..5874b76 100644 --- a/lib/ScrollLock.js +++ b/lib/ScrollLock.js @@ -111,6 +111,10 @@ var ScrollLock = function (_Component) { }, { key: 'onKeyDownHandler', value: function onKeyDownHandler(e) { + if (e.target !== this.scrollingElement) { + return; + } + if (upKeys.indexOf(e.keyCode) >= 0) { this.handleEventDelta(e, -1); } else if (downKeys.indexOf(e.keyCode) >= 0) { diff --git a/src/ScrollLock.jsx b/src/ScrollLock.jsx index 6e67158..4a9608b 100644 --- a/src/ScrollLock.jsx +++ b/src/ScrollLock.jsx @@ -95,6 +95,10 @@ export default class ScrollLock extends Component { } onKeyDownHandler(e) { + if (e.target !== this.scrollingElement) { + return; + } + if (upKeys.indexOf(e.keyCode) >= 0) { this.handleEventDelta(e, -1); } else if (downKeys.indexOf(e.keyCode) >= 0) { diff --git a/test/ScrollLock.test.jsx b/test/ScrollLock.test.jsx index 648a5b6..410691e 100644 --- a/test/ScrollLock.test.jsx +++ b/test/ScrollLock.test.jsx @@ -128,6 +128,10 @@ describe('ScrollLock', () => { component = scrollLockInstance(); component.handleEventDelta = jest.fn(); }); + it('should not call handleEventDelta if keydown target is not the scrolling element', () => { + component.onKeyDownHandler({ keyCode: 32, target: }); + expect(component.handleEventDelta).toHaveBeenCalledTimes(0); + }); it('should call handleEventDelta with delta of 1 for space bar', () => { const synthEvent = { keyCode: 32 }; component.onKeyDownHandler(synthEvent);