From 2fe0398f37e3ac8012732654cb23fc26f2bf7e94 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 18 Mar 2019 00:53:25 -0700 Subject: [PATCH] Make Hass.io menu toggle button work in pre and post 90 release (#2959) --- hassio/src/hassio-app.js | 41 --------------------------------------- hassio/src/hassio-main.js | 11 +++++++++++ 2 files changed, 11 insertions(+), 41 deletions(-) delete mode 100644 hassio/src/hassio-app.js diff --git a/hassio/src/hassio-app.js b/hassio/src/hassio-app.js deleted file mode 100644 index a39072e583..0000000000 --- a/hassio/src/hassio-app.js +++ /dev/null @@ -1,41 +0,0 @@ -import { html } from "@polymer/polymer/lib/utils/html-tag"; -import { PolymerElement } from "@polymer/polymer/polymer-element"; - -import "./hassio-main"; -import "./resources/hassio-icons"; - -class HassioApp extends PolymerElement { - static get template() { - return html` - - `; - } - - static get properties() { - return { - hass: Object, - route: Object, - hassioPanel: { - type: Object, - value: window.parent.hassioPanel, - }, - }; - } - - ready() { - super.ready(); - window.setProperties = this.setProperties.bind(this); - this.addEventListener("location-changed", () => this._locationChanged()); - this.addEventListener("hass-toggle-menu", (ev) => - this.hassioPanel.fire("hass-toggle-menu", ev.detail) - ); - } - - _locationChanged() { - this.hassioPanel.navigate(window.location.pathname); - } -} - -customElements.define("hassio-app", HassioApp); diff --git a/hassio/src/hassio-main.js b/hassio/src/hassio-main.js index 8b207f9a00..84fbbc5383 100644 --- a/hassio/src/hassio-main.js +++ b/hassio/src/hassio-main.js @@ -79,6 +79,17 @@ class HassioMain extends EventsMixin(NavigateMixin(PolymerElement)) { super.ready(); applyThemesOnElement(this, this.hass.themes, this.hass.selectedTheme, true); this.addEventListener("hass-api-called", (ev) => this.apiCalled(ev)); + // Paulus - March 17, 2019 + // We went to a single hass-toggle-menu event in HA 0.90. However, the + // supervisor UI can also run under older versions of Home Assistant. + // So here we are going to translate toggle events into the appropriate + // open and close events. These events are a no-op in newer versions of + // Home Assistant. + this.addEventListener("hass-toggle-menu", () => { + window.parent.customPanel.fire( + this.hass.dockedSidebar ? "hass-close-menu" : "hass-open-menu" + ); + }); } connectedCallback() {