diff --git a/src/emain.ts b/src/emain.ts index c72e9ed9..54e3ccb2 100644 --- a/src/emain.ts +++ b/src/emain.ts @@ -245,6 +245,11 @@ electron.ipcMain.on("get-id", (event) => { return; }); +electron.ipcMain.on("local-server-status", (event) => { + event.returnValue = (localServerProc != null); + return; +}); + electron.ipcMain.on("restart-server", (event) => { if (localServerProc != null) { localServerProc.kill(); diff --git a/src/main.tsx b/src/main.tsx index d7b21631..d7ffe35e 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -2587,7 +2587,7 @@ class Main extends React.Component<{}, {}> { - + diff --git a/src/model.ts b/src/model.ts index 067f4c60..b020753f 100644 --- a/src/model.ts +++ b/src/model.ts @@ -1529,13 +1529,15 @@ class Model { termUsedRowsCache : Record = {}; debugCmds : number = 0; debugSW : OV = mobx.observable.box(false); - localServerRunning : OV = mobx.observable.box(false); + localServerRunning : OV; constructor() { this.clientId = getApi().getId(); this.ws = new WSControl(this.clientId, (message : any) => this.runUpdate(message, false)); this.ws.reconnect(); this.inputModel = new InputModel(); + let isLocalServerRunning = getApi().getLocalServerStatus(); + this.localServerRunning = mobx.observable.box(isLocalServerRunning); getApi().onTCmd(this.onTCmd.bind(this)); getApi().onICmd(this.onICmd.bind(this)); getApi().onLCmd(this.onLCmd.bind(this)); diff --git a/src/preload.js b/src/preload.js index 314b0e26..bdb57e05 100644 --- a/src/preload.js +++ b/src/preload.js @@ -2,6 +2,7 @@ let {contextBridge, ipcRenderer} = require("electron"); contextBridge.exposeInMainWorld("api", { getId: () => ipcRenderer.sendSync("get-id"), + getLocalServerStatus: () => ipcRenderer.sendSync("local-server-status"), restartLocalServer: () => ipcRenderer.sendSync("restart-server"), onTCmd: (callback) => ipcRenderer.on("t-cmd", callback), onICmd: (callback) => ipcRenderer.on("i-cmd", callback),