@@ -112,17 +112,17 @@ let Autocomplete = React.createClass({
112
112
debug : PropTypes . bool ,
113
113
} ,
114
114
115
- getDefaultProps ( ) {
115
+ getDefaultProps ( ) {
116
116
return {
117
117
value : '' ,
118
118
wrapperProps : { } ,
119
119
wrapperStyle : {
120
120
display : 'inline-block'
121
121
} ,
122
122
inputProps : { } ,
123
- onChange ( ) { } ,
124
- onSelect ( ) { } ,
125
- renderMenu ( items , value , style ) {
123
+ onChange ( ) { } ,
124
+ onSelect ( ) { } ,
125
+ renderMenu ( items , value , style ) {
126
126
return < div style = { { ...style , ...this . menuStyle } } children = { items } />
127
127
} ,
128
128
menuStyle : {
@@ -136,24 +136,24 @@ let Autocomplete = React.createClass({
136
136
maxHeight : '50%' , // TODO: don't cheat, let it flow to the bottom
137
137
} ,
138
138
autoHighlight : true ,
139
- onMenuVisibilityChange ( ) { } ,
139
+ onMenuVisibilityChange ( ) { } ,
140
140
}
141
141
} ,
142
142
143
- getInitialState ( ) {
143
+ getInitialState ( ) {
144
144
return {
145
145
isOpen : false ,
146
146
highlightedIndex : null ,
147
147
}
148
148
} ,
149
149
150
- componentWillMount ( ) {
150
+ componentWillMount ( ) {
151
151
this . _ignoreBlur = false
152
152
this . _performAutoCompleteOnUpdate = false
153
153
this . _performAutoCompleteOnKeyUp = false
154
154
} ,
155
155
156
- componentWillReceiveProps ( nextProps ) {
156
+ componentWillReceiveProps ( nextProps ) {
157
157
this . _performAutoCompleteOnUpdate = true
158
158
// If `items` has changed we want to reset `highlightedIndex`
159
159
// since it probably no longer refers to a relevant item
@@ -166,13 +166,13 @@ let Autocomplete = React.createClass({
166
166
}
167
167
} ,
168
168
169
- componentDidMount ( ) {
169
+ componentDidMount ( ) {
170
170
if ( this . isOpen ( ) ) {
171
171
this . setMenuPositions ( )
172
172
}
173
173
} ,
174
174
175
- componentDidUpdate ( prevProps , prevState ) {
175
+ componentDidUpdate ( prevProps , prevState ) {
176
176
if ( ( this . state . isOpen && ! prevState . isOpen ) || ( 'open' in this . props && this . props . open && ! prevProps . open ) )
177
177
this . setMenuPositions ( )
178
178
@@ -187,7 +187,7 @@ let Autocomplete = React.createClass({
187
187
}
188
188
} ,
189
189
190
- maybeScrollItemIntoView ( ) {
190
+ maybeScrollItemIntoView ( ) {
191
191
if ( this . isOpen ( ) && this . state . highlightedIndex !== null ) {
192
192
const itemNode = this . refs [ `item-${ this . state . highlightedIndex } ` ]
193
193
const menuNode = this . refs . menu
@@ -201,7 +201,7 @@ let Autocomplete = React.createClass({
201
201
}
202
202
} ,
203
203
204
- handleKeyDown ( event ) {
204
+ handleKeyDown ( event ) {
205
205
if ( this . keyDownHandlers [ event . key ] )
206
206
this . keyDownHandlers [ event . key ] . call ( this , event )
207
207
else {
@@ -212,20 +212,20 @@ let Autocomplete = React.createClass({
212
212
}
213
213
} ,
214
214
215
- handleChange ( event ) {
215
+ handleChange ( event ) {
216
216
this . _performAutoCompleteOnKeyUp = true
217
217
this . props . onChange ( event , event . target . value )
218
218
} ,
219
219
220
- handleKeyUp ( ) {
220
+ handleKeyUp ( ) {
221
221
if ( this . _performAutoCompleteOnKeyUp ) {
222
222
this . _performAutoCompleteOnKeyUp = false
223
223
this . maybeAutoCompleteText ( )
224
224
}
225
225
} ,
226
226
227
227
keyDownHandlers : {
228
- ArrowDown ( event ) {
228
+ ArrowDown ( event ) {
229
229
event . preventDefault ( )
230
230
const itemsLength = this . getFilteredItems ( ) . length
231
231
if ( ! itemsLength ) return
@@ -241,7 +241,7 @@ let Autocomplete = React.createClass({
241
241
} )
242
242
} ,
243
243
244
- ArrowUp ( event ) {
244
+ ArrowUp ( event ) {
245
245
event . preventDefault ( )
246
246
const itemsLength = this . getFilteredItems ( ) . length
247
247
if ( ! itemsLength ) return
@@ -257,7 +257,7 @@ let Autocomplete = React.createClass({
257
257
} )
258
258
} ,
259
259
260
- Enter ( event ) {
260
+ Enter ( event ) {
261
261
if ( ! this . isOpen ( ) ) {
262
262
// menu is closed so there is no selection to accept -> do nothing
263
263
return
@@ -289,15 +289,15 @@ let Autocomplete = React.createClass({
289
289
}
290
290
} ,
291
291
292
- Escape ( ) {
292
+ Escape ( ) {
293
293
this . setState ( {
294
294
highlightedIndex : null ,
295
295
isOpen : false
296
296
} )
297
297
}
298
298
} ,
299
299
300
- getFilteredItems ( ) {
300
+ getFilteredItems ( ) {
301
301
let items = this . props . items
302
302
303
303
if ( this . props . shouldItemRender ) {
@@ -315,7 +315,7 @@ let Autocomplete = React.createClass({
315
315
return items
316
316
} ,
317
317
318
- maybeAutoCompleteText ( ) {
318
+ maybeAutoCompleteText ( ) {
319
319
if ( ! this . props . autoHighlight || this . props . value === '' )
320
320
return
321
321
const { highlightedIndex } = this . state
@@ -332,7 +332,7 @@ let Autocomplete = React.createClass({
332
332
this . setState ( { highlightedIndex : 0 } )
333
333
} ,
334
334
335
- setMenuPositions ( ) {
335
+ setMenuPositions ( ) {
336
336
const node = this . refs . input
337
337
const rect = node . getBoundingClientRect ( )
338
338
const computedStyle = global . window . getComputedStyle ( node )
@@ -346,11 +346,11 @@ let Autocomplete = React.createClass({
346
346
} )
347
347
} ,
348
348
349
- highlightItemFromMouse ( index ) {
349
+ highlightItemFromMouse ( index ) {
350
350
this . setState ( { highlightedIndex : index } )
351
351
} ,
352
352
353
- selectItemFromMouse ( item ) {
353
+ selectItemFromMouse ( item ) {
354
354
const value = this . props . getItemValue ( item )
355
355
this . setState ( {
356
356
isOpen : false ,
@@ -361,11 +361,11 @@ let Autocomplete = React.createClass({
361
361
} )
362
362
} ,
363
363
364
- setIgnoreBlur ( ignore ) {
364
+ setIgnoreBlur ( ignore ) {
365
365
this . _ignoreBlur = ignore
366
366
} ,
367
367
368
- renderMenu ( ) {
368
+ renderMenu ( ) {
369
369
const items = this . getFilteredItems ( ) . map ( ( item , index ) => {
370
370
const element = this . props . renderItem (
371
371
item ,
@@ -388,7 +388,7 @@ let Autocomplete = React.createClass({
388
388
return React . cloneElement ( menu , { ref : 'menu' } )
389
389
} ,
390
390
391
- handleInputBlur ( ) {
391
+ handleInputBlur ( ) {
392
392
if ( this . _ignoreBlur )
393
393
return
394
394
this . setState ( {
@@ -397,7 +397,7 @@ let Autocomplete = React.createClass({
397
397
} )
398
398
} ,
399
399
400
- handleInputFocus ( ) {
400
+ handleInputFocus ( ) {
401
401
if ( this . _ignoreBlur ) {
402
402
this . setIgnoreBlur ( false )
403
403
return
@@ -410,12 +410,12 @@ let Autocomplete = React.createClass({
410
410
this . setState ( { isOpen : true } )
411
411
} ,
412
412
413
- isInputFocused ( ) {
413
+ isInputFocused ( ) {
414
414
const el = this . refs . input
415
415
return el . ownerDocument && ( el === el . ownerDocument . activeElement )
416
416
} ,
417
417
418
- handleInputClick ( ) {
418
+ handleInputClick ( ) {
419
419
// Input will not be focused if it's disabled
420
420
if ( this . isInputFocused ( ) && ! this . isOpen ( ) )
421
421
this . setState ( { isOpen : true } )
@@ -424,17 +424,17 @@ let Autocomplete = React.createClass({
424
424
this . _ignoreClick = false
425
425
} ,
426
426
427
- composeEventHandlers ( internal , external ) {
427
+ composeEventHandlers ( internal , external ) {
428
428
return external
429
429
? e => { internal ( e ) ; external ( e ) }
430
430
: internal
431
431
} ,
432
432
433
- isOpen ( ) {
433
+ isOpen ( ) {
434
434
return 'open' in this . props ? this . props . open : this . state . isOpen
435
435
} ,
436
436
437
- render ( ) {
437
+ render ( ) {
438
438
if ( this . props . debug ) { // you don't like it, you love it
439
439
_debugStates . push ( {
440
440
id : _debugStates . length ,
0 commit comments