1
mirror of https://github.com/home-assistant/frontend synced 2024-09-28 00:43:28 +02:00

Add hass-quick-bar-trigger event to trigger quickbar from supervisor (#12467)

This commit is contained in:
Joakim Sørensen 2022-04-27 15:08:45 +02:00 committed by GitHub
parent 66adecdfc9
commit ebc807a6a4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 1 deletions

View File

@ -3,8 +3,8 @@ import { customElement, property } from "lit/decorators";
import { atLeastVersion } from "../../src/common/config/version"; import { atLeastVersion } from "../../src/common/config/version";
import { applyThemesOnElement } from "../../src/common/dom/apply_themes_on_element"; import { applyThemesOnElement } from "../../src/common/dom/apply_themes_on_element";
import { fireEvent } from "../../src/common/dom/fire_event"; import { fireEvent } from "../../src/common/dom/fire_event";
import { isNavigationClick } from "../../src/common/dom/is-navigation-click";
import { mainWindow } from "../../src/common/dom/get_main_window"; import { mainWindow } from "../../src/common/dom/get_main_window";
import { isNavigationClick } from "../../src/common/dom/is-navigation-click";
import { navigate } from "../../src/common/navigate"; import { navigate } from "../../src/common/navigate";
import { HassioPanelInfo } from "../../src/data/hassio/supervisor"; import { HassioPanelInfo } from "../../src/data/hassio/supervisor";
import { Supervisor } from "../../src/data/supervisor/supervisor"; import { Supervisor } from "../../src/data/supervisor/supervisor";
@ -73,6 +73,14 @@ export class HassioMain extends SupervisorBaseElement {
}); });
}); });
// Forward keydown events to the main window for quickbar access
document.body.addEventListener("keydown", (ev) => {
// @ts-ignore
fireEvent(mainWindow, "hass-quick-bar-trigger", ev, {
bubbles: false,
});
});
makeDialogManager(this, this.shadowRoot!); makeDialogManager(this, this.shadowRoot!);
} }

View File

@ -14,6 +14,7 @@ import { HassElement } from "./hass-element";
declare global { declare global {
interface HASSDomEvents { interface HASSDomEvents {
"hass-quick-bar": QuickBarParams; "hass-quick-bar": QuickBarParams;
"hass-quick-bar-trigger": KeyboardEvent;
"hass-enable-shortcuts": HomeAssistant["enableShortcuts"]; "hass-enable-shortcuts": HomeAssistant["enableShortcuts"];
} }
} }
@ -28,6 +29,20 @@ export default <T extends Constructor<HassElement>>(superClass: T) =>
storeState(this.hass!); storeState(this.hass!);
}); });
mainWindow.addEventListener("hass-quick-bar-trigger", (ev) => {
switch (ev.detail.key) {
case "e":
this._showQuickBar(ev.detail);
break;
case "c":
this._showQuickBar(ev.detail, true);
break;
case "m":
this._createMyLink(ev.detail);
break;
}
});
this._registerShortcut(); this._registerShortcut();
} }