diff --git a/src/main/start-main-application/lens-window/application-window/create-electron-window-for.injectable.ts b/src/main/start-main-application/lens-window/application-window/create-electron-window-for.injectable.ts index 700ab1e103..6c02a2a386 100644 --- a/src/main/start-main-application/lens-window/application-window/create-electron-window-for.injectable.ts +++ b/src/main/start-main-application/lens-window/application-window/create-electron-window-for.injectable.ts @@ -9,7 +9,7 @@ import { BrowserWindow } from "electron"; import { openBrowser } from "../../../../common/utils"; import type { SendToViewArgs } from "./lens-window-injection-token"; import sendToChannelInElectronBrowserWindowInjectable from "./send-to-channel-in-electron-browser-window.injectable"; -import type { LensWindow } from "./create-lens-window.injectable"; +import type { ElectronWindow } from "./create-lens-window.injectable"; export type ElectronWindowTitleBarStyle = "hiddenInset" | "hidden" | "default" | "customButtonsOnHover"; @@ -30,7 +30,7 @@ export interface ElectronWindowConfiguration { onDomReady?: () => void; } -export type CreateElectronWindow = () => Promise; +export type CreateElectronWindow = () => Promise; export type CreateElectronWindowFor = (config: ElectronWindowConfiguration) => CreateElectronWindow; const createElectronWindowFor = getInjectable({ diff --git a/src/main/start-main-application/lens-window/application-window/create-lens-window.injectable.ts b/src/main/start-main-application/lens-window/application-window/create-lens-window.injectable.ts index 88e8c60095..c09596f25f 100644 --- a/src/main/start-main-application/lens-window/application-window/create-lens-window.injectable.ts +++ b/src/main/start-main-application/lens-window/application-window/create-lens-window.injectable.ts @@ -3,11 +3,11 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import type { SendToViewArgs } from "./lens-window-injection-token"; +import type { LensWindow, SendToViewArgs } from "./lens-window-injection-token"; import type { ElectronWindowTitleBarStyle } from "./create-electron-window-for.injectable"; import createElectronWindowForInjectable from "./create-electron-window-for.injectable"; -export interface LensWindow { +export interface ElectronWindow { show: () => void; close: () => void; send: (args: SendToViewArgs) => void; @@ -35,13 +35,14 @@ const createLensWindowInjectable = getInjectable({ instantiate: (di) => { const createElectronWindowFor = di.inject(createElectronWindowForInjectable); - return (configuration: LensWindowConfiguration) => { - let browserWindow: LensWindow | undefined; + return (configuration: LensWindowConfiguration): LensWindow => { + let browserWindow: ElectronWindow | undefined; const createElectronWindow = createElectronWindowFor(Object.assign( { onClose: () => browserWindow = undefined, }, + configuration, )); @@ -49,6 +50,7 @@ const createLensWindowInjectable = getInjectable({ get visible() { return !!browserWindow; }, + show: async () => { if (!browserWindow) { browserWindow = await createElectronWindow(); @@ -56,10 +58,12 @@ const createLensWindowInjectable = getInjectable({ browserWindow.show(); }, + close: () => { browserWindow?.close(); browserWindow = undefined; }, + send: (args: SendToViewArgs) => { if (!browserWindow) { throw new Error(`Tried to send message to window "${configuration.id}" but the window was closed`);