From dd3053a7bcab59b2c7736e2fa13a53a154953f02 Mon Sep 17 00:00:00 2001 From: mpuech Date: Tue, 26 May 2020 11:46:12 -0400 Subject: [PATCH] fix(select-rich): prevent scrolling when focused --- packages/select-rich/src/LionSelectInvoker.js | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/packages/select-rich/src/LionSelectInvoker.js b/packages/select-rich/src/LionSelectInvoker.js index 7afd95f36..0cb79d23e 100644 --- a/packages/select-rich/src/LionSelectInvoker.js +++ b/packages/select-rich/src/LionSelectInvoker.js @@ -69,6 +69,30 @@ export class LionSelectInvoker extends LionButton { this.type = 'button'; } + connectedCallback() { + if (super.connectedCallback) { + super.connectedCallback(); + } + + const handleKeydown = event => { + switch (event.key) { + case 'ArrowDown': + case 'ArrowUp': + event.preventDefault(); + /* no default */ + } + }; + this.handleKeydown = handleKeydown; + this.addEventListener('keydown', this.handleKeydown); + } + + disconnectedCallback() { + if (super.disconnectedCallback) { + super.disconnectedCallback(); + } + this.removeEventListener('keydown', this.handleKeydown); + } + _contentTemplate() { if (this.selectedElement) { const labelNodes = Array.from(this.selectedElement.querySelectorAll('*'));