diff --git a/imports/startup/server/geolocation.js b/imports/startup/server/geolocation.js
index dac9eb6..7aefe56 100644
--- a/imports/startup/server/geolocation.js
+++ b/imports/startup/server/geolocation.js
@@ -20,7 +20,7 @@ Meteor.methods({
if (isPrivateIP(clientIP)) {
clientIP = '80.58.61.250' // Some Spain IP address
}
- console.log(`Geolocating ${clientIP}`);
+ // console.log(`Geolocating ${clientIP}`);
// https://developers.google.com/web/fundamentals/primers/promises
var promise = new Promise(function(resolve, reject) {
diff --git a/imports/ui/pages/FireSubscription/FireSubscription.js b/imports/ui/pages/FireSubscription/FireSubscription.js
new file mode 100644
index 0000000..14ddfdb
--- /dev/null
+++ b/imports/ui/pages/FireSubscription/FireSubscription.js
@@ -0,0 +1,69 @@
+import React from 'react';
+import PropTypes from 'prop-types';
+import { Button, Row, Col } from 'react-bootstrap';
+import { Trans, translate } from 'react-i18next';
+import DistanceSlider from '/imports/ui/components/DistanceSlider/DistanceSlider';
+import SelectionMap from '/imports/ui/components/SelectionMap/SelectionMap';
+
+import update from 'immutability-helper';
+import { withTracker } from 'meteor/react-meteor-data';
+import getGKeys from '/imports/startup/client/gkeys';
+import SubsAutocomplete from './SubsAutocomplete';
+
+class FireSubscription extends React.Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ adddress: '',
+ init: false
+ };
+ self = this;
+ // this.handleSelect = this.handleSelect.bind(this)
+ // this.handleChange = this.handleChange.bind(this)
+ }
+
+ componentDidMount = () => {
+ self = this;
+ getGKeys(function(err, key) {
+ self.setState(update(self.state, {$merge: {init: true}}));
+ });
+ }
+
+ onAutocompleteChange = (value) => {
+ this.setState(update(this.state, {$merge: {lat: value.lat, lng: value.lng}}));
+ }
+
+ onSliderChange = (value) => {
+ this.setState(update(this.state, {$merge: {distance: value}}));
+ }
+
+ render() {
+ // https://developers.google.com/places/web-service/search
+ // https://github.com/kenny-hibino/react-places-autocomplete/blob/master/demo/Demo.js
+ let init = this.state.init
+
+ return (
+
+ { init &&
+
+
+
+
Suscríbete a alertas de fuegos
+
+
+
+
+
+
+
+
+ }
+
+
+
+
+ )
+ }
+}
+
+export default translate([], { wait: true }) (FireSubscription);
diff --git a/imports/ui/pages/FireSubscription/SubsAutocomplete.js b/imports/ui/pages/FireSubscription/SubsAutocomplete.js
new file mode 100644
index 0000000..4d17e16
--- /dev/null
+++ b/imports/ui/pages/FireSubscription/SubsAutocomplete.js
@@ -0,0 +1,96 @@
+import React from 'react';
+import { Trans, translate } from 'react-i18next';
+import PlacesAutocomplete, { geocodeByAddress, geocodeByPlaceId, getLatLng } from 'react-places-autocomplete'
+import { FormGroup, ControlLabel, HelpBlock } from 'react-bootstrap';
+
+class SubsAutocomplete extends React.Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ adddress: '',
+ }
+ }
+
+ onChange = (address) => { this.setState({ address }) }
+
+ handleSelect = (address) => {
+ const self = this;
+ geocodeByAddress(address)
+ .then((results) => getLatLng(results[0]))
+ .then(({ lat, lng }) => {
+ // console.log('Success Yay', { lat, lng })
+ // const newState = update(this.state, {$merge: {lat: lat, lng: lng}});
+ // console.log(newState);
+ // this.setState(newState);
+ self.props.onChange({lat: lat, lng: lng});
+ // console.log(this.state);
+ })
+ .catch(error => {
+ console.log(error);
+ if (error === 'ZERO_RESULTS') {
+ console.log("No results");
+ }
+ });
+ }
+
+ render() {
+ // https://www.npmjs.com/package/react-places-autocomplete
+ // https://github.com/kenny-hibino/react-places-autocomplete/issues/103
+ const myStyles = {
+ autocompleteContainer: {
+ paddingBottom: '20px',
+ backgroundSize: 'auto 12px',
+ backgroundPosition: 'bottom left 10px',
+ backgroundRepeat: 'no-repeat',
+ backgroundImage: "url('https://maps.gstatic.com/mapfiles/api-3/images/powered-by-google-on-white3_hdpi.png')",
+ },
+ }
+
+ const AutocompleteItem = ({ formattedSuggestion }) => (
+
+ {' '}
+ {formattedSuggestion.mainText}{' '}
+ {formattedSuggestion.secondaryText}
+
)
+
+ return (
+
+ )
+ }
+}
+
+
+export default translate([], { wait: true }) (SubsAutocomplete);
diff --git a/imports/ui/pages/Sandbox/Sandbox.js b/imports/ui/pages/Sandbox/Sandbox.js
index 85d2931..4c7f9e8 100644
--- a/imports/ui/pages/Sandbox/Sandbox.js
+++ b/imports/ui/pages/Sandbox/Sandbox.js
@@ -1,43 +1,18 @@
import React from 'react';
-import PropTypes from 'prop-types';
-import { FormGroup, ControlLabel, Button, Row, Col, HelpBlock } from 'react-bootstrap';
import { Trans, translate } from 'react-i18next';
import DistanceSlider from '/imports/ui/components/DistanceSlider/DistanceSlider';
import SelectionMap from '/imports/ui/components/SelectionMap/SelectionMap';
-import getGKeys from '/imports/startup/client/gkeys';
-import PlacesAutocomplete, { geocodeByAddress, geocodeByPlaceId, getLatLng } from 'react-places-autocomplete'
import update from 'immutability-helper';
-import { withTracker } from 'meteor/react-meteor-data';
+import getGKeys from '/imports/startup/client/gkeys';
+import FireSubscription from '/imports/ui/pages/FireSubscription/FireSubscription';
class Sandbox extends React.Component {
constructor(props) {
super(props);
this.state = {
- adddress: ''
+ lat: 0,
+ lng: 0
};
- self = this;
- // this.handleSelect = this.handleSelect.bind(this)
- // this.handleChange = this.handleChange.bind(this)
- }
-
- onChange = (address) => { this.setState({ address }) }
-
- handleSelect = (address) => {
- geocodeByAddress(address)
- .then((results) => getLatLng(results[0]))
- .then(({ lat, lng }) => {
- // console.log('Success Yay', { lat, lng })
- const newState = update(this.state, {$merge: {lat: lat, lng: lng}});
- // console.log(newState);
- this.setState(newState);
- // console.log(this.state);
- })
- .catch(error => {
- console.log(error);
- if (error === 'ZERO_RESULTS') {
- console.log("No results");
- }
- });
}
onSliderChange = (value) => {
@@ -45,101 +20,14 @@ class Sandbox extends React.Component {
}
render() {
- // https://www.npmjs.com/package/react-places-autocomplete
-
- // https://github.com/kenny-hibino/react-places-autocomplete/issues/103
- const myStyles = {
- autocompleteContainer: {
- paddingBottom: '20px',
- backgroundSize: 'auto 12px',
- backgroundPosition: 'bottom left 10px',
- backgroundRepeat: 'no-repeat',
- backgroundImage: "url('https://maps.gstatic.com/mapfiles/api-3/images/powered-by-google-on-white3_hdpi.png')",
- },
- }
-
- const AutocompleteItem = ({ formattedSuggestion }) => (
-
- {' '}
- {formattedSuggestion.mainText}{' '}
- {formattedSuggestion.secondaryText}
-
)
-
- // https://developers.google.com/places/web-service/search
- // https://github.com/kenny-hibino/react-places-autocomplete/blob/master/demo/Demo.js
return (
-
-
- { typeof this.props.gkey === 'string' &&
-
-
Suscríbete a alertas de fuegos
-
-
- }
-
-
-
-
-
-
-
-
-
+
+
)
}
}
-Sandbox.propTypes = {
- gkey: PropTypes.string
-}
-const gkey = new ReactiveVar();
-
-getGKeys(function(err, key) {
- if (err) {
- console.log(err);
- } else {
- gkey.set(key);
- }
-});
-
-export default translate([], { wait: true }) (withTracker(() => {
- return {
- gkey: gkey.get()
- };
-})(Sandbox));
+export default translate([], { wait: true }) (Sandbox);