From e61c4def9f819c4fe279659b6d62453e3a19a178 Mon Sep 17 00:00:00 2001 From: Yuri S Date: Sun, 17 Dec 2017 23:09:43 +0200 Subject: [PATCH] Refactored handleKeyDown switch --- src/Select.js | 48 ++++++++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/src/Select.js b/src/Select.js index 022004763f..0c0e3dd31c 100644 --- a/src/Select.js +++ b/src/Select.js @@ -347,7 +347,7 @@ class Select extends React.Component { let toOpen = this.state.isOpen || this._openAfterFocus || this.props.openOnFocus; toOpen = this._focusAfterClear ? false : toOpen; //if focus happens after clear values, don't open dropdown yet. - + if (this.props.onFocus) { this.props.onFocus(event); } @@ -423,14 +423,14 @@ class Select extends React.Component { event.preventDefault(); this.popValue(); } - return; + break; case 9: // tab if (event.shiftKey || !this.state.isOpen || !this.props.tabSelectsValue) { - return; + break; } event.preventDefault(); this.selectFocusedOption(); - return; + break; case 13: // enter event.preventDefault(); event.stopPropagation(); @@ -439,9 +439,9 @@ class Select extends React.Component { } else { this.focusNextOption(); } - return; - break; + break; case 27: // escape + event.preventDefault(); if (this.state.isOpen) { this.closeMenu(); event.stopPropagation(); @@ -449,52 +449,56 @@ class Select extends React.Component { this.clearValue(event); event.stopPropagation(); } - break; + break; case 32: // space if (this.props.searchable) { - return; + break; } event.preventDefault(); if (!this.state.isOpen) { this.focusNextOption(); - return; + break; } event.stopPropagation(); this.selectFocusedOption(); - break; + break; case 38: // up + event.preventDefault(); this.focusPreviousOption(); - break; + break; case 40: // down + event.preventDefault(); this.focusNextOption(); - break; + break; case 33: // page up + event.preventDefault(); this.focusPageUpOption(); - break; + break; case 34: // page down + event.preventDefault(); this.focusPageDownOption(); - break; + break; case 35: // end key if (event.shiftKey) { - return; + break; } + event.preventDefault(); this.focusEndOption(); - break; + break; case 36: // home key if (event.shiftKey) { - return; + break; } + event.preventDefault(); this.focusStartOption(); - break; + break; case 46: // delete + event.preventDefault(); if (!this.state.inputValue && this.props.deleteRemoves) { - event.preventDefault(); this.popValue(); } - return; - default: return; + break; } - event.preventDefault(); } handleValueClick (option, event) {