Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 38 additions & 35 deletions dist/samples/place-autocomplete-data-session/app/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,50 +5,55 @@
*/

// [START maps_place_autocomplete_data_session]
let title;
let results;
let input;
let token;
let titleElement;
let resultsContainerElement;
let inputElement;

let newestRequestId = 0;

// Add an initial request body.
let request = {
input: "",
const request = {
input: '',
locationRestriction: { west: -122.44, north: 37.8, east: -122.39, south: 37.78 },
origin: { lat: 37.7893, lng: -122.4039 },
includedPrimaryTypes: ["restaurant"],
language: "en-US",
region: "us",
includedPrimaryTypes: ['restaurant'],
language: 'en-US',
region: 'us',
};

async function init() {
token = new google.maps.places.AutocompleteSessionToken();

title = document.getElementById('title');
results = document.getElementById('results');
input = document.querySelector("input");
input.addEventListener("input", makeAcRequest);
request = refreshToken(request) as any;
function init() {
titleElement = document.getElementById('title');
resultsContainerElement = document.getElementById('results');
inputElement = document.querySelector('input');
inputElement.addEventListener('input', makeAutocompleteRequest);
refreshToken(request);
}

async function makeAcRequest(input) {
async function makeAutocompleteRequest(inputEvent) {
// Reset elements and exit if an empty string is received.
if (input.target.value == '') {
title.innerText = '';
results.replaceChildren();
if (inputEvent.target.value == '') {
titleElement.innerText = '';
resultsContainerElement.replaceChildren();
return;
}

// Add the latest char sequence to the request.
request.input = input.target.value;
request.input = inputEvent.target.value;

// To avoid race conditions, store the request ID and compare after the request.
const requestId = ++newestRequestId;

// Fetch autocomplete suggestions and show them in a list.
// @ts-ignore
const { suggestions } = await google.maps.places.AutocompleteSuggestion.fetchAutocompleteSuggestions(request);

title.innerText = 'Query predictions for "' + request.input + '"';
// If the request has been superseded by a newer request, do not render the output.
if (requestId !== newestRequestId) return;

titleElement.innerText = `Query predictions for "${request.input}"`;

// Clear the list first.
results.replaceChildren();
resultsContainerElement.replaceChildren();

for (const suggestion of suggestions) {
const placePrediction = suggestion.placePrediction;
Expand All @@ -60,10 +65,10 @@ async function makeAcRequest(input) {
});
a.innerText = placePrediction!.text.toString();

// Create a new list element.
// Create a new list item element.
const li = document.createElement('li');
li.appendChild(a);
results.appendChild(li);
resultsContainerElement.appendChild(li);
}
}

Expand All @@ -72,19 +77,17 @@ async function onPlaceSelected(place) {
await place.fetchFields({
fields: ['displayName', 'formattedAddress'],
});
let placeText = document.createTextNode(place.displayName + ': ' + place.formattedAddress);
results.replaceChildren(placeText);
title.innerText = 'Selected Place:';
input.value = '';
const placeText = document.createTextNode(`${place.displayName}: ${place.formattedAddress}`);
resultsContainerElement.replaceChildren(placeText);
titleElement.innerText = 'Selected Place:';
inputElement.value = '';
refreshToken(request);
}

// Helper function to refresh the session token.
async function refreshToken(request) {
function refreshToken(request) {
// Create a new session token and add it to the request.
token = new google.maps.places.AutocompleteSessionToken();
request.sessionToken = token;
return request;
request.sessionToken = new google.maps.places.AutocompleteSessionToken();
}

declare global {
Expand All @@ -94,4 +97,4 @@ declare global {
}
window.init = init;
// [END maps_place_autocomplete_data_session]
export { };
export { };

This file was deleted.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<head>
<title>Place Autocomplete Data API Session</title>

<script type="module" crossorigin src="./assets/index-BXlaTN0b.js"></script>
<script type="module" crossorigin src="./assets/index-JVaZg7ij.js"></script>
<link rel="stylesheet" crossorigin href="./assets/index-Qxu13WYE.css">
</head>
<body>
Expand Down
68 changes: 35 additions & 33 deletions dist/samples/place-autocomplete-data-session/docs/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,42 +4,46 @@
* SPDX-License-Identifier: Apache-2.0
*/
// [START maps_place_autocomplete_data_session]
let title;
let results;
let input;
let token;
let titleElement;
let resultsContainerElement;
let inputElement;
let newestRequestId = 0;
// Add an initial request body.
let request = {
input: "",
const request = {
input: '',
locationRestriction: { west: -122.44, north: 37.8, east: -122.39, south: 37.78 },
origin: { lat: 37.7893, lng: -122.4039 },
includedPrimaryTypes: ["restaurant"],
language: "en-US",
region: "us",
includedPrimaryTypes: ['restaurant'],
language: 'en-US',
region: 'us',
};
async function init() {
token = new google.maps.places.AutocompleteSessionToken();
title = document.getElementById('title');
results = document.getElementById('results');
input = document.querySelector("input");
input.addEventListener("input", makeAcRequest);
request = refreshToken(request);
function init() {
titleElement = document.getElementById('title');
resultsContainerElement = document.getElementById('results');
inputElement = document.querySelector('input');
inputElement.addEventListener('input', makeAutocompleteRequest);
refreshToken(request);
}
async function makeAcRequest(input) {
async function makeAutocompleteRequest(inputEvent) {
// Reset elements and exit if an empty string is received.
if (input.target.value == '') {
title.innerText = '';
results.replaceChildren();
if (inputEvent.target.value == '') {
titleElement.innerText = '';
resultsContainerElement.replaceChildren();
return;
}
// Add the latest char sequence to the request.
request.input = input.target.value;
request.input = inputEvent.target.value;
// To avoid race conditions, store the request ID and compare after the request.
const requestId = ++newestRequestId;
// Fetch autocomplete suggestions and show them in a list.
// @ts-ignore
const { suggestions } = await google.maps.places.AutocompleteSuggestion.fetchAutocompleteSuggestions(request);
title.innerText = 'Query predictions for "' + request.input + '"';
// If the request has been superseded by a newer request, do not render the output.
if (requestId !== newestRequestId)
return;
titleElement.innerText = `Query predictions for "${request.input}"`;
// Clear the list first.
results.replaceChildren();
resultsContainerElement.replaceChildren();
for (const suggestion of suggestions) {
const placePrediction = suggestion.placePrediction;
// Create a link for the place, add an event handler to fetch the place.
Expand All @@ -48,29 +52,27 @@ async function makeAcRequest(input) {
onPlaceSelected(placePrediction.toPlace());
});
a.innerText = placePrediction.text.toString();
// Create a new list element.
// Create a new list item element.
const li = document.createElement('li');
li.appendChild(a);
results.appendChild(li);
resultsContainerElement.appendChild(li);
}
}
// Event handler for clicking on a suggested place.
async function onPlaceSelected(place) {
await place.fetchFields({
fields: ['displayName', 'formattedAddress'],
});
let placeText = document.createTextNode(place.displayName + ': ' + place.formattedAddress);
results.replaceChildren(placeText);
title.innerText = 'Selected Place:';
input.value = '';
const placeText = document.createTextNode(`${place.displayName}: ${place.formattedAddress}`);
resultsContainerElement.replaceChildren(placeText);
titleElement.innerText = 'Selected Place:';
inputElement.value = '';
refreshToken(request);
}
// Helper function to refresh the session token.
async function refreshToken(request) {
function refreshToken(request) {
// Create a new session token and add it to the request.
token = new google.maps.places.AutocompleteSessionToken();
request.sessionToken = token;
return request;
request.sessionToken = new google.maps.places.AutocompleteSessionToken();
}
window.init = init;
export {};
73 changes: 38 additions & 35 deletions dist/samples/place-autocomplete-data-session/docs/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,50 +5,55 @@
*/

// [START maps_place_autocomplete_data_session]
let title;
let results;
let input;
let token;
let titleElement;
let resultsContainerElement;
let inputElement;

let newestRequestId = 0;

// Add an initial request body.
let request = {
input: "",
const request = {
input: '',
locationRestriction: { west: -122.44, north: 37.8, east: -122.39, south: 37.78 },
origin: { lat: 37.7893, lng: -122.4039 },
includedPrimaryTypes: ["restaurant"],
language: "en-US",
region: "us",
includedPrimaryTypes: ['restaurant'],
language: 'en-US',
region: 'us',
};

async function init() {
token = new google.maps.places.AutocompleteSessionToken();

title = document.getElementById('title');
results = document.getElementById('results');
input = document.querySelector("input");
input.addEventListener("input", makeAcRequest);
request = refreshToken(request) as any;
function init() {
titleElement = document.getElementById('title');
resultsContainerElement = document.getElementById('results');
inputElement = document.querySelector('input');
inputElement.addEventListener('input', makeAutocompleteRequest);
refreshToken(request);
}

async function makeAcRequest(input) {
async function makeAutocompleteRequest(inputEvent) {
// Reset elements and exit if an empty string is received.
if (input.target.value == '') {
title.innerText = '';
results.replaceChildren();
if (inputEvent.target.value == '') {
titleElement.innerText = '';
resultsContainerElement.replaceChildren();
return;
}

// Add the latest char sequence to the request.
request.input = input.target.value;
request.input = inputEvent.target.value;

// To avoid race conditions, store the request ID and compare after the request.
const requestId = ++newestRequestId;

// Fetch autocomplete suggestions and show them in a list.
// @ts-ignore
const { suggestions } = await google.maps.places.AutocompleteSuggestion.fetchAutocompleteSuggestions(request);

title.innerText = 'Query predictions for "' + request.input + '"';
// If the request has been superseded by a newer request, do not render the output.
if (requestId !== newestRequestId) return;

titleElement.innerText = `Query predictions for "${request.input}"`;

// Clear the list first.
results.replaceChildren();
resultsContainerElement.replaceChildren();

for (const suggestion of suggestions) {
const placePrediction = suggestion.placePrediction;
Expand All @@ -60,10 +65,10 @@ async function makeAcRequest(input) {
});
a.innerText = placePrediction!.text.toString();

// Create a new list element.
// Create a new list item element.
const li = document.createElement('li');
li.appendChild(a);
results.appendChild(li);
resultsContainerElement.appendChild(li);
}
}

Expand All @@ -72,19 +77,17 @@ async function onPlaceSelected(place) {
await place.fetchFields({
fields: ['displayName', 'formattedAddress'],
});
let placeText = document.createTextNode(place.displayName + ': ' + place.formattedAddress);
results.replaceChildren(placeText);
title.innerText = 'Selected Place:';
input.value = '';
const placeText = document.createTextNode(`${place.displayName}: ${place.formattedAddress}`);
resultsContainerElement.replaceChildren(placeText);
titleElement.innerText = 'Selected Place:';
inputElement.value = '';
refreshToken(request);
}

// Helper function to refresh the session token.
async function refreshToken(request) {
function refreshToken(request) {
// Create a new session token and add it to the request.
token = new google.maps.places.AutocompleteSessionToken();
request.sessionToken = token;
return request;
request.sessionToken = new google.maps.places.AutocompleteSessionToken();
}

declare global {
Expand All @@ -94,4 +97,4 @@ declare global {
}
window.init = init;
// [END maps_place_autocomplete_data_session]
export { };
export { };
Loading