blastoise-archive/public/init.js

48 lines
1.2 KiB
JavaScript

// MusicRoom - Init module
// Application initialization sequence
(function() {
const M = window.MusicRoom;
// Fetch server status/config
async function loadServerStatus() {
try {
const res = await fetch("/api/status");
M.serverStatus = await res.json();
console.log("Server status:", M.serverStatus);
} catch (e) {
console.warn("Failed to load server status");
M.serverStatus = null;
}
}
// Initialize track storage
async function initStorage() {
await TrackStorage.init();
await M.updateCacheStatus();
console.log(`TrackStorage: ${M.cachedTracks.size} tracks cached`);
}
// Setup history panel handlers
document.addEventListener("DOMContentLoaded", () => {
const btnHistory = M.$("#btn-history");
const btnClose = M.$("#btn-close-history");
if (btnHistory) {
btnHistory.onclick = () => M.toggleToastHistory();
}
if (btnClose) {
btnClose.onclick = () => M.toggleToastHistory();
}
});
// Initialize the application
Promise.all([initStorage(), loadServerStatus()]).then(async () => {
await M.loadLibrary();
await M.loadCurrentUser();
if (M.currentUser) {
M.loadChannels();
}
});
})();