react-google-autocomplete
Version:
React component for google autocomplete.
36 lines (27 loc) • 1 kB
JavaScript
export const isBrowser = typeof window !== "undefined" && window.document;
export const loadGoogleMapScript = (
googleMapsScriptBaseUrl,
googleMapsScriptUrl
) => {
if (!isBrowser) return Promise.resolve();
if (typeof google !== "undefined") {
if (google.maps && google.maps.api) return Promise.resolve();
}
const scriptElements = document.querySelectorAll(
`script[src*="${googleMapsScriptBaseUrl}"`
);
if (scriptElements && scriptElements.length) {
return new Promise((resolve) => {
// in case we already have a script on the page and it's loaded we resolve
if (typeof google !== "undefined") return resolve();
// otherwise we wait until it's loaded and resolve
scriptElements[0].addEventListener("load", () => resolve());
});
}
const el = document.createElement("script");
el.src = googleMapsScriptUrl;
document.body.appendChild(el);
return new Promise((resolve) => {
el.addEventListener("load", () => resolve());
});
};