fix: top bar shows username+logout when logged in, not blank

This commit is contained in:
2026-07-12 21:23:16 +08:00
parent 531d2a6e26
commit a9d85b2d07

View File

@@ -85,18 +85,29 @@ const App = {
document.getElementById('main-layout').classList.add('hidden'); document.getElementById('main-layout').classList.add('hidden');
const pub = document.getElementById('public-page'); const pub = document.getElementById('public-page');
pub.classList.remove('hidden'); pub.classList.remove('hidden');
const topAuth = document.getElementById('top-auth'); this.updateTopAuth();
if (Auth.logged()) { topAuth.classList.add('hidden'); } else { topAuth.classList.remove('hidden'); }
const comp = page === 'login' ? LoginPage : page === 'register' ? RegisterPage : page === 'install' ? InstallPage : HomePage; const comp = page === 'login' ? LoginPage : page === 'register' ? RegisterPage : page === 'install' ? InstallPage : HomePage;
comp.render(param).then(html => { pub.innerHTML = html; if (comp.mount) comp.mount(param); }).catch(() => { comp.render(param).then(html => { pub.innerHTML = html; if (comp.mount) comp.mount(param); }).catch(() => {
pub.innerHTML = '<div class="pub-card"><div class="logo"><i class="fas fa-exclamation-triangle" style="color:var(--d)"></i><h2>加载失败</h2><p>请刷新页面重试</p></div></div>'; pub.innerHTML = '<div class="pub-card"><div class="logo"><i class="fas fa-exclamation-triangle" style="color:var(--d)"></i><h2>加载失败</h2><p>请刷新页面重试</p></div></div>';
}); });
}, },
updateTopAuth() {
const el = document.getElementById('top-auth');
if (Auth.logged()) {
const u = Auth.user();
el.innerHTML = `<span class="tm ts">${U.esc(u.game_name||u.username)}</span><button class="btn btn-o btn-sm" onclick="App.logout()"><i class="fas fa-sign-out-alt"></i></button>`;
el.style.display = 'flex';
} else {
el.innerHTML = `<a href="#/login" class="btn btn-o btn-sm"><i class="fas fa-sign-in-alt"></i> 登录</a><a href="#/register" class="btn btn-p btn-sm"><i class="fas fa-user-plus"></i> 注册</a>`;
el.style.display = 'flex';
}
},
showLayout() { showLayout() {
document.getElementById('top-bar').classList.add('hidden');
document.getElementById('public-page').classList.add('hidden'); document.getElementById('public-page').classList.add('hidden');
document.getElementById('main-layout').classList.remove('hidden'); document.getElementById('main-layout').classList.remove('hidden');
this.updateTopAuth();
const u = Auth.user(); 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('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>`;
this.loadFooter(); this.loadFooter();