Make search work

This commit is contained in:
Edin Dazdarevic
2016-11-12 01:11:39 +01:00
parent ec1119076c
commit 17340910d6
3 changed files with 52 additions and 2 deletions

View File

@@ -1,6 +1,7 @@
import React from 'react';
import Filters from './Filters';
import Listings from './Listings';
import { pacSelectFirst } from '../helpers/googleMaps';
class Main extends React.Component {
constructor(props) {
@@ -28,13 +29,29 @@ class Main extends React.Component {
control.style = "top: 200px;"
var input = document.getElementById('gmaps-places-input');
pacSelectFirst(input);
var options = {
componentRestrictions: {country: "BA"}
};
var searchBox = new google.maps.places.Autocomplete(input, options);
searchBox.addListener('places_changed', function() {
console.log('search changed', searchBox.getPlaces());
searchBox.addListener('place_changed', function() {
var place = searchBox.getPlace();
if (!place.geometry) {
return;
}
if (place.geometry.viewport) {
map.fitBounds(place.geometry.viewport);
} else {
map.setCenter(place.geometry.location);
map.setZoom(18);
}
});
control.addEventListener('click', (e) => {
this.setState({
mapClicked: true

4
web/dist/index.html vendored
View File

@@ -14,6 +14,10 @@
</div>
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBBghY4-1wa7jETxDbyDdcGL731ZtOxpkA&libraries=places">
</script>
<script
src="https://code.jquery.com/jquery-3.1.1.min.js"
integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="
crossorigin="anonymous"></script>
<script type="text/javascript" src="app.bundle.js"></script>
</div>
</body>

29
web/helpers/googleMaps.js Normal file
View File

@@ -0,0 +1,29 @@
export const pacSelectFirst = (input) => {
// store the original event binding function
var _addEventListener = (input.addEventListener) ? input.addEventListener : input.attachEvent;
function addEventListenerWrapper(type, listener) {
// Simulate a 'down arrow' keypress on hitting 'return' when no pac suggestion is selected,
// and then trigger the original listener.
if (type == "keydown") {
var orig_listener = listener;
listener = function(event) {
var suggestion_selected = $(".pac-item-selected").length > 0;
if (event.which == 13 && !suggestion_selected) {
var simulated_downarrow = $.Event("keydown", {
keyCode: 40,
which: 40
});
orig_listener.apply(input, [simulated_downarrow]);
}
orig_listener.apply(input, [event]);
};
}
_addEventListener.apply(input, [type, listener]);
}
input.addEventListener = addEventListenerWrapper;
input.attachEvent = addEventListenerWrapper;
}