From cf9bf23ac5a46c8d0a72372c59b244d958459980 Mon Sep 17 00:00:00 2001 From: Iku-turso Date: Tue, 4 Oct 2022 10:21:02 +0300 Subject: [PATCH] Extract menu item for quitting application as injectable Co-authored-by: Janne Savolainen Signed-off-by: Iku-turso --- .../main/application-menu-items.injectable.ts | 11 +------ .../quit-application-menu-item.injectable.ts | 31 +++++++++++++++++++ 2 files changed, 32 insertions(+), 10 deletions(-) create mode 100644 src/features/application-menu/main/menu-items/primary-for-mac/quit-application/quit-application-menu-item.injectable.ts diff --git a/src/features/application-menu/main/application-menu-items.injectable.ts b/src/features/application-menu/main/application-menu-items.injectable.ts index 2abc7b1d28..a0d9f8c4d0 100644 --- a/src/features/application-menu/main/application-menu-items.injectable.ts +++ b/src/features/application-menu/main/application-menu-items.injectable.ts @@ -75,16 +75,7 @@ const applicationMenuItemsInjectable = getInjectable({ const macAppMenu: MenuItemOpts = { label: appName, id: "root", - submenu: [ - { - label: "Quit", - accelerator: "Cmd+Q", - id: "quit", - click() { - stopServicesAndExitApp(); - }, - }, - ], + submenu: [], }; const fileMenu: MenuItemOpts = { diff --git a/src/features/application-menu/main/menu-items/primary-for-mac/quit-application/quit-application-menu-item.injectable.ts b/src/features/application-menu/main/menu-items/primary-for-mac/quit-application/quit-application-menu-item.injectable.ts new file mode 100644 index 0000000000..9538547ce4 --- /dev/null +++ b/src/features/application-menu/main/menu-items/primary-for-mac/quit-application/quit-application-menu-item.injectable.ts @@ -0,0 +1,31 @@ +/** + * 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 applicationMenuItemInjectionToken from "../../application-menu-item-injection-token"; +import stopServicesAndExitAppInjectable from "../../../../../../main/stop-services-and-exit-app.injectable"; + +const quitApplicationMenuItemInjectable = getInjectable({ + id: "quit-application-menu-item", + + instantiate: (di) => { + const stopServicesAndExitApp = di.inject(stopServicesAndExitAppInjectable); + + return { + id: "quit", + parentId: "primary-for-mac", + orderNumber: 140, + label: "Quit", + accelerator: "Cmd+Q", + + click: () => { + stopServicesAndExitApp(); + }, + }; + }, + + injectionToken: applicationMenuItemInjectionToken, +}); + +export default quitApplicationMenuItemInjectable;