From 19c5247c90240710b777ada51154ce6ea7f71822 Mon Sep 17 00:00:00 2001 From: oOHiyoriOo Date: Sat, 13 Jun 2026 17:57:48 +0200 Subject: [PATCH] fix: router add() signature, setActivePage typo, connect race condition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Router.add() now takes 3 params (pattern, title, onEnter) matching app.js usage - Fixed setActiveSidebar → setActivePage in all route callbacks - Removed premature hash-setting from connect.js — app.js now sole navigator (was firing router into a hidden container before showConnected ran) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- js/app.js | 10 +++++----- js/pages/connect.js | 2 +- js/router.js | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/js/app.js b/js/app.js index 762096b..4dc34c8 100644 --- a/js/app.js +++ b/js/app.js @@ -97,11 +97,11 @@ }); // ---- Router setup ---- - Router.add(/^\/([^/]+)\/info$/, 'Server', function (p, c) { setActiveSidebar('Server'); ServerInfoPage(p, c); }); - Router.add(/^\/([^/]+)\/console$/, 'Console', function (p, c) { setActiveSidebar('Console'); ConsolePage(p, c); }); - Router.add(/^\/([^/]+)\/chat$/, 'Chat', function (p, c) { setActiveSidebar('Chat'); ChatPage(p, c); }); - Router.add(/^\/([^/]+)\/playerlist$/, 'Player List', function (p, c) { setActiveSidebar('Player List'); PlayerListPage(p, c); }); - Router.add(/^\/([^/]+)\/player\/(.+)$/, 'Player Info', function (p, c) { setActiveSidebar('Player Info'); PlayerInfoPage(p, c); }); + Router.add(/^\/([^/]+)\/info$/, 'Server', function (p, c) { setActivePage('Server'); ServerInfoPage(p, c); }); + Router.add(/^\/([^/]+)\/console$/, 'Console', function (p, c) { setActivePage('Console'); ConsolePage(p, c); }); + Router.add(/^\/([^/]+)\/chat$/, 'Chat', function (p, c) { setActivePage('Chat'); ChatPage(p, c); }); + Router.add(/^\/([^/]+)\/playerlist$/, 'Player List', function (p, c) { setActivePage('Player List'); PlayerListPage(p, c); }); + Router.add(/^\/([^/]+)\/player\/(.+)$/, 'Player Info', function (p, c) { setActivePage('Player Info'); PlayerInfoPage(p, c); }); Router.start('#app-view'); diff --git a/js/pages/connect.js b/js/pages/connect.js index ae63127..cac7a15 100644 --- a/js/pages/connect.js +++ b/js/pages/connect.js @@ -110,7 +110,7 @@ function ConnectPage(params, container) { }); function onConnected() { - window.location.hash = '#/' + Rcon.getAddress() + '/info'; + // Navigation handled by app.js — don't set hash here } function onDisconnected(ev) { showError('Connection was closed — Error ' + (ev ? ev.code : 'unknown')); diff --git a/js/router.js b/js/router.js index ea0f72a..4a567da 100644 --- a/js/router.js +++ b/js/router.js @@ -18,8 +18,8 @@ var Router = (function () { var viewSelector = null; var currentCleanup = null; - function add(pattern, title, template, onEnter) { - routes.push({ pattern: pattern, title: title, template: template, onEnter: onEnter }); + function add(pattern, title, onEnter) { + routes.push({ pattern: pattern, title: title, onEnter: onEnter }); } function navigate(hash) {