diff --git a/package.json b/package.json
index 29b5613..5ed74ed 100644
--- a/package.json
+++ b/package.json
@@ -19,7 +19,7 @@
"aframe-particle-system-component": "^1.0.11",
"aframe-proxy-event-component": "^1.1.1",
"aframe-slice9-component": "^1.0.0",
- "aframe-state-component": "^5.0.0-beta2",
+ "aframe-state-component": "^5.0.0-beta3",
"aframe-super-keyboard": "2.0.2",
"algoliasearch": "^3.29.0",
"ansi-html": "0.0.7",
diff --git a/src/components/song-preview.js b/src/components/song-preview.js
index 350b18d..551dcd4 100644
--- a/src/components/song-preview.js
+++ b/src/components/song-preview.js
@@ -107,6 +107,7 @@ AFRAME.registerComponent('song-preview-system', {
const audio = preloadItem.audio;
console.log(`[song-preview] Preloading song preview ${preloadItem.challengeId}`);
audio.addEventListener('loadedmetadata', () => {
+ if (this.preloadedAudioIds.indexOf(preloadItem.challengeId) !== -1) { return; }
console.log(`[song-preview] Finished preloading song preview ${preloadItem.challengeId}`);
this.preloadedAudioIds.push(preloadItem.challengeId);
this.currentLoadingId = '';
@@ -129,7 +130,6 @@ AFRAME.registerComponent('song-preview-system', {
playSong: function (challengeId) {
if (!challengeId) { return; }
this.audio = this.audioStore[challengeId];
- this.audio.src = utils.getS3FileUrl(challengeId, 'song.ogg');
this.audio.volume = 0;
this.volumeTarget.volume = 0;
this.audio.play();
diff --git a/src/templates/menu.html b/src/templates/menu.html
index c701cae..54a0630 100644
--- a/src/templates/menu.html
+++ b/src/templates/menu.html
@@ -48,13 +48,13 @@
class="searchResultTitleActive"
mixin="textFont"
bind-item__text="value: item.shortSongName"
- bind-visible="value: menuSelectedChallenge.id === item.id"
+ bind-item__visible="menuSelectedChallenge.id === item.id"
text="align: left; color: #333; wrapCount: 28"
position="0.064 -0.091 0">
@@ -114,7 +114,7 @@
animation__mouseenter="property: components.material.material.opacity; to: 1.0; startEvents: mouseenter; pauseEvents: mouseleave; dur: 150"
animation__mouseleave="property: components.material.material.opacity; to: 0.0; startEvents: mouseleave; pauseEvents: mouseenter; dur: 150"
bind-toggle__raycastable="menu.active && !!menuSelectedChallenge.id && menuSelectedChallenge.difficulty !== '{{ difficulty }}'">
-
+
{% endraw %}