Skip to content

Commit 2a347b5

Browse files
committed
fix: don't re-render sidebar nav on every navigation to preserve indicator animation
1 parent 301c030 commit 2a347b5

1 file changed

Lines changed: 18 additions & 4 deletions

File tree

public/js/app.js

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1425,8 +1425,16 @@ function navigateTo(page) {
14251425
const newSidebarMode = isAccountPage ? 'account' : 'main';
14261426
if (state.sidebarMode !== newSidebarMode) {
14271427
state.sidebarMode = newSidebarMode;
1428+
renderSidebarNav();
14281429
}
1429-
renderSidebarNav();
1430+
1431+
if (basePage === 'server' || basePage === 'servers') {
1432+
const parent = document.querySelector('#nav-servers-toggle');
1433+
if (parent) parent.classList.add('active');
1434+
}
1435+
const targetNav = document.querySelector(`.nav-item[data-page="${basePage}"]`);
1436+
if (targetNav) targetNav.classList.add('active');
1437+
updateNavIndicator();
14301438

14311439
const url = basePage === 'overview' && !param ? '/' : `/${page}`;
14321440
history.pushState({ page: basePage, serverId: state.serverId, sidebarMode: state.sidebarMode }, '', url);
@@ -1537,18 +1545,24 @@ window.addEventListener('popstate', () => {
15371545
const newSidebarMode = isAccountPage ? 'account' : 'main';
15381546
if (state.sidebarMode !== newSidebarMode) {
15391547
state.sidebarMode = newSidebarMode;
1548+
renderSidebarNav();
15401549
}
1541-
renderSidebarNav();
1550+
1551+
if (basePage === 'server' || basePage === 'servers') {
1552+
const parent = document.querySelector('#nav-servers-toggle');
1553+
if (parent) parent.classList.add('active');
1554+
}
1555+
const targetNav = document.querySelector(`.nav-item[data-page="${basePage}"]`);
1556+
if (targetNav) targetNav.classList.add('active');
1557+
updateNavIndicator();
15421558

15431559
if (basePage === 'server' && state.serverId) {
15441560
const targetPage = $('#page-server-detail');
15451561
if (targetPage) targetPage.classList.add('active');
15461562
renderServerDetail(state.serverId);
15471563
} else {
15481564
const targetPage = $(`#page-${basePage}`);
1549-
const targetNav = document.querySelector(`.nav-item[data-page="${basePage}"]`);
15501565
if (targetPage) targetPage.classList.add('active');
1551-
if (targetNav) targetNav.classList.add('active');
15521566

15531567
if (basePage === 'overview') renderOverview();
15541568
else if (basePage === 'servers') renderServers();

0 commit comments

Comments
 (0)