From 9408df6099c58d50623f8743ece5a61ba80ea404 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 30 Jun 2019 22:52:31 -0700 Subject: [PATCH] Fix Firefox --- src/components/ha-sidebar.ts | 109 ++++++++++++++++++----------------- 1 file changed, 55 insertions(+), 54 deletions(-) diff --git a/src/components/ha-sidebar.ts b/src/components/ha-sidebar.ts index 389f6010f3..1e4b75e3a5 100644 --- a/src/components/ha-sidebar.ts +++ b/src/components/ha-sidebar.ts @@ -27,11 +27,14 @@ import { subscribeNotifications, } from "../data/persistent_notification"; import computeDomain from "../common/entity/compute_domain"; +import { classMap } from "lit-html/directives/class-map"; const SHOW_AFTER_SPACER = ["config", "developer-tools"]; const computeUrl = (urlPath) => `/${urlPath}`; +const SUPPORT_SCROLL_IF_NEEDED = "scrollIntoViewIfNeeded" in document.body; + const SORT_VALUE = { map: 1, logbook: 2, @@ -187,45 +190,49 @@ class HaSidebar extends LitElement { ` : ""} + -
+
+ + + + ${notificationCount > 0 + ? html` + + ${notificationCount} + + ` + : ""} + + ${hass.localize("ui.notification_drawer.title")} + + + + + + - - - ${notificationCount > 0 - ? html` - - ${notificationCount} - - ` - : ""} - ${hass.localize("ui.notification_drawer.title")} + ${hass.user ? hass.user.name : ""} - - - - - - - ${hass.user ? hass.user.name : ""} - - - -
- + +
`; } @@ -258,6 +265,7 @@ class HaSidebar extends LitElement { protected firstUpdated(changedProps: PropertyValues) { super.firstUpdated(changedProps); + if (this.hass && this.hass.auth.external) { getExternalConfig(this.hass.auth.external).then((conf) => { this._externalConfig = conf; @@ -279,6 +287,16 @@ class HaSidebar extends LitElement { if (changedProps.has("alwaysExpand")) { this.expanded = this.alwaysExpand; } + if (SUPPORT_SCROLL_IF_NEEDED && !changedProps.has("hass")) { + return; + } + const oldHass = changedProps.get("hass") as HomeAssistant | undefined; + if (!oldHass || oldHass.panelUrl !== this.hass.panelUrl) { + this.shadowRoot!.querySelector( + ".iron-selected" + // @ts-ignore + )!.scrollIntoViewIfNeeded(); + } } private _contract() { @@ -357,15 +375,15 @@ class HaSidebar extends LitElement { } paper-listbox { - padding: 4px 0 0; + padding: 4px 0; display: flex; flex-direction: column; box-sizing: border-box; - height: calc(100% - 65px); + height: calc(100% - 196px); overflow-y: auto; } - paper-listbox > a { + a { color: var(--sidebar-text-color); font-weight: 500; font-size: 14px; @@ -440,13 +458,9 @@ class HaSidebar extends LitElement { } .notifications { - margin-top: 0; - margin-bottom: 0; - bottom: 72px; cursor: pointer; } .profile { - bottom: 24px; } .profile paper-icon-item { padding-left: 4px; @@ -454,19 +468,6 @@ class HaSidebar extends LitElement { .profile .item-text { margin-left: 8px; } - .bottom-spacer { - bottom: 0; - padding: 12px 0; - } - - .sticky-el { - position: -webkit-sticky; - position: sticky; - background-color: var( - --sidebar-background-color, - var(--primary-background-color) - ); - } .notification-badge { position: absolute;