react-google-places-autocomplete
Version:
Google places autocomplete input for ReactJS.
45 lines • 2.28 kB
JavaScript
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
import React, { forwardRef, useImperativeHandle } from 'react';
import AsyncSelect from 'react-select/async';
import usePlacesService from './hooks/use-places-service';
import useFetchSuggestions from './hooks/use-fetch-suggestions';
var GooglePlacesAutocomplete = function (args, ref) {
var _a, _b, _c, _d, _e, _f, _g, _h;
var _j = usePlacesService({
apiKey: (_a = args.apiKey) !== null && _a !== void 0 ? _a : '',
apiOptions: (_b = args.apiOptions) !== null && _b !== void 0 ? _b : {},
onLoadFailed: (_c = args.onLoadFailed) !== null && _c !== void 0 ? _c : console.error,
}), placesService = _j.placesService, sessionToken = _j.sessionToken, setSessionToken = _j.setSessionToken;
var fetchSuggestions = useFetchSuggestions({
autocompletionRequest: (_d = args.autocompletionRequest) !== null && _d !== void 0 ? _d : {},
debounce: (_e = args.debounce) !== null && _e !== void 0 ? _e : 300,
minLengthAutocomplete: (_f = args.minLengthAutocomplete) !== null && _f !== void 0 ? _f : 0,
placesService: placesService,
sessionToken: sessionToken,
withSessionToken: (_g = args.withSessionToken) !== null && _g !== void 0 ? _g : false,
});
useImperativeHandle(ref, function () { return ({
getSessionToken: function () {
return sessionToken;
},
refreshSessionToken: function () {
setSessionToken(new google.maps.places.AutocompleteSessionToken());
}
}); }, [sessionToken]);
return (React.createElement(AsyncSelect, __assign({}, (_h = args.selectProps) !== null && _h !== void 0 ? _h : {}, { loadOptions: fetchSuggestions, getOptionValue: function (_a) {
var value = _a.value;
return value.place_id;
} })));
};
export default forwardRef(GooglePlacesAutocomplete);
//# sourceMappingURL=google-places-autocomplete.js.map