feature: Add application version to page title

- Read version from package.json at build time using Vite define
- Create global __APP_VERSION__ constant injected by Vite
- Update document title in App component to include version (e.g., "Respira v0.0.0")
- Works reliably in both web and Electron builds

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Jan-Henrik 2025-12-13 23:48:05 +01:00
parent abf7b9a67f
commit ded3423a19
3 changed files with 15 additions and 0 deletions

View file

@ -15,6 +15,10 @@ import { CheckCircleIcon, BoltIcon, PauseCircleIcon, ExclamationTriangleIcon, Ar
import './App.css'; import './App.css';
function App() { function App() {
// Set page title with version
useEffect(() => {
document.title = `Respira v${__APP_VERSION__}`;
}, []);
// Machine store // Machine store
const { const {
isConnected, isConnected,

3
src/vite-env.d.ts vendored Normal file
View file

@ -0,0 +1,3 @@
/// <reference types="vite/client" />
declare const __APP_VERSION__: string;

View file

@ -4,8 +4,13 @@ import { viteStaticCopy } from 'vite-plugin-static-copy'
import tailwindcss from '@tailwindcss/vite' import tailwindcss from '@tailwindcss/vite'
import { dirname, join } from 'path' import { dirname, join } from 'path'
import { fileURLToPath } from 'url' import { fileURLToPath } from 'url'
import { readFileSync } from 'fs'
import type { Plugin } from 'vite' import type { Plugin } from 'vite'
// Read version from package.json
const packageJson = JSON.parse(readFileSync('./package.json', 'utf-8'))
const appVersion = packageJson.version
const PYODIDE_EXCLUDE = [ const PYODIDE_EXCLUDE = [
'!**/*.{md,html}', '!**/*.{md,html}',
'!**/*.d.ts', '!**/*.d.ts',
@ -133,6 +138,9 @@ export function downloadPyPIWheels(packages: PyPIPackage[]): Plugin {
// https://vite.dev/config/ // https://vite.dev/config/
export default defineConfig({ export default defineConfig({
define: {
__APP_VERSION__: JSON.stringify(appVersion),
},
plugins: [ plugins: [
react(), react(),
tailwindcss(), tailwindcss(),