fix: replace all inline onclick with JS event listeners (sidebar nav + logout)

This commit is contained in:
2026-07-14 05:37:37 +08:00
parent b4df827f0d
commit 9e15a319f5
2 changed files with 8 additions and 3 deletions

View File

@@ -118,14 +118,19 @@ const App = {
document.getElementById('main-layout').classList.remove('hidden');
const u = Auth.user();
document.getElementById('user-info').innerHTML = `<div class="av">${U.esc(u.game_name||u.username).charAt(0).toUpperCase()}</div><div class="dt"><div class="nm">${U.esc(u.game_name||u.username)}</div><div class="rl">${U.ROLE[u.role]}</div></div>`;
document.getElementById('sidebar-logout').onclick = () => App.logout();
this.loadFooter();
},
renderSidebar(current) {
const u = Auth.user();
document.getElementById('sidebar-nav').innerHTML = this.navItems
const nav = document.getElementById('sidebar-nav');
nav.innerHTML = this.navItems
.filter(i => i.roles.includes(u.role))
.map(i => `<div class="nav-item ${current===i.id?'active':''}" onclick="App.navigate('${i.id}')"><i class="fas ${i.icon}"></i><span>${i.label}</span></div>`).join('');
.map(i => `<div class="nav-item ${current===i.id?'active':''}" data-nav="${i.id}"><i class="fas ${i.icon}"></i><span>${i.label}</span></div>`).join('');
nav.querySelectorAll('.nav-item').forEach(el => {
el.addEventListener('click', () => App.navigate(el.dataset.nav));
});
},
async renderMain(title, page, param) {