wix-style-react
Version:
112 lines (100 loc) • 3.43 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var GoogleMapsClient = /*#__PURE__*/function () {
function GoogleMapsClient() {
(0, _classCallCheck2["default"])(this, GoogleMapsClient);
this._autocomplete = new window.google.maps.places.AutocompleteService();
this._geocoder = new window.google.maps.Geocoder();
var map = new window.google.maps.Map(document.createElement('div'));
this._placesServices = new window.google.maps.places.PlacesService(map);
this._sessionToken = new window.google.maps.places.AutocompleteSessionToken();
}
(0, _createClass2["default"])(GoogleMapsClient, [{
key: "autocomplete",
value: function autocomplete(_ref) {
var _this = this;
var request = _ref.request;
return new Promise(function (resolve, reject) {
try {
if (_this._sessionToken) {
request.sessionToken = _this._sessionToken;
}
_this._autocomplete.getPlacePredictions(request, function (results, status) {
if (status !== window.google.maps.GeocoderStatus.OK && status !== window.google.maps.GeocoderStatus.ZERO_RESULTS) {
reject({
code: 'internal'
});
} else {
resolve(results || []);
}
});
} catch (e) {
reject({
code: 'internal',
message: e.message
});
}
});
}
}, {
key: "geocode",
value: function geocode(_ref2) {
var _this2 = this;
var request = _ref2.request;
return new Promise(function (resolve, reject) {
try {
_this2._geocoder.geocode(request, function (results, status) {
if (status !== window.google.maps.GeocoderStatus.OK && status !== window.google.maps.GeocoderStatus.ZERO_RESULTS) {
reject({
code: 'internal'
});
} else {
resolve(results || []);
}
});
} catch (e) {
reject({
code: 'internal',
message: e.message
});
}
});
}
}, {
key: "placeDetails",
value: function placeDetails(_ref3) {
var _this3 = this;
var request = _ref3.request;
return new Promise(function (resolve, reject) {
try {
if (_this3._sessionToken) {
request.sessionToken = _this3._sessionToken;
}
_this3._placesServices.getDetails(request, function (result, status) {
if (status !== window.google.maps.places.PlacesServiceStatus.OK && status !== window.google.maps.places.PlacesServiceStatus.ZERO_RESULTS) {
reject({
code: 'internal'
});
} else {
resolve(result || undefined);
}
});
} catch (e) {
reject({
code: 'internal',
message: e.message
});
}
});
}
}]);
return GoogleMapsClient;
}();
var _default = GoogleMapsClient;
exports["default"] = _default;