From 03cfba11449b181dcd7885898b4dee06ded7e16e Mon Sep 17 00:00:00 2001 From: Pontus Lundin Date: Tue, 17 May 2016 13:33:40 +0200 Subject: [PATCH 1/2] fix arrow up/down bug when list is empty fixes #39 `Uncaught TypeError: Cannot read property 'ownerDocument' of undefined` --- lib/Autocomplete.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/Autocomplete.js b/lib/Autocomplete.js index fd25a96d..cdcb7fea 100644 --- a/lib/Autocomplete.js +++ b/lib/Autocomplete.js @@ -120,6 +120,7 @@ let Autocomplete = React.createClass({ keyDownHandlers: { ArrowDown (event) { event.preventDefault() + if (!this.props.items.length) return var { highlightedIndex } = this.state var index = ( highlightedIndex === null || @@ -134,6 +135,7 @@ let Autocomplete = React.createClass({ ArrowUp (event) { event.preventDefault() + if (!this.props.items.length) return var { highlightedIndex } = this.state var index = ( highlightedIndex === 0 || From f3596d50a1ff88b67b72406149ec28c58311a345 Mon Sep 17 00:00:00 2001 From: Pontus Lundin Date: Wed, 18 May 2016 08:34:01 +0200 Subject: [PATCH 2/2] use getFilteredItems --- lib/Autocomplete.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/Autocomplete.js b/lib/Autocomplete.js index cdcb7fea..cd6bdb71 100644 --- a/lib/Autocomplete.js +++ b/lib/Autocomplete.js @@ -120,11 +120,12 @@ let Autocomplete = React.createClass({ keyDownHandlers: { ArrowDown (event) { event.preventDefault() - if (!this.props.items.length) return + const itemsLength = this.getFilteredItems().length + if (!itemsLength) return var { highlightedIndex } = this.state var index = ( highlightedIndex === null || - highlightedIndex === this.getFilteredItems().length - 1 + highlightedIndex === itemsLength - 1 ) ? 0 : highlightedIndex + 1 this._performAutoCompleteOnKeyUp = true this.setState({ @@ -135,12 +136,13 @@ let Autocomplete = React.createClass({ ArrowUp (event) { event.preventDefault() - if (!this.props.items.length) return + const itemsLength = this.getFilteredItems().length + if (!itemsLength) return var { highlightedIndex } = this.state var index = ( highlightedIndex === 0 || highlightedIndex === null - ) ? this.getFilteredItems().length - 1 : highlightedIndex - 1 + ) ? itemsLength - 1 : highlightedIndex - 1 this._performAutoCompleteOnKeyUp = true this.setState({ highlightedIndex: index,