From 3e28b6f2e218f0d35cb46043c339b6c9187434d0 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 25 Feb 2019 11:53:46 -0800 Subject: [PATCH] Convert ha-menu-button to TS (#2825) * Convert ha-menu-button to TS * Address comments * Fix icon searcher --- src/components/ha-menu-button.js | 50 -------------------------------- src/components/ha-menu-button.ts | 44 ++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 50 deletions(-) delete mode 100644 src/components/ha-menu-button.js create mode 100644 src/components/ha-menu-button.ts diff --git a/src/components/ha-menu-button.js b/src/components/ha-menu-button.js deleted file mode 100644 index 80c959f541..0000000000 --- a/src/components/ha-menu-button.js +++ /dev/null @@ -1,50 +0,0 @@ -import "@polymer/paper-icon-button/paper-icon-button"; -import { html } from "@polymer/polymer/lib/utils/html-tag"; -import { PolymerElement } from "@polymer/polymer/polymer-element"; - -import EventsMixin from "../mixins/events-mixin"; - -/* - * @appliesMixin EventsMixin - */ -class HaMenuButton extends EventsMixin(PolymerElement) { - static get template() { - return html` - - `; - } - - static get properties() { - return { - narrow: { - type: Boolean, - value: false, - }, - - showMenu: { - type: Boolean, - value: false, - }, - - hassio: { - type: Boolean, - value: false, - }, - }; - } - - toggleMenu(ev) { - ev.stopPropagation(); - this.fire(this.showMenu ? "hass-close-menu" : "hass-open-menu"); - } - - _getIcon(hassio) { - // hass:menu - return `${hassio ? "hassio" : "hass"}:menu`; - } -} - -customElements.define("ha-menu-button", HaMenuButton); diff --git a/src/components/ha-menu-button.ts b/src/components/ha-menu-button.ts new file mode 100644 index 0000000000..199d5228ac --- /dev/null +++ b/src/components/ha-menu-button.ts @@ -0,0 +1,44 @@ +import "@polymer/paper-icon-button/paper-icon-button"; +import { + property, + TemplateResult, + LitElement, + html, + customElement, +} from "lit-element"; + +import { fireEvent } from "../common/dom/fire_event"; + +@customElement("ha-menu-button") +class HaMenuButton extends LitElement { + @property({ type: Boolean }) + public showMenu = false; + + @property({ type: Boolean }) + public hassio = false; + + protected render(): TemplateResult | void { + return html` + + `; + } + + // We are not going to use ShadowDOM as we're rendering a single element + // without any CSS used. + protected createRenderRoot(): Element | ShadowRoot { + return this; + } + + private _toggleMenu(): void { + fireEvent(this, this.showMenu ? "hass-close-menu" : "hass-open-menu"); + } +} + +declare global { + interface HTMLElementTagNameMap { + "ha-menu-button": HaMenuButton; + } +}