From 0de41fab08b6a2e8b5dc3176debf6b7c9dfffc3a Mon Sep 17 00:00:00 2001 From: Evan Simkowitz Date: Tue, 3 Sep 2024 21:45:44 -0700 Subject: [PATCH] Fix the client version in the about modal (#315) The client version in the about modal was hard-coded. Now, it will use the same values that powered the Electron about modal. --- emain/emain.ts | 8 ++++---- emain/preload.ts | 1 + frontend/app/modals/about.tsx | 9 ++++++++- frontend/types/custom.d.ts | 6 ++++++ 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/emain/emain.ts b/emain/emain.ts index 988794d47..b20f3d065 100644 --- a/emain/emain.ts +++ b/emain/emain.ts @@ -200,10 +200,6 @@ function runWaveSrv(): Promise { process.env[WebServerEndpointVarName] = startParams[2]; WaveVersion = startParams[3]; WaveBuildTime = parseInt(startParams[4]); - electron.app.setAboutPanelOptions({ - applicationVersion: "v" + WaveVersion, - version: (isDev ? "dev-" : "") + String(WaveBuildTime), - }); waveSrvReadyResolve(true); return; } @@ -599,6 +595,10 @@ electron.ipcMain.on("get-env", (event, varName) => { event.returnValue = process.env[varName] ?? null; }); +electron.ipcMain.on("get-about-modal-details", (event) => { + event.returnValue = { version: WaveVersion, buildTime: WaveBuildTime } as AboutModalDetails; +}); + const hasBeforeInputRegisteredMap = new Map(); electron.ipcMain.on("webview-focus", (event: Electron.IpcMainEvent, focusedId: number) => { diff --git a/emain/preload.ts b/emain/preload.ts index 6b5be3138..448dd9096 100644 --- a/emain/preload.ts +++ b/emain/preload.ts @@ -9,6 +9,7 @@ contextBridge.exposeInMainWorld("api", { getPlatform: () => ipcRenderer.sendSync("get-platform"), getCursorPoint: () => ipcRenderer.sendSync("get-cursor-point"), getUserName: () => ipcRenderer.sendSync("get-user-name"), + getAboutModalDetails: () => ipcRenderer.sendSync("get-about-modal-details"), openNewWindow: () => ipcRenderer.send("open-new-window"), showContextMenu: (menu, position) => ipcRenderer.send("contextmenu-show", menu, position), onContextMenuClick: (callback) => ipcRenderer.on("contextmenu-click", (_event, id) => callback(id)), diff --git a/frontend/app/modals/about.tsx b/frontend/app/modals/about.tsx index 5368a4739..589df36b0 100644 --- a/frontend/app/modals/about.tsx +++ b/frontend/app/modals/about.tsx @@ -6,12 +6,16 @@ import { LinkButton } from "@/app/element/linkbutton"; import { modalsModel } from "@/app/store/modalmodel"; import { Modal } from "./modal"; +import { isDev } from "@/util/isdev"; +import { useState } from "react"; +import { getApi } from "../store/global"; import "./about.less"; interface AboutModalProps {} const AboutModal = ({}: AboutModalProps) => { const currentDate = new Date(); + const [details] = useState(() => getApi().getAboutModalDetails()); return ( modalsModel.popModal()}> @@ -25,7 +29,10 @@ const AboutModal = ({}: AboutModalProps) => { Built for Seamless Workflows -
Client Version 0.1.8 (20240615-002636)
+
+ Client Version {details.version} ({isDev() ? "dev-" : ""} + {details.buildTime}) +
NodeJS.Platform; getEnv: (varName: string) => string; getUserName: () => string; + getAboutModalDetails: () => AboutModalDetails; showContextMenu: (menu?: ElectronContextMenuItem[]) => void; onContextMenuClick: (callback: (id: string) => void) => void; onNavigate: (callback: (url: string) => void) => void; @@ -234,6 +235,11 @@ declare global { } type TypeAheadModalType = { [key: string]: boolean }; + + interface AboutModalDetails { + version: string; + buildTime: number; + } } export {};