mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Fixed scrollbuttons on desktop
This commit is contained in:
parent
ea85b4a6d7
commit
bcdc67b522
2 changed files with 12 additions and 3 deletions
|
@ -1,7 +1,7 @@
|
||||||
import './emby-scrollbuttons.scss';
|
import './emby-scrollbuttons.scss';
|
||||||
import 'webcomponents.js/webcomponents-lite';
|
import 'webcomponents.js/webcomponents-lite';
|
||||||
import '../emby-button/paper-icon-button-light';
|
import '../emby-button/paper-icon-button-light';
|
||||||
import globalize from '../../scripts/globalize';
|
import globalize, { getIsRTL } from '../../scripts/globalize';
|
||||||
|
|
||||||
/* eslint-disable indent */
|
/* eslint-disable indent */
|
||||||
|
|
||||||
|
@ -42,18 +42,23 @@ const EmbyScrollButtonsPrototype = Object.create(HTMLDivElement.prototype);
|
||||||
function updateScrollButtons(scrollButtons, scrollSize, scrollPos, scrollWidth) {
|
function updateScrollButtons(scrollButtons, scrollSize, scrollPos, scrollWidth) {
|
||||||
// TODO: Check if hack is really needed
|
// TODO: Check if hack is really needed
|
||||||
// hack alert add twenty for rounding errors
|
// hack alert add twenty for rounding errors
|
||||||
|
let localeAwarePos = scrollPos;
|
||||||
|
if (getIsRTL()) {
|
||||||
|
localeAwarePos *= -1;
|
||||||
|
}
|
||||||
|
|
||||||
if (scrollWidth <= scrollSize + 20) {
|
if (scrollWidth <= scrollSize + 20) {
|
||||||
scrollButtons.scrollButtonsLeft.classList.add('hide');
|
scrollButtons.scrollButtonsLeft.classList.add('hide');
|
||||||
scrollButtons.scrollButtonsRight.classList.add('hide');
|
scrollButtons.scrollButtonsRight.classList.add('hide');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (scrollPos > 0) {
|
if (localeAwarePos > 0) {
|
||||||
scrollButtons.scrollButtonsLeft.disabled = false;
|
scrollButtons.scrollButtonsLeft.disabled = false;
|
||||||
} else {
|
} else {
|
||||||
scrollButtons.scrollButtonsLeft.disabled = true;
|
scrollButtons.scrollButtonsLeft.disabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const scrollPosEnd = scrollPos + scrollSize;
|
const scrollPosEnd = localeAwarePos + scrollSize;
|
||||||
if (scrollWidth > 0 && scrollPosEnd >= scrollWidth) {
|
if (scrollWidth > 0 && scrollPosEnd >= scrollWidth) {
|
||||||
scrollButtons.scrollButtonsRight.disabled = true;
|
scrollButtons.scrollButtonsRight.disabled = true;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -9,6 +9,7 @@ import dom from '../scripts/dom';
|
||||||
import focusManager from '../components/focusManager';
|
import focusManager from '../components/focusManager';
|
||||||
import ResizeObserver from 'resize-observer-polyfill';
|
import ResizeObserver from 'resize-observer-polyfill';
|
||||||
import '../assets/css/scrollstyles.scss';
|
import '../assets/css/scrollstyles.scss';
|
||||||
|
import { getIsRTL } from '../scripts/globalize';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return type of the value.
|
* Return type of the value.
|
||||||
|
@ -268,6 +269,9 @@ const scrollerFactory = function (frame, options) {
|
||||||
newPos = within(newPos, pos.start, pos.end);
|
newPos = within(newPos, pos.start, pos.end);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (getIsRTL())
|
||||||
|
newPos *= -1;
|
||||||
|
|
||||||
if (!transform) {
|
if (!transform) {
|
||||||
nativeScrollTo(nativeScrollElement, newPos, immediate);
|
nativeScrollTo(nativeScrollElement, newPos, immediate);
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue