Files
2025-04-24 11:44:23 +02:00

56 lines
1.8 KiB
JavaScript

// dashboard.js — toggle guest vs. user dashboard and reposition streams link
async function initDashboard() {
const uploadArea = document.querySelector('#upload-area');
const userDashboard = document.querySelector('#me-page');
const meAudio = document.querySelector('#me-audio');
const quotaBar = document.querySelector('#quota-bar');
const quotaText = document.querySelector('#quota-text');
const streamsLink = document.querySelector('#show-streams');
const registerLink = document.querySelector('#show-register');
// Default state: hide both
uploadArea.hidden = true;
userDashboard.hidden = true;
const uid = localStorage.getItem('uid');
if (!uid) {
// Guest: only upload area and move Streams next to Register
uploadArea.hidden = false;
userDashboard.hidden = true;
if (registerLink && streamsLink) {
registerLink.parentElement.insertAdjacentElement('afterend', streamsLink.parentElement);
}
return;
}
try {
const res = await fetch(`/me/${uid}`);
if (!res.ok) throw new Error('Not authorized');
const data = await res.json();
// Logged-in view
uploadArea.hidden = false;
userDashboard.hidden = false;
// Set audio source
meAudio.src = data.stream_url;
// Update quota
quotaBar.value = data.quota;
quotaText.textContent = `${data.quota} MB used`;
// Ensure Streams link remains in nav, not moved
// (No action needed if static)
} catch (e) {
console.warn('Dashboard init error, treating as guest:', e);
localStorage.removeItem('uid');
uploadArea.hidden = false;
userDashboard.hidden = true;
if (registerLink && streamsLink) {
registerLink.parentElement.insertAdjacentElement('afterend', streamsLink.parentElement);
}
}
}
document.addEventListener('DOMContentLoaded', initDashboard);