1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Relocate stuff related to "show about" under behaviours

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
This commit is contained in:
Janne Savolainen 2022-07-08 14:15:35 +03:00
parent d904f6999b
commit 54bce04a9c
No known key found for this signature in database
GPG Key ID: 8C6CFB2FFFE8F68A
4 changed files with 50 additions and 46 deletions

View File

@ -3,13 +3,13 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import productNameInjectable from "../app-paths/app-name/product-name.injectable";
import showApplicationWindowInjectable from "../start-main-application/lens-window/show-application-window.injectable";
import showAboutInjectable from "../menu/show-about.injectable";
import { trayMenuItemInjectionToken } from "../../behaviours/tray/main/tray-menu-item/tray-menu-item-injection-token";
import productNameInjectable from "../../../main/app-paths/app-name/product-name.injectable";
import showApplicationWindowInjectable from "../../../main/start-main-application/lens-window/show-application-window.injectable";
import showAboutInjectable from "./show-about.injectable";
import { trayMenuItemInjectionToken } from "../../tray/main/tray-menu-item/tray-menu-item-injection-token";
import { computed } from "mobx";
import withErrorLoggingInjectable from "../../common/utils/with-error-logging/with-error-logging.injectable";
import { withErrorSuppression } from "../../common/utils/with-error-suppression/with-error-suppression";
import withErrorLoggingInjectable from "../../../common/utils/with-error-logging/with-error-logging.injectable";
import { withErrorSuppression } from "../../../common/utils/with-error-suppression/with-error-suppression";
import { pipeline } from "@ogre-tools/fp";
const aboutAppTrayItemInjectable = getInjectable({

View File

@ -0,0 +1,43 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import showMessagePopupInjectable from "../../../main/electron-app/features/show-message-popup.injectable";
import packageJson from "../../../../package.json";
import isWindowsInjectable from "../../../common/vars/is-windows.injectable";
import appNameInjectable from "../../../main/app-paths/app-name/app-name.injectable";
import electronAppInjectable from "../../../main/electron-app/electron-app.injectable";
import productNameInjectable from "../../../main/app-paths/app-name/product-name.injectable";
const showAboutInjectable = getInjectable({
id: "show-about",
instantiate: (di) => {
const showMessagePopup = di.inject(showMessagePopupInjectable);
const isWindows = di.inject(isWindowsInjectable);
const appName = di.inject(appNameInjectable);
const app = di.inject(electronAppInjectable);
const productName = di.inject(productNameInjectable);
return async () => {
const appInfo = [
`${appName}: ${app.getVersion()}`,
`Electron: ${process.versions.electron}`,
`Chrome: ${process.versions.chrome}`,
`Node: ${process.versions.node}`,
packageJson.copyright,
];
await showMessagePopup(
`${isWindows ? " ".repeat(2) : ""}${appName}`,
productName,
appInfo.join("\r\n"),
);
};
},
causesSideEffects: true,
});
export default showAboutInjectable;

View File

@ -2,34 +2,11 @@
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { app, Menu } from "electron";
import { appName, isWindows, productName } from "../../common/vars";
import packageJson from "../../../package.json";
import { Menu } from "electron";
import type { MenuItemOpts } from "./application-menu-items.injectable";
import type { ShowMessagePopup } from "../electron-app/features/show-message-popup.injectable";
export type MenuTopId = "mac" | "file" | "edit" | "view" | "help";
interface Dependencies {
showMessagePopup: ShowMessagePopup;
}
export const showAbout = ({ showMessagePopup }: Dependencies) => async () => {
const appInfo = [
`${appName}: ${app.getVersion()}`,
`Electron: ${process.versions.electron}`,
`Chrome: ${process.versions.chrome}`,
`Node: ${process.versions.node}`,
packageJson.copyright,
];
await showMessagePopup(
`${isWindows ? " ".repeat(2) : ""}${appName}`,
productName,
appInfo.join("\r\n"),
);
};
export function buildMenu(applicationMenuItems: MenuItemOpts[]) {
Menu.setApplicationMenu(
Menu.buildFromTemplate(applicationMenuItems),

View File

@ -1,16 +0,0 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import { showAbout } from "./menu";
import showMessagePopupInjectable from "../electron-app/features/show-message-popup.injectable";
const showAboutInjectable = getInjectable({
id: "show-about",
instantiate: (di) =>
showAbout({ showMessagePopup: di.inject(showMessagePopupInjectable) }),
});
export default showAboutInjectable;