function updateNavVisibility() { const token = localStorage.getItem('token'); document.querySelectorAll('.anonymous-links, .user-links').forEach(el => { el.style.display = token ? 'none' : 'block'; }); document.querySelector('.user-links').style.display = token ? 'block' : 'none'; } document.getElementById('logoutLink')?.addEventListener('click', (e) => { e.preventDefault(); localStorage.removeItem('token'); localStorage.removeItem('imie'); window.location.href = '/'; }); document.addEventListener('DOMContentLoaded', () => { updateNavVisibility(); // Aktualizuj awatar/imię w nagłówku const userName = localStorage.getItem('imie'); if(userName) { const profileLink = document.querySelector('a[href="/profile.html"]'); if(profileLink) profileLink.innerHTML = `👤 ${userName}`; } }); async function loadUserData() { const response = await fetch('/api/check-auth'); const data = await response.json(); updateNavVisibility(data.authenticated); } document.getElementById('loginForm')?.addEventListener('submit', async (e) => { e.preventDefault(); const email = document.getElementById('loginEmail').value; const password = document.getElementById('loginPassword').value; const response = await fetch('/login', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ email, haslo: password }), }); const data = await response.json(); if (response.ok) { localStorage.setItem('token', data.token); localStorage.setItem('imie', data.imie); window.location.href = '/'; } else { alert(data.message || 'Logowanie nieudane'); } }); document.getElementById('registerForm')?.addEventListener('submit', async (e) => { e.preventDefault(); const name = document.getElementById('registerName').value; const email = document.getElementById('registerEmail').value; const password = document.getElementById('registerPassword').value; const confirmPassword = document.getElementById('registerConfirmPassword').value; if (password !== confirmPassword) { alert('Hasła nie są identyczne'); return; } const response = await fetch('/rejestracja', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ imie: name, email, haslo: password, confirmPassword }), }); if (response.ok) { alert('Rejestracja udana'); window.location.href = '/login.html'; } else { const data = await response.text(); alert(data || 'Rejestracja nieudana'); } }); async function loadBooks() { try { const response = await fetch('/api/ksiazki'); if (!response.ok) { throw new Error('Network response was not ok'); } const books = await response.json(); const booksContainer = document.getElementById('books-container'); booksContainer.innerHTML = ''; books.forEach(book => { const bookElement = document.createElement('div'); bookElement.className = 'col-md-4'; bookElement.innerHTML = `
${book.tytul}
${book.tytul}

${book.autor}

${book.cena} PLN

`; booksContainer.appendChild(bookElement); }); } catch (error) { console.error('Error loading books:', error); const booksContainer = document.getElementById('books-container'); booksContainer.innerHTML = '

Wystąpił błąd podczas ładowania książek.

'; } } document.addEventListener('DOMContentLoaded', () => { if (document.getElementById('books-container')) { loadBooks(); } }); document.addEventListener('DOMContentLoaded', () => { if (document.getElementById('books-container')) { loadBooks(); } }); document.addEventListener('DOMContentLoaded', () => { if (document.getElementById('books-container')) { loadBooks(); } });