Header improvements
This commit is contained in:
@@ -1,34 +1,39 @@
|
||||
(() => {
|
||||
const loginButton = document.querySelector('#auth-login-button');
|
||||
const profileLink = document.querySelector('#auth-profile-link');
|
||||
const adminLink = document.querySelector('#auth-admin-link');
|
||||
const session = document.querySelector('#auth-session');
|
||||
const avatar = document.querySelector('#auth-avatar');
|
||||
const username = document.querySelector('#auth-username');
|
||||
const token = localStorage.getItem('linklogAccessToken');
|
||||
|
||||
if (!loginButton || !session || !avatar || !username) return;
|
||||
const menu = document.querySelector('#auth-menu');
|
||||
const menuToggle = document.querySelector('.menu-toggle');
|
||||
const logoutButton = document.querySelector('#logout-button');
|
||||
|
||||
if (!loginButton || !profileLink || !adminLink || !session || !username || !menu || !menuToggle || !logoutButton) return;
|
||||
|
||||
menuToggle.addEventListener('click', () => {
|
||||
const isOpen = !menu.classList.contains('hidden');
|
||||
menu.classList.toggle('hidden', isOpen);
|
||||
menuToggle.setAttribute('aria-expanded', String(!isOpen));
|
||||
});
|
||||
|
||||
function showSignedOut() {
|
||||
loginButton.classList.remove('hidden');
|
||||
profileLink.classList.add('hidden');
|
||||
adminLink.classList.add('hidden');
|
||||
session.classList.add('hidden');
|
||||
logoutButton.classList.add('hidden');
|
||||
}
|
||||
|
||||
function showSignedIn(user) {
|
||||
loginButton.classList.add('hidden');
|
||||
profileLink.classList.remove('hidden');
|
||||
adminLink.classList.toggle('hidden', !user.is_admin);
|
||||
session.classList.remove('hidden');
|
||||
logoutButton.classList.remove('hidden');
|
||||
username.textContent = user.username || '';
|
||||
const initial = (user.username || 'U').slice(0, 1).toUpperCase();
|
||||
avatar.textContent = initial;
|
||||
if (user.avatar_url) {
|
||||
const image = document.createElement('img');
|
||||
image.src = user.avatar_url;
|
||||
image.alt = `${user.username || 'User'} avatar`;
|
||||
image.addEventListener('error', () => {
|
||||
image.remove();
|
||||
avatar.textContent = initial;
|
||||
});
|
||||
avatar.textContent = '';
|
||||
avatar.appendChild(image);
|
||||
}
|
||||
username.href = `/${encodeURIComponent(user.username || '')}/`;
|
||||
}
|
||||
|
||||
if (!token) {
|
||||
|
||||
Reference in New Issue
Block a user