-
Notifications
You must be signed in to change notification settings - Fork 116
/
Copy pathusePlacesService.js
3 lines (3 loc) · 2.5 KB
/
usePlacesService.js
1
2
3
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(a){for(var b,c=1;c<arguments.length;c++)for(var d in b=arguments[c],b)Object.prototype.hasOwnProperty.call(b,d)&&(a[d]=b[d]);return a},_slicedToArray=function(){function a(a,b){var c=[],d=!0,e=!1,f=void 0;try{for(var g,h=a[Symbol.iterator]();!(d=(g=h.next()).done)&&(c.push(g.value),!(b&&c.length===b));d=!0);}catch(a){e=!0,f=a}finally{try{!d&&h["return"]&&h["return"]()}finally{if(e)throw f}}return c}return function(b,c){if(Array.isArray(b))return b;if(Symbol.iterator in Object(b))return a(b,c);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_react=require("react"),_lodash=require("lodash.debounce"),_lodash2=_interopRequireDefault(_lodash),_utils=require("./utils"),_constants=require("./constants");function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}exports.default=function(a){var b=a.apiKey,c=a.googleMapsScriptBaseUrl,d=void 0===c?_constants.GOOGLE_MAP_SCRIPT_BASE_URL:c,e=a.debounce,f=void 0===e?500:e,g=a.options,h=void 0===g?{}:g,i=d+"?key="+b+"&libraries=places",j=(0,_react.useState)([]),k=_slicedToArray(j,2),l=k[0],m=k[1],n=(0,_react.useState)(!1),o=_slicedToArray(n,2),p=o[0],q=o[1],r=(0,_react.useState)(null),s=_slicedToArray(r,2),t=s[0],u=s[1],v=(0,_react.useState)(!1),w=_slicedToArray(v,2),x=w[0],y=w[1],z=(0,_react.useState)(!1),A=_slicedToArray(z,2),B=A[0],C=A[1],D=(0,_react.useState)([]),E=_slicedToArray(D,2),F=E[0],G=E[1],H=(0,_react.useRef)(null),I=(0,_react.useCallback)(function(){return(0,_utils.loadGoogleMapScript)(d,i)},[d,i]),J=(0,_react.useCallback)((0,_lodash2.default)(function(a){H.current&&H.current.getPlacePredictions(_extends({},h,a),function(a){q(!1),m(a||[])})},f),[f]),K=(0,_react.useCallback)((0,_lodash2.default)(function(a){H.current&&H.current.getQueryPredictions(_extends({},h,a),function(a){y(!1),G(a||[])})},f),[f]);return(0,_react.useEffect)(function(){var a=function(){// eslint-disable-next-line no-undef
return google?void(// eslint-disable-next-line no-undef
H.current=new google.maps.places.AutocompleteService):console.error("Google has not been found. Make sure your provide apiKey prop.")};b?I().then(function(){return a()}):a()}),{placePredictions:t?l:[],isPlacePredictionsLoading:p,getPlacePredictions:function b(a){return a.input?(u(a.input),q(!0),void J(a)):void(u(null),m([]))},queryPredictions:B?F:[],isQueryPredictionsLoading:x,getQueryPredictions:function b(a){return a.input?(C(a.input),y(!0),void K(a)):void(C(null),G([]))}}};