From 892f5b73cf853eb047cb09fedcca7e7b92932e06 Mon Sep 17 00:00:00 2001 From: Hadi Charara Date: Thu, 13 Oct 2022 13:59:48 -0400 Subject: [PATCH] Fixed all reported issues --- .../metadataEditor.template.html | 8 ++--- src/components/metadataEditor/style.scss | 2 +- .../emby-scrollbuttons/emby-scrollbuttons.js | 6 ++-- src/elements/emby-slider/emby-slider.js | 4 +-- src/libraries/navdrawer/navdrawer.js | 5 +++- src/scripts/globalize.js | 29 +++++++++---------- 6 files changed, 28 insertions(+), 26 deletions(-) diff --git a/src/components/metadataEditor/metadataEditor.template.html b/src/components/metadataEditor/metadataEditor.template.html index b0d73793d2..eda5d84e0d 100644 --- a/src/components/metadataEditor/metadataEditor.template.html +++ b/src/components/metadataEditor/metadataEditor.template.html @@ -194,7 +194,7 @@

${Genres}

-
@@ -203,7 +203,7 @@

${People}

-
@@ -213,7 +213,7 @@

${Studios}

-
@@ -222,7 +222,7 @@

${Tags}

-
diff --git a/src/components/metadataEditor/style.scss b/src/components/metadataEditor/style.scss index bf10dcdcdd..2b36a96eda 100644 --- a/src/components/metadataEditor/style.scss +++ b/src/components/metadataEditor/style.scss @@ -8,7 +8,7 @@ } } -.marginLeft { +.metadataFormFields .marginStart { [dir="ltr"] & { margin-left: 1em; } diff --git a/src/elements/emby-scrollbuttons/emby-scrollbuttons.js b/src/elements/emby-scrollbuttons/emby-scrollbuttons.js index 76db38a908..e7fa1df29f 100644 --- a/src/elements/emby-scrollbuttons/emby-scrollbuttons.js +++ b/src/elements/emby-scrollbuttons/emby-scrollbuttons.js @@ -40,13 +40,13 @@ const EmbyScrollButtonsPrototype = Object.create(HTMLDivElement.prototype); } function updateScrollButtons(scrollButtons, scrollSize, scrollPos, scrollWidth) { - // TODO: Check if hack is really needed - // hack alert add twenty for rounding errors let localeAwarePos = scrollPos; - if (globalize.getElementIsRTL(scrollButtons)) { + if (globalize.getIsElementRTL(scrollButtons)) { localeAwarePos *= -1; } + // TODO: Check if hack is really needed + // hack alert add twenty for rounding errors if (scrollWidth <= scrollSize + 20) { scrollButtons.scrollButtonsLeft.classList.add('hide'); scrollButtons.scrollButtonsRight.classList.add('hide'); diff --git a/src/elements/emby-slider/emby-slider.js b/src/elements/emby-slider/emby-slider.js index d49b1b8ff0..7ce7b02ab6 100644 --- a/src/elements/emby-slider/emby-slider.js +++ b/src/elements/emby-slider/emby-slider.js @@ -32,7 +32,7 @@ import globalize from '../../scripts/globalize'; const rect = range.sliderBubbleTrack.getBoundingClientRect(); let fraction = (clientX - rect.left) / rect.width; - if (globalize.getElementIsRTL(range)) + if (globalize.getIsElementRTL(range)) fraction = (rect.right - clientX) / rect.width; // Snap to step @@ -121,7 +121,7 @@ import globalize from '../../scripts/globalize'; const bubbleRect = bubble.getBoundingClientRect(); let bubblePos = bubbleTrackRect.width * value / 100; - if (globalize.getElementIsRTL(range)) { + if (globalize.getIsElementRTL(range)) { bubblePos = bubbleTrackRect.width - bubblePos; } bubblePos = Math.min(Math.max(bubblePos, bubbleRect.width / 2), bubbleTrackRect.width - bubbleRect.width / 2); diff --git a/src/libraries/navdrawer/navdrawer.js b/src/libraries/navdrawer/navdrawer.js index 3f409568f0..bd27b6e55c 100644 --- a/src/libraries/navdrawer/navdrawer.js +++ b/src/libraries/navdrawer/navdrawer.js @@ -206,7 +206,10 @@ class NavDrawer { options.target.classList.add('touch-menu-la'); options.target.style.width = options.width + 'px'; - options.target.style.insetInlineStart = -options.width + 'px'; + if (globalize.getIsRTL()) + options.target.style.right = -options.width + 'px'; + else + options.target.style.left = -options.width + 'px'; if (!options.disableMask) { this.mask = document.createElement('div'); diff --git a/src/scripts/globalize.js b/src/scripts/globalize.js index af51255a71..3198b1b537 100644 --- a/src/scripts/globalize.js +++ b/src/scripts/globalize.js @@ -3,6 +3,11 @@ import isEmpty from 'lodash-es/isEmpty'; import { currentSettings as userSettings } from './settings/userSettings'; +const Direction = { + rtl: "rtl", + ltr: "ltr" +}; + /* eslint-disable indent */ const fallbackCulture = 'en-us'; @@ -46,6 +51,7 @@ import { currentSettings as userSettings } from './settings/userSettings'; function checkAndProcessDir(culture) { isRTL = false; + console.log(culture); for (const lang of RTL_LANGS) { if (culture.includes(lang)) { isRTL = true; @@ -53,24 +59,17 @@ import { currentSettings as userSettings } from './settings/userSettings'; } } - if (isRTL) - processIsRTL(); - else - processIsLTR(); + setDocumentDirection(isRTL ? Direction.rtl : Direction.ltr); } - function processIsRTL() { - document.getElementsByTagName('body')[0].setAttribute('dir', 'rtl'); - document.getElementsByTagName('html')[0].setAttribute('dir', 'rtl'); - import('../styles/rtl.scss'); + function setDocumentDirection(direction) { + document.getElementsByTagName('body')[0].setAttribute('dir', direction); + document.getElementsByTagName('html')[0].setAttribute('dir', direction); + if (direction === Direction.rtl) + import('../styles/rtl.scss'); } - function processIsLTR() { - document.getElementsByTagName('body')[0].setAttribute('dir', 'ltr'); - document.getElementsByTagName('html')[0].setAttribute('dir', 'ltr'); - } - - export function getElementIsRTL(element) { + export function getIsElementRTL(element) { if (window.getComputedStyle) { // all browsers return window.getComputedStyle(element, null).getPropertyValue('direction') == 'rtl'; } @@ -299,7 +298,7 @@ export default { register, updateCurrentCulture, getIsRTL, - getElementIsRTL + getIsElementRTL }; /* eslint-enable indent */