diff --git a/assets/leaderboard.js b/assets/leaderboard.js index 9aa08c7..a118167 100644 --- a/assets/leaderboard.js +++ b/assets/leaderboard.js @@ -9,33 +9,48 @@ buttons.forEach(btn => { const lbMusicBtn = document.getElementById("lbMusicBtn"); const lbAudio = document.getElementById("lbAudio"); -let isLbPlaying = true; if (lbMusicBtn && lbAudio) { - // --- TAMBAHAN: Coba play langsung saat load --- - lbAudio.play().then(() => { - // Jika browser mengizinkan, set icon jadi nyala - lbMusicBtn.innerHTML = "🔊"; - isLbPlaying = true; - }).catch(error => { - // Jika browser memblokir (Autoplay Policy), set ke mute dulu - console.log("Autoplay dicegah browser, menunggu interaksi user."); - lbMusicBtn.innerHTML = "🔇"; - isLbPlaying = false; // Ubah state jadi false biar klik berikutnya nge-play - }); - // ---------------------------------------------- + + // 1. Cek 'memori' browser (localStorage). + // Kalau belum pernah diset (null), anggap "on" (default). + const savedState = localStorage.getItem("musicState"); + let isLbPlaying = savedState === null ? true : (savedState === "on"); + // 2. Fungsi untuk Update Tampilan & Audio sesuai status + const updateMusicState = () => { + if (isLbPlaying) { + // Coba play + lbAudio.play().then(() => { + lbMusicBtn.innerHTML = "🔊"; + }).catch(error => { + console.log("Autoplay dicegah browser, perlu interaksi."); + // Kalau diblokir browser, paksa status jadi off di tampilan + lbMusicBtn.innerHTML = "🔇"; + isLbPlaying = false; + localStorage.setItem("musicState", "off"); + }); + } else { + // Pause + lbAudio.pause(); + lbMusicBtn.innerHTML = "🔇"; + } + }; + + // 3. Jalankan pengecekan awal saat halaman/filter dimuat + updateMusicState(); + + // 4. Event Listener Tombol lbMusicBtn.addEventListener("click", () => { if (isLbPlaying) { - lbAudio.pause(); - lbMusicBtn.innerHTML = "🔇"; + // User mau mematikan isLbPlaying = false; + localStorage.setItem("musicState", "off"); // Simpan ke memori "off" } else { - lbAudio.play().catch(error => { - console.log("Gagal memutar audio:", error); - }); - lbMusicBtn.innerHTML = "🔊"; + // User mau menyalakan isLbPlaying = true; + localStorage.setItem("musicState", "on"); // Simpan ke memori "on" } + updateMusicState(); // Terapkan perubahan }); } \ No newline at end of file