@@ -19,8 +19,6 @@ class App extends Component {
1919 state = {
2020 venues : [ ] ,
2121 query : ''
22- //openList
23- //handleItemClick: []
2422 }
2523
2624 showSettings ( event ) {
@@ -31,7 +29,6 @@ class App extends Component {
3129 //Life cycle event
3230 componentDidMount ( ) {
3331 this . getVenues ( )
34- //this.renderMap()
3532 }
3633
3734 handleStateChange ( state ) {
@@ -58,7 +55,6 @@ class App extends Component {
5855 renderMap = ( ) => {
5956 try {
6057 loadScript ( "https://maps.googleapis.com/maps/api/js?client=gme-nianticinc&callback=initMap" )
61- //window.addEventListener('touchstart', passive: true);
6258 window . initMap = this . initMap
6359 }
6460 catch ( err ) {
@@ -85,14 +81,14 @@ console.error(err)
8581 } )
8682 . catch ( error => {
8783 alert ( 'Some error occurred while retrieving the data from Foursquare. Please check console for details' )
88- //<h1>Oops, there's a problem with the API</h1>
8984 } )
9085 }
9186
9287//handleItemClick=venues;
9388
9489 initMap = ( ) => {
9590
91+ const markersArr = [ ] ;
9692 this . setState ( { handleItemClick : this . state . venues } ) ; /**/
9793 const scaledSize = new window . google . maps . Size ( 26 , 43 )
9894 const redMarker = { url : 'https://maps.gstatic.com/mapfiles/api-3/images/spotlight-poi2_hdpi.png' ,
@@ -117,7 +113,6 @@ console.error(err)
117113 //loop over our venues
118114 //dynamic markers
119115 this . state . venues . map ( myVenue => {
120-
121116 const address = myVenue . venue . location . address ?
122117 myVenue . venue . location . address : ''
123118
@@ -131,8 +126,6 @@ console.error(err)
131126 '" target="_blank">Learn More...</a>' }
132127 </strong> </p>`
133128 //<Img src=linkvar/>`
134-
135-
136129
137130 //Create markers
138131 myVenue . marker = new window . google . maps . Marker ( {
@@ -142,67 +135,54 @@ console.error(err)
142135 id : myVenue . venue . id ,
143136 scaledSize, //marker size matches default size
144137
145- //content: "<img src={`${myVenue.venue.bestPhoto.prefix}200x200`${myVenue.venue.bestPhoto.suffix}>"
146138 animation : window . google . maps . Animation . DROP
147- } )
148- myVenue . marker . isOpen = false
149-
150-
151- //window.addEventListener('touchstart', handleItemClick, true);
152-
153-
139+ } ) ;
140+ myVenue . marker . isOpen = false ;
141+ markersArr . push ( myVenue ) ;
154142
155143 //Link marker and infowindow together
156144 myVenue . marker . addListener ( 'click' , function ( ) {
157145 //Change the content
146+ infowindow . setContent ( contentString ) ;
147+ console . log ( myVenue . marker ) ;
158148
149+ markersArr . forEach ( venue => {
150+ console . log ( venue ) ;
151+ venue . isOpen = false ;
152+ venue . marker . setIcon ( redMarker ) ;
153+ } ) ;
159154
160- infowindow . setContent ( contentString )
161-
162- let icon = myVenue . marker . getIcon ( ) ;
163- /*let redMarker = {url: 'https://maps.gstatic.com/mapfiles/api-3/images/spotlight-poi2_hdpi.png',
164- scaledSize
165- }
166- let greenMarker = {
167- url: 'https://www.google.com/mapfiles/marker_green.png',
168- //scaledSize
169- }*/
170-
171- if ( ! myVenue . marker . isOpen && ( icon === undefined || icon === redMarker ) ) {
172- console . log ( myVenue . marker . isOpen )
155+ //Markers switch color when another marker is selected.
173156 myVenue . marker . isOpen = true
174- console . log ( myVenue . marker . isOpen )
157+ // console.log(myVenue.marker.isOpen)
175158 myVenue . marker . setIcon ( greenMarker ) ;
176- myVenue . marker . setZIndex ( 9999 )
177- }
178-
179- /*let icon = myVenue.marker.getIcon();
180- if (icon === undefined || icon.indexOf('marker_green')) {
181- myVenue.marker.setIcon('https://www.google.com/mapfiles/marker_green.png');
182- myVenue.marker.setZIndex(100); //This brings the marker infront of the others if selected or active
183- this.map.setZoom(13); //zooms to marker when selected
184- this.map.setCenter(myVenue.marker.position) //centers to marker when selected
185- } else {
186- myVenue.marker.setIcon('https://maps.gstatic.com/mapfiles/api-3/images/spotlight-poi2_hdpi.png');
187- }*/
159+ myVenue . marker . setZIndex ( 9999 ) ;
188160
189161 //open an infowindow
190162
191163 infowindow . open ( map , myVenue . marker ) ;
192-
193-
194-
195- } )
196-
197-
164+ } ) ;
198165
199166 return myVenue . marker ;
200- } )
201-
202-
203-
204-
205- }
167+ } ) ;
168+
169+ window . google . maps . event . addListener ( infowindow , "closeclick" , ( ) =>
170+ {
171+ this . state . venues . forEach ( venue => {
172+ venue . isOpen = false ;
173+ venue . marker . setIcon ( redMarker ) ;
174+ } ) ;
175+ } ) ;
176+
177+ window . google . maps . event . addListener ( infowindow , "click" , ( ) =>
178+ {
179+ this . state . venues . forEach ( venue => {
180+ infowindow . close ( ) ;
181+ venue . isOpen = false ;
182+ venue . marker . setIcon ( redMarker ) ;
183+ } ) ;
184+ } ) ;
185+ } ;
206186
207187//NOTES*****
208188//There seems to be undefined in one of the venues' address
@@ -282,4 +262,4 @@ function loadScript(url) {
282262
283263}
284264
285- export default App ;
265+ export default App ;
0 commit comments