Skip to content

Commit 393ef2b

Browse files
committed
fix: always re-render sidebar nav on page change for correct indicator
1 parent f173c7b commit 393ef2b

1 file changed

Lines changed: 4 additions & 10 deletions

File tree

public/js/app.js

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1408,7 +1408,7 @@ function navigateTo(page) {
14081408
}
14091409

14101410
document.querySelectorAll('.page').forEach(p => p.classList.remove('active'));
1411-
document.querySelectorAll('.nav-item').forEach(n => n.classList.remove('active'));
1411+
document.querySelectorAll('.nav-item, .nav-parent').forEach(n => n.classList.remove('active'));
14121412

14131413
state.currentPage = basePage;
14141414
state.serverId = param ? parseInt(param) : null;
@@ -1418,10 +1418,8 @@ function navigateTo(page) {
14181418
const newSidebarMode = isAccountPage ? 'account' : 'main';
14191419
if (state.sidebarMode !== newSidebarMode) {
14201420
state.sidebarMode = newSidebarMode;
1421-
renderSidebarNav();
1422-
} else if (basePage === 'server') {
1423-
renderSidebarNav();
14241421
}
1422+
renderSidebarNav();
14251423

14261424
const url = basePage === 'overview' && !param ? '/' : `/${page}`;
14271425
history.pushState({ page: basePage, serverId: state.serverId, sidebarMode: state.sidebarMode }, '', url);
@@ -1432,9 +1430,7 @@ function navigateTo(page) {
14321430
renderServerDetail(state.serverId);
14331431
} else {
14341432
const targetPage = $(`#page-${basePage}`);
1435-
const targetNav = document.querySelector(`.nav-item[data-page="${basePage}"]`);
14361433
if (targetPage) targetPage.classList.add('active');
1437-
if (targetNav) targetNav.classList.add('active');
14381434

14391435
if (basePage === 'overview') renderOverview();
14401436
else if (basePage === 'servers') renderServers();
@@ -1524,7 +1520,7 @@ window.addEventListener('popstate', () => {
15241520
if (!state.token) { renderLoginPage(); return; }
15251521

15261522
document.querySelectorAll('.page').forEach(p => p.classList.remove('active'));
1527-
document.querySelectorAll('.nav-item').forEach(n => n.classList.remove('active'));
1523+
document.querySelectorAll('.nav-item, .nav-parent').forEach(n => n.classList.remove('active'));
15281524

15291525
state.currentPage = basePage;
15301526
state.serverId = param ? parseInt(param) : null;
@@ -1534,10 +1530,8 @@ window.addEventListener('popstate', () => {
15341530
const newSidebarMode = isAccountPage ? 'account' : 'main';
15351531
if (state.sidebarMode !== newSidebarMode) {
15361532
state.sidebarMode = newSidebarMode;
1537-
renderSidebarNav();
1538-
} else if (basePage === 'server') {
1539-
renderSidebarNav();
15401533
}
1534+
renderSidebarNav();
15411535

15421536
if (basePage === 'server' && state.serverId) {
15431537
const targetPage = $('#page-server-detail');

0 commit comments

Comments
 (0)