@@ -68,15 +68,18 @@ class SLDSLookup extends React.Component {
6868 //=================================================
6969 // Basic Event Listeners on Input
7070 handleClose ( ) {
71- this . setState ( { isOpen :false } )
71+ this . setState ( {
72+ isOpen :false ,
73+ activeIndex :null
74+ } )
7275 }
7376
7477 handleClick ( ) {
7578 this . setState ( { isOpen :true } )
7679 }
7780
7881 handleBlur ( ) {
79- this . setState ( { isOpen : false } )
82+ this . handleClose ( ) ;
8083 }
8184
8285 handleFocus ( ) {
@@ -94,7 +97,7 @@ class SLDSLookup extends React.Component {
9497 event . keyCode === KEYS . ESCAPE ? this . handleClose ( ) : this . handleClick ( ) ;
9598
9699 //If user hits tab key, move aria activedescendant to first menu item
97- if ( event . keyCode === KEYS . TAB ) {
100+ if ( event . keyCode === KEYS . TAB && this . state . activeIndex === null ) {
98101 this . setState ( { activeIndex : 0 } ) ;
99102 EventUtil . trapImmediate ( event ) ;
100103 }
@@ -109,8 +112,10 @@ class SLDSLookup extends React.Component {
109112 this . decreaseIndex ( ) ;
110113 }
111114
112- else if ( event . keyCode === KEYS . ENTER ) {
115+ //If user hits enter/space key, select current activedescendant item
116+ else if ( event . keyCode === KEYS . ENTER || event . keyCode === KEYS . SPACE ) {
113117 EventUtil . trapImmediate ( event ) ;
118+ this . selectItem ( this . state . activeIndex ) ;
114119 }
115120 }
116121 }
@@ -158,7 +163,7 @@ class SLDSLookup extends React.Component {
158163 < label className = "slds-form-element__label" forHTML = "lookup" > { this . props . label } </ label >
159164
160165 < div className = "slds-lookup__control slds-input-has-icon slds-input-has-icon--right" >
161- { this . state . selectedIndex ? this . renderSelectedItem ( ) : null }
166+ { this . state . selectedIndex !== null ? this . renderSelectedItem ( ) : null }
162167 < InputIcon name = "search" />
163168 < input
164169 id = "lookup"
0 commit comments