2026-05-12 23:58:18 +00:00
|
|
|
document.addEventListener('DOMContentLoaded', () => {
|
|
|
|
|
checkAuthStatus();
|
|
|
|
|
initLogoutListener();
|
2026-06-02 04:02:39 +00:00
|
|
|
initNavToggle();
|
2026-05-12 23:58:18 +00:00
|
|
|
});
|
|
|
|
|
|
2026-06-02 04:02:39 +00:00
|
|
|
function initNavToggle() {
|
|
|
|
|
const navToggle = document.getElementById('nav-toggle');
|
|
|
|
|
const navLinks = document.getElementById('nav-links');
|
|
|
|
|
if (navToggle && navLinks) {
|
|
|
|
|
navToggle.addEventListener('click', () => {
|
|
|
|
|
navLinks.classList.toggle('active');
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-05-12 23:58:18 +00:00
|
|
|
async function checkAuthStatus() {
|
|
|
|
|
try {
|
|
|
|
|
const res = await fetch('/auth/me');
|
|
|
|
|
const data = await res.json();
|
|
|
|
|
updateAuthUI(data.authenticated);
|
|
|
|
|
} catch (err) {
|
|
|
|
|
console.error("Auth check failed", err);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function initLogoutListener() {
|
|
|
|
|
const logoutLink = document.getElementById('link-logout');
|
|
|
|
|
if (logoutLink) {
|
|
|
|
|
logoutLink.addEventListener('click', async (e) => {
|
|
|
|
|
e.preventDefault();
|
|
|
|
|
try {
|
2026-10-06 19:24:25 +00:00
|
|
|
if (window.SpotCrypto) window.SpotCrypto.clearSession();
|
2026-05-12 23:58:18 +00:00
|
|
|
await fetch('/auth/logout', { method: 'POST' });
|
|
|
|
|
window.location.reload();
|
|
|
|
|
} catch (err) {
|
|
|
|
|
console.error("Logout failed", err);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function updateAuthUI(isLoggedIn) {
|
|
|
|
|
const loginLink = document.getElementById('link-login');
|
|
|
|
|
const logoutLink = document.getElementById('link-logout');
|
|
|
|
|
|
|
|
|
|
if (isLoggedIn) {
|
|
|
|
|
if (loginLink) loginLink.style.display = 'none';
|
|
|
|
|
if (logoutLink) logoutLink.style.display = 'inline';
|
|
|
|
|
} else {
|
|
|
|
|
if (loginLink) loginLink.style.display = 'inline';
|
|
|
|
|
if (logoutLink) logoutLink.style.display = 'none';
|
|
|
|
|
}
|
|
|
|
|
}
|