diff --git a/docs/source/javascripts/index.js b/docs/source/javascripts/index.js index e42c3b9bf..d365ffbb6 100644 --- a/docs/source/javascripts/index.js +++ b/docs/source/javascripts/index.js @@ -3,6 +3,22 @@ import './responsive-navigation.js'; -places({ +const placesAutocomplete = places({ container: document.querySelector('#landing-demo') -}).on('change', suggestion => console.log(suggestion)); +}); + +const events = ['change', 'suggestions', 'cursorchanged']; +events.forEach(eventName => + placesAutocomplete.on(eventName, eventData => { + if (!Array.isArray(eventData)) { + eventData = [eventData]; + } + + console.log(`Algolia Places: received event **${eventName}**`); + if (typeof console.table === 'function') { + console.table(eventData); + } else { + console.log('event data:', eventData); + } + }) +); diff --git a/src/places.js b/src/places.js index b84c125aa..87aa1aba5 100644 --- a/src/places.js +++ b/src/places.js @@ -37,7 +37,10 @@ export default function places({ const source = (query, cb) => client .search({query}) .then(({hits}) => hits.slice(0, 5).map(hitFormatter)) - .then(hits => {console.log(hits); return hits;}) + .then(suggestions => { + placesInstance.emit('suggestions', suggestions); + return suggestions; + }) .then(cb) .catch(err => console.error(err)); @@ -49,12 +52,15 @@ export default function places({ } ); - const autocompleteEvents = ['selected', 'autocompleted']; - autocompleteEvents.forEach(eventName => { + const autocompleteChangeEvents = ['selected', 'autocompleted']; + autocompleteChangeEvents.forEach(eventName => { autocompleteInstance.on(`autocomplete:${eventName}`, (_, suggestion) => { placesInstance.emit('change', suggestion); }); }); + autocompleteInstance.on('autocomplete:cursorchanged', (_, suggestion) => { + placesInstance.emit('cursorchanged', suggestion); + }); const autocompleteContainer = container.parentNode; autocompleteContainer.classList.add('algolia-places');