diff --git a/crates/lanspread-tauri-deno-ts/src/components/modals/SettingsDialog.tsx b/crates/lanspread-tauri-deno-ts/src/components/modals/SettingsDialog.tsx index 58492bd..49e7083 100644 --- a/crates/lanspread-tauri-deno-ts/src/components/modals/SettingsDialog.tsx +++ b/crates/lanspread-tauri-deno-ts/src/components/modals/SettingsDialog.tsx @@ -18,6 +18,8 @@ interface Props { onClose: () => void; } +const buildNr = import.meta.env.VITE_LANSPREAD_BUILD_NR; + interface RowProps { label: string; hint: string; @@ -126,6 +128,7 @@ export const SettingsDialog = ({ settings, onChange, onClose }: Props) => (
+
Build-Nr: {buildNr}
diff --git a/crates/lanspread-tauri-deno-ts/src/styles/launcher.css b/crates/lanspread-tauri-deno-ts/src/styles/launcher.css index fa1667b..1059279 100644 --- a/crates/lanspread-tauri-deno-ts/src/styles/launcher.css +++ b/crates/lanspread-tauri-deno-ts/src/styles/launcher.css @@ -1468,11 +1468,18 @@ } .settings-foot { display: flex; - justify-content: flex-end; + align-items: center; + justify-content: space-between; padding: 14px 22px 18px; border-top: 1px solid var(--bd-1); gap: 10px; } +.settings-build-nr { + min-width: 0; + color: var(--t-3); + font-size: 12px; + font-variant-numeric: tabular-nums; +} .settings-done { height: 36px; padding: 0 22px; diff --git a/crates/lanspread-tauri-deno-ts/src/vite-env.d.ts b/crates/lanspread-tauri-deno-ts/src/vite-env.d.ts index 11f02fe..be02c2d 100644 --- a/crates/lanspread-tauri-deno-ts/src/vite-env.d.ts +++ b/crates/lanspread-tauri-deno-ts/src/vite-env.d.ts @@ -1 +1,5 @@ /// + +interface ImportMetaEnv { + readonly VITE_LANSPREAD_BUILD_NR: string; +} diff --git a/crates/lanspread-tauri-deno-ts/vite.config.ts b/crates/lanspread-tauri-deno-ts/vite.config.ts index f74d1b2..ce60391 100644 --- a/crates/lanspread-tauri-deno-ts/vite.config.ts +++ b/crates/lanspread-tauri-deno-ts/vite.config.ts @@ -1,12 +1,18 @@ import { defineConfig } from "vite"; import react from "@vitejs/plugin-react"; +// A timestamp keeps build numbers monotonic without a checked-in counter file. +const buildNr = Date.now().toString(); + // @ts-expect-error process is a nodejs global const host = process.env.TAURI_DEV_HOST; // https://vitejs.dev/config/ export default defineConfig(async () => ({ plugins: [react()], + define: { + "import.meta.env.VITE_LANSPREAD_BUILD_NR": JSON.stringify(buildNr), + }, // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build` //