/* global instantsearch, algoliasearch, CONFIG */
window.addEventListener('DOMContentLoaded', () => {
const algoliaSettings = CONFIG.algolia;
const { indexName, appID, apiKey } = algoliaSettings;
let search = instantsearch({
indexName,
searchClient : algoliasearch(appID, apiKey),
searchFunction: helper => {
let searchInput = document.querySelector('.search-input');
if (searchInput.value) {
helper.search();
}
}
});
window.pjax && search.on('render', () => {
window.pjax.refresh(document.getElementById('algolia-hits'));
});
// Registering Widgets
search.addWidgets([
instantsearch.widgets.configure({
hitsPerPage: algoliaSettings.hits.per_page || 10
}),
instantsearch.widgets.searchBox({
container : '.search-input-container',
placeholder : algoliaSettings.labels.input_placeholder,
// Hide default icons of algolia search
showReset : false,
showSubmit : false,
showLoadingIndicator: false,
cssClasses : {
input: 'search-input'
}
}),
instantsearch.widgets.stats({
container: '#algolia-stats',
templates: {
text: data => {
let stats = algoliaSettings.labels.hits_stats
.replace(/\$\{hits}/, data.nbHits)
.replace(/\$\{time}/, data.processingTimeMS);
return `${stats}