diff --git a/frontend/static/js/index.js b/frontend/static/js/index.js index 2caae56..2c19d12 100644 --- a/frontend/static/js/index.js +++ b/frontend/static/js/index.js @@ -35,8 +35,16 @@ const getParams = match => { }; const navigateTo = async (uri) => { - if (await router(uri) === 0) - history.pushState(null, null, uri); + if (await router(uri) !== 0) + return; + + history.pushState(null, null, uri); + + let link = document.querySelector('a[href=\'' + location.pathname + '\']'); + if (link) { + document.querySelector('[data-link].active')?.classList.remove('active'); + link.classList.add('active'); + } }; async function renderView(view) @@ -117,8 +125,10 @@ document.addEventListener("DOMContentLoaded", () => { document.body.addEventListener("click", e => { if (e.target.matches("[data-link]")) { e.preventDefault(); - document.querySelector('[data-link].active').classList.remove('active'); - e.target.classList.add('active'); + if (e.target.classList.contains('nav-link')) { + document.querySelector('[data-link].active')?.classList.remove('active'); + e.target.classList.add('active'); + } navigateTo(e.target.href.slice(location.origin.length)); } }); diff --git a/frontend/static/js/views/Search.js b/frontend/static/js/views/Search.js index 0bcb36e..d235857 100644 --- a/frontend/static/js/views/Search.js +++ b/frontend/static/js/views/Search.js @@ -57,6 +57,7 @@ export default class extends AbstractView { // username let username = document.createElement("a"); + username.setAttribute('data-link', ''); username.id = `username${user.id}` username.href = `/profiles/${user.id}`; username.style.color = client.notice.online_users[user.id] !== undefined ? "green" : "red";