From 7a9c2f56c55cde7523911823e12fd41dbfb7282a Mon Sep 17 00:00:00 2001 From: Yosi Levy <37745463+yosilevy@users.noreply.github.com> Date: Wed, 11 May 2022 12:01:45 +0300 Subject: [PATCH] Rtl menu fix (#12561) Co-authored-by: Bram Kragten --- src/components/ha-button-menu.ts | 15 +++++++++++++++ src/state/translations-mixin.ts | 4 ++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/components/ha-button-menu.ts b/src/components/ha-button-menu.ts index bf0d1d3487..d3a93cac68 100644 --- a/src/components/ha-button-menu.ts +++ b/src/components/ha-button-menu.ts @@ -50,6 +50,21 @@ export class HaButtonMenu extends LitElement { `; } + protected firstUpdated(changedProps): void { + super.firstUpdated(changedProps); + + if (document.dir === "rtl") { + this.updateComplete.then(() => { + this.querySelectorAll("mwc-list-item").forEach((item) => { + const style = document.createElement("style"); + style.innerHTML = + "span.material-icons:first-of-type { margin-left: var(--mdc-list-item-graphic-margin, 32px) !important; margin-right: 0px !important;}"; + item!.shadowRoot!.appendChild(style); + }); + }); + } + } + private _handleClick(): void { if (this.disabled) { return; diff --git a/src/state/translations-mixin.ts b/src/state/translations-mixin.ts index 5a118b67cc..76a37c6640 100644 --- a/src/state/translations-mixin.ts +++ b/src/state/translations-mixin.ts @@ -1,6 +1,6 @@ import { atLeastVersion } from "../common/config/version"; import { computeLocalize, LocalizeFunc } from "../common/translations/localize"; -import { computeRTL } from "../common/util/compute_rtl"; +import { computeRTLDirection } from "../common/util/compute_rtl"; import { debounce } from "../common/util/debounce"; import { getHassTranslations, @@ -180,7 +180,7 @@ export default >(superClass: T) => private _applyTranslations(hass: HomeAssistant) { document.querySelector("html")!.setAttribute("lang", hass.language); - this.style.direction = computeRTL(hass) ? "rtl" : "ltr"; + document.dir = computeRTLDirection(hass); this._loadCoreTranslations(hass.language); this.__loadedFragmetTranslations = new Set(); this._loadFragmentTranslations(hass.language, hass.panelUrl);