diff --git a/src/components/search.js b/src/components/search.js index cf9672b..b74e290 100644 --- a/src/components/search.js +++ b/src/components/search.js @@ -36,7 +36,12 @@ AFRAME.registerComponent('search', { this.queryObject.query = query; algolia.search(this.queryObject, (err, content) => { // Cache popular hits. - if (err) { console.error(err); } + if (err) { + this.el.sceneEl.emit('searcherror', null, false); + console.error(err); + return; + } + if (!query) { this.popularHits = content.hits; } this.eventDetail.results = content.hits; this.el.sceneEl.emit('searchresults', this.eventDetail); diff --git a/src/state/index.js b/src/state/index.js index 2b8be7a..56bdf5b 100644 --- a/src/state/index.js +++ b/src/state/index.js @@ -84,6 +84,7 @@ AFRAME.registerState({ search: { active: true, page: 0, + hasError: false, hasNext: false, hasPrev: false, results: [], @@ -288,6 +289,10 @@ AFRAME.registerState({ state.isSongLoading = true; }, + searcherror: (state, payload) => { + state.search.hasError = true; + }, + searchprevpage: function (state) { if (state.search.page === 0) { return; } state.search.page--; @@ -307,6 +312,7 @@ AFRAME.registerState({ */ searchresults: (state, payload) => { var i; + state.search.hasError = false; state.search.page = 0; state.search.results = payload.results; for (i = 0; i < payload.results.length; i++) { diff --git a/src/templates/menu.html b/src/templates/menu.html index 1295bc6..f80be1a 100644 --- a/src/templates/menu.html +++ b/src/templates/menu.html @@ -229,6 +229,13 @@ bind-toggle__raycastable="menuActive && !!menuSelectedChallenge.id" bind__visible="menuActive && !!menuSelectedChallenge.id"> + +