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

register shortcut to global menu

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
Jari Kolehmainen 2021-01-21 08:56:12 +02:00
parent 967fddc603
commit f54f1c31a4
2 changed files with 15 additions and 25 deletions

View File

@ -10,6 +10,7 @@ import { extensionsURL } from "../renderer/components/+extensions/extensions.rou
import { menuRegistry } from "../extensions/registries/menu-registry";
import logger from "./logger";
import { exitApp } from "./exit-app";
import { broadcastMessage } from "../common/ipc";
export type MenuTopId = "mac" | "file" | "edit" | "view" | "help";
@ -173,6 +174,14 @@ export function buildMenu(windowManager: WindowManager) {
const viewMenu: MenuItemConstructorOptions = {
label: "View",
submenu: [
{
label: "Command Palette...",
accelerator: "Shift+CmdOrCtrl+P",
click() {
broadcastMessage("command-palette:open");
}
},
{ type: "separator" },
{
label: "Back",
accelerator: "CmdOrCtrl+[",

View File

@ -6,9 +6,9 @@ import { observer } from "mobx-react";
import React from "react";
import { commandRegistry } from "../../../extensions/registries/command-registry";
import { Dialog } from "../dialog";
import { isMac } from "../../../common/vars";
import { clusterStore } from "../../../common/cluster-store";
import { workspaceStore } from "../../../common/workspace-store";
import { subscribeToBroadcast } from "../../../common/ipc";
@observer
export class CommandDialog extends React.Component {
@ -23,22 +23,9 @@ export class CommandDialog extends React.Component {
}
@action
private shortcutHandler(event: KeyboardEvent) {
console.log(event);
if (isMac) {
if (event.shiftKey && event.metaKey && event.key === "p") {
this.visible = true;
this.menuIsOpen = true;
event.stopPropagation();
}
} else {
if (event.shiftKey && event.ctrlKey && event.key === "p") {
this.visible = true;
this.menuIsOpen = true;
event.stopPropagation();
}
}
private shortcutHandler() {
this.visible = true;
this.menuIsOpen = true;
}
private closeDialog() {
@ -50,11 +37,7 @@ export class CommandDialog extends React.Component {
componentDidMount() {
window.addEventListener("keyup", (e) => this.escHandler(e), true);
window.addEventListener("keydown", (e) => this.shortcutHandler(e), true);
}
componentWillUnmount() {
window.removeEventListener("keyup", this.escHandler);
subscribeToBroadcast("command-palette:open", () => this.shortcutHandler());
}
@computed get options() {
@ -66,8 +49,6 @@ export class CommandDialog extends React.Component {
private onChange(value: string) {
const command = commandRegistry.getItems().find((cmd) => cmd.id === value);
console.log(value, command);
if (!command) {
return;
}
@ -89,7 +70,7 @@ export class CommandDialog extends React.Component {
<Dialog isOpen={this.visible}>
<div id="command-dialog">
<Select
onChange={(v) => this.onChange(v)}
onChange={(v) => this.onChange(v.value)}
components={{ DropdownIndicator: null, IndicatorSeparator: null }}
menuIsOpen={this.menuIsOpen}
options={this.options}