From 5ac25d032196ab053e589c99eb0707c5464a0a28 Mon Sep 17 00:00:00 2001 From: spooky-bat Date: Sun, 4 Jan 2026 15:58:54 +0100 Subject: [PATCH] Fix: Browser tab title not updating from server attributes Currently, the browser tab title often remains as "Traccar" or doesn't update when server attributes change. This PR adds a check to dynamically update `document.title` using: 1. `server.title` 2. `server.attributes.title` 3. `server.attributes.name` This ensures the customized server name is properly reflected in the browser tab. --- src/ServerProvider.jsx | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/src/ServerProvider.jsx b/src/ServerProvider.jsx index 19997a5933..2e80dc6f79 100644 --- a/src/ServerProvider.jsx +++ b/src/ServerProvider.jsx @@ -15,19 +15,27 @@ const ServerProvider = ({ const [error, setError] = useState(null); useEffectAsync(async () => { - if (!error) { - try { - const response = await fetch('/api/server'); - if (response.ok) { - dispatch(sessionActions.updateServer(await response.json())); - } else { - const message = await response.text(); - throw Error(message || response.statusText); + if (!error) { + try { + const response = await fetch('/api/server'); + if (response.ok) { + const server = await response.json(); + dispatch(sessionActions.updateServer(server)); + // Set the page title based on the server attribute configuration (fixes ${title} in index.html) + try { + const title = server.title || server.attributes?.title || server.attributes?.name; + if (title) document.title = title; + } catch (e) { + // Silently ignore errors related to document title update + } + } else { + const message = await response.text(); + throw Error(message || response.statusText); + } + } catch (error) { + setError(error.message); } - } catch (error) { - setError(error.message); } - } }, [error]); if (error) {