1
1
! function ( e ) { if ( "object" == typeof exports && "undefined" != typeof module ) module . exports = e ( ) ; else if ( "function" == typeof define && define . amd ) define ( [ ] , e ) ; else { var f ; "undefined" != typeof window ?f = window :"undefined" != typeof global ?f = global :"undefined" != typeof self && ( f = self ) , f . Geosuggest = e ( ) } } ( function ( ) { var define , module , exports ; return ( function e ( t , n , r ) { function s ( o , u ) { if ( ! n [ o ] ) { if ( ! t [ o ] ) { var a = typeof require == "function" && require ; if ( ! u && a ) return a ( o , ! 0 ) ; if ( i ) return i ( o , ! 0 ) ; var f = new Error ( "Cannot find module '" + o + "'" ) ; throw f . code = "MODULE_NOT_FOUND" , f } var l = n [ o ] = { exports :{ } } ; t [ o ] [ 0 ] . call ( l . exports , function ( e ) { var n = t [ o ] [ 1 ] [ e ] ; return s ( n ?n :e ) } , l , l . exports , e , t , n , r ) } return n [ o ] . exports } var i = typeof require == "function" && require ; for ( var o = 0 ; o < r . length ; o ++ ) s ( r [ o ] ) ; return s } ) ( { 1 :[ function ( require , module , exports ) {
2
2
( function ( global ) {
3
+ /* global google */
4
+
3
5
var React = ( typeof window !== "undefined" ? window . React : typeof global !== "undefined" ? global . React : null ) ,
4
- GeosuggestItem = require ( './GeosuggestItem.jsx' ) ;
6
+ GeosuggestItem = require ( './GeosuggestItem.jsx' ) ; // eslint-disable-line
5
7
6
8
var Geosuggest = React . createClass ( { displayName : "Geosuggest" ,
7
9
/**
@@ -14,7 +16,8 @@ var Geosuggest = React.createClass({displayName: "Geosuggest",
14
16
placeholder : 'Search places' ,
15
17
onSuggestSelect : function ( ) { } ,
16
18
location : null ,
17
- radius : 0
19
+ radius : 0 ,
20
+ googleMaps : google && google . maps
18
21
} ;
19
22
} ,
20
23
@@ -28,8 +31,9 @@ var Geosuggest = React.createClass({displayName: "Geosuggest",
28
31
userInput : '' ,
29
32
activeSuggest : null ,
30
33
suggests : [ ] ,
31
- geocoder : new google . maps . Geocoder ( ) ,
32
- autocompleteService : new google . maps . places . AutocompleteService ( )
34
+ geocoder : new this . props . googleMaps . Geocoder ( ) ,
35
+ autocompleteService : new this . props . googleMaps . places
36
+ . AutocompleteService ( )
33
37
} ;
34
38
} ,
35
39
@@ -51,7 +55,7 @@ var Geosuggest = React.createClass({displayName: "Geosuggest",
51
55
52
56
this . state . autocompleteService . getPlacePredictions ( {
53
57
input : userInput ,
54
- location : this . props . location || new google . maps . LatLng ( 0 , 0 ) ,
58
+ location : this . props . location || new this . props . googleMaps . LatLng ( 0 , 0 ) ,
55
59
radius : this . props . radius
56
60
} , function ( suggestsGoogle ) {
57
61
this . updateSuggests ( suggestsGoogle ) ;
@@ -68,41 +72,38 @@ var Geosuggest = React.createClass({displayName: "Geosuggest",
68
72
}
69
73
70
74
var suggests = [ ] ,
71
- regex = new RegExp ( this . state . userInput , 'gim' ) ,
72
- suggestItems ;
75
+ regex = new RegExp ( this . state . userInput , 'gim' ) ;
73
76
74
77
this . props . fixtures . forEach ( function ( suggest ) {
75
78
if ( suggest . label . match ( regex ) ) {
76
79
suggest . placeId = suggest . label ;
77
80
suggests . push ( suggest ) ;
78
81
}
79
- } . bind ( this ) ) ;
82
+ } ) ;
80
83
81
84
suggestsGoogle . forEach ( function ( suggest ) {
82
85
suggests . push ( {
83
86
label : suggest . description ,
84
87
placeId : suggest . place_id
85
88
} ) ;
86
- } . bind ( this ) ) ;
89
+ } ) ;
87
90
88
91
this . setState ( { suggests : suggests } ) ;
89
92
} ,
90
93
91
94
/**
92
95
* When the input gets focused
93
- * @param {Event } event The focus event
94
96
*/
95
- showSuggests : function ( event ) {
97
+ showSuggests : function ( ) {
96
98
this . updateSuggests ( ) ;
97
99
98
100
this . setState ( { isSuggestsHidden : false } ) ;
99
101
} ,
100
102
101
103
/**
102
104
* When the input loses focused
103
- * @param {Event } event The focus event
104
105
*/
105
- hideSuggests : function ( event ) {
106
+ hideSuggests : function ( ) {
106
107
setTimeout ( function ( ) {
107
108
this . setState ( { isSuggestsHidden : true } ) ;
108
109
} . bind ( this ) , 100 ) ;
@@ -131,6 +132,8 @@ var Geosuggest = React.createClass({displayName: "Geosuggest",
131
132
case 27 : // ESC
132
133
this . hideSuggests ( ) ;
133
134
break ;
135
+ default :
136
+ break ;
134
137
}
135
138
} ,
136
139
@@ -140,7 +143,7 @@ var Geosuggest = React.createClass({displayName: "Geosuggest",
140
143
*/
141
144
activateSuggest : function ( direction ) {
142
145
var suggestsCount = this . state . suggests . length - 1 ,
143
- next = direction === ( 'next' ) ,
146
+ next = direction === 'next' ,
144
147
newActiveSuggest = null ,
145
148
newIndex = 0 ,
146
149
i = 0 ;
@@ -194,7 +197,7 @@ var Geosuggest = React.createClass({displayName: "Geosuggest",
194
197
this . state . geocoder . geocode (
195
198
{ address : suggest . label } ,
196
199
function ( results , status ) {
197
- if ( status !== google . maps . GeocoderStatus . OK ) {
200
+ if ( status !== this . props . googleMaps . GeocoderStatus . OK ) {
198
201
return ;
199
202
}
200
203
@@ -214,9 +217,10 @@ var Geosuggest = React.createClass({displayName: "Geosuggest",
214
217
215
218
/**
216
219
* Render the view
220
+ * @return {Function } The React element to render
217
221
*/
218
222
render : function ( ) {
219
- return (
223
+ return ( // eslint-disable-line no-extra-parens
220
224
React . createElement ( "div" , { className : "geosuggest" , onClick : this . onClick } ,
221
225
React . createElement ( "input" , {
222
226
className : "geosuggest__input" ,
@@ -241,10 +245,10 @@ var Geosuggest = React.createClass({displayName: "Geosuggest",
241
245
*/
242
246
getSuggestItems : function ( ) {
243
247
return this . state . suggests . map ( function ( suggest ) {
244
- var isActive = ( this . state . activeSuggest &&
245
- suggest . placeId === this . state . activeSuggest . placeId ) ;
248
+ var isActive = this . state . activeSuggest &&
249
+ suggest . placeId === this . state . activeSuggest . placeId ;
246
250
247
- return (
251
+ return ( // eslint-disable-line no-extra-parens
248
252
React . createElement ( GeosuggestItem , {
249
253
key : suggest . placeId ,
250
254
suggest : suggest ,
@@ -259,7 +263,7 @@ var Geosuggest = React.createClass({displayName: "Geosuggest",
259
263
* @return {String } The classes
260
264
*/
261
265
getSuggestsClasses : function ( ) {
262
- var classes = 'geosuggest__suggests'
266
+ var classes = 'geosuggest__suggests' ;
263
267
264
268
classes += this . state . isSuggestsHidden ?
265
269
' geosuggest__suggests--hidden' : '' ;
@@ -302,9 +306,10 @@ var GeosuggestItem = React.createClass({displayName: "GeosuggestItem",
302
306
303
307
/**
304
308
* Render the view
309
+ * @return {Function } The React element to render
305
310
*/
306
311
render : function ( ) {
307
- return (
312
+ return ( // eslint-disable-line no-extra-parens
308
313
React . createElement ( "li" , { className : this . getSuggestClasses ( ) ,
309
314
onClick : this . onClick } ,
310
315
this . props . suggest . label
0 commit comments