From c3535967eeb50251dacec10f3af7a3a94504b55e Mon Sep 17 00:00:00 2001 From: Maurice Date: Thu, 19 Mar 2026 14:49:36 +0100 Subject: [PATCH] Show app version (v2.2.0) in user menu --- client/src/components/Layout/Navbar.jsx | 14 +++++++++++++- server/package.json | 2 +- server/src/routes/auth.js | 2 ++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/client/src/components/Layout/Navbar.jsx b/client/src/components/Layout/Navbar.jsx index 86f7a53..04932ac 100644 --- a/client/src/components/Layout/Navbar.jsx +++ b/client/src/components/Layout/Navbar.jsx @@ -1,4 +1,4 @@ -import React, { useState } from 'react' +import React, { useState, useEffect } from 'react' import { Link, useNavigate } from 'react-router-dom' import { useAuthStore } from '../../store/authStore' import { useSettingsStore } from '../../store/settingsStore' @@ -11,8 +11,15 @@ export default function Navbar({ tripTitle, tripId, onBack, showBack, onShare }) const { t, locale } = useTranslation() const navigate = useNavigate() const [userMenuOpen, setUserMenuOpen] = useState(false) + const [appVersion, setAppVersion] = useState(null) const dark = settings.dark_mode + useEffect(() => { + import('../../api/client').then(({ authApi }) => { + authApi.getAppConfig?.().then(c => setAppVersion(c?.version)).catch(() => {}) + }) + }, []) + const handleLogout = () => { logout() navigate('/login') @@ -146,6 +153,11 @@ export default function Navbar({ tripTitle, tripId, onBack, showBack, onShare }) {t('nav.logout')} + {appVersion && ( +
+ NOMAD v{appVersion} +
+ )} diff --git a/server/package.json b/server/package.json index 8deb258..aa3c433 100644 --- a/server/package.json +++ b/server/package.json @@ -1,6 +1,6 @@ { "name": "nomad-server", - "version": "2.0.0", + "version": "2.2.0", "main": "src/index.js", "scripts": { "start": "node --experimental-sqlite src/index.js", diff --git a/server/src/routes/auth.js b/server/src/routes/auth.js index 470c6c5..f18ac2c 100644 --- a/server/src/routes/auth.js +++ b/server/src/routes/auth.js @@ -66,9 +66,11 @@ router.get('/app-config', (req, res) => { const setting = db.prepare("SELECT value FROM app_settings WHERE key = 'allow_registration'").get(); const allowRegistration = userCount === 0 || (setting?.value ?? 'true') === 'true'; const isDemo = process.env.DEMO_MODE === 'true'; + const { version } = require('../../package.json'); res.json({ allow_registration: isDemo ? false : allowRegistration, has_users: userCount > 0, + version, demo_mode: isDemo, demo_email: isDemo ? 'demo@nomad.app' : undefined, demo_password: isDemo ? 'demo12345' : undefined,