1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
lens/src/features/application-menu/main/menu-items/view/open-command-palette/open-command-palette-menu-item.injectable.ts
Janne Savolainen 159f2bb9c1
Migrate more application menu items to injectables
Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com>

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
2022-10-20 08:37:59 +03:00

40 lines
1.3 KiB
TypeScript

/**
* 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 broadcastMessageInjectable from "../../../../../../common/ipc/broadcast-message.injectable";
const openCommandPaletteMenuItemInjectable = getInjectable({
id: "open-command-palette-menu-item",
instantiate: (di) => {
const broadcastMessage = di.inject(broadcastMessageInjectable);
return {
parentId: "view",
id: "open-command-palette",
orderNumber: 20,
label: "Command Palette...",
accelerator: "Shift+CmdOrCtrl+P",
click(_m, _b, event) {
/**
* Don't broadcast unless it was triggered by menu iteration so that
* there aren't double events in renderer
*
* NOTE: this `?` is required because of a bug in playwright. https://github.com/microsoft/playwright/issues/10554
*/
if (!event?.triggeredByAccelerator) {
broadcastMessage("command-palette:open");
}
},
};
},
injectionToken: applicationMenuItemInjectionToken,
});
export default openCommandPaletteMenuItemInjectable;