From ad6d30c224b1db9048b34a04b0e9bd7823f7bbea Mon Sep 17 00:00:00 2001 From: "Timothy Z." Date: Wed, 6 May 2026 22:28:03 +0300 Subject: [PATCH 1/8] player: improve sidedrawer mobile landscape styles --- src/routes/Player/SideDrawer/SideDrawer.less | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/routes/Player/SideDrawer/SideDrawer.less b/src/routes/Player/SideDrawer/SideDrawer.less index 31168db22..602724a80 100644 --- a/src/routes/Player/SideDrawer/SideDrawer.less +++ b/src/routes/Player/SideDrawer/SideDrawer.less @@ -7,6 +7,11 @@ action-buttons-container: action-buttons-container; } +:import('~stremio/components/MultiselectMenu/Dropdown/Dropdown.less') { + dropdown: dropdown; + open: open; +} + @padding: 1rem; .side-drawer { @@ -69,6 +74,7 @@ .info { padding: @padding; + min-height: 0; overflow-y: auto; .side-drawer-meta-preview { @@ -89,8 +95,11 @@ flex: 2; display: flex; flex-direction: column; + min-height: 0; .videos { + flex: 1; + min-height: 0; overflow-y: auto; } } @@ -109,6 +118,14 @@ @media @phone-landscape { .side-drawer { max-width: 50dvw; + + .info { + max-height: 40dvh; + } + + .dropdown.open { + max-height: calc(3rem * 4); + } } } From 7ac3756aa9aafb07e24d576c8d7403a9e90fd29b Mon Sep 17 00:00:00 2001 From: "Timothy Z." Date: Wed, 6 May 2026 22:32:56 +0300 Subject: [PATCH 2/8] player: respect PWA safe areas --- src/routes/Player/styles.less | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/routes/Player/styles.less b/src/routes/Player/styles.less index 23b0b0c32..8f2ad8053 100644 --- a/src/routes/Player/styles.less +++ b/src/routes/Player/styles.less @@ -55,6 +55,8 @@ html:not(.active-slider-within) { } &.nav-bar-layer { + left: var(--safe-area-inset-left); + right: var(--safe-area-inset-right); bottom: initial; background: transparent; overflow: visible; @@ -95,9 +97,11 @@ html:not(.active-slider-within) { } &.control-bar-layer { + left: var(--safe-area-inset-left); + right: var(--safe-area-inset-right); top: initial; overflow: visible; - padding-bottom: 0.5rem; + padding-bottom: calc(0.5rem + var(--safe-area-inset-bottom)); &::before { position: absolute; From f4a40d106dd8424d2ee73563f0ad3d0a75641e3c Mon Sep 17 00:00:00 2001 From: "Timothy Z." Date: Thu, 7 May 2026 11:01:35 +0300 Subject: [PATCH 3/8] bump: stremio-core-web to v0.57.0 --- package.json | 2 +- pnpm-lock.yaml | 19 ++++++++----------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index dd73785af..cd05a3f73 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@babel/runtime": "7.29.2", "@sentry/browser": "8.42.0", "@stremio/stremio-colors": "5.2.0", - "@stremio/stremio-core-web": "0.56.4", + "@stremio/stremio-core-web": "0.57.0", "@stremio/stremio-icons": "5.10.0", "@stremio/stremio-video": "0.0.78", "a-color-picker": "1.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 28201c156..118df7b53 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,8 +18,8 @@ importers: specifier: 5.2.0 version: 5.2.0 '@stremio/stremio-core-web': - specifier: 0.56.4 - version: 0.56.4 + specifier: 0.57.0 + version: 0.57.0 '@stremio/stremio-icons': specifier: 5.10.0 version: 5.10.0 @@ -123,12 +123,12 @@ importers: '@types/lodash.throttle': specifier: ^4.1.9 version: 4.1.9 - '@types/node': - specifier: ^25.6.0 - version: 25.6.0 '@types/magnet-uri': specifier: ^5.1.5 version: 5.1.5 + '@types/node': + specifier: ^25.6.0 + version: 25.6.0 '@types/react': specifier: ^18.3.28 version: 18.3.28 @@ -1394,8 +1394,8 @@ packages: '@stremio/stremio-colors@5.2.0': resolution: {integrity: sha512-dYlPgu9W/H7c9s1zmW5tiDnRenaUa4Hg1QCyOg1lhOcgSfM/bVTi5nnqX+IfvGTTUNA0zgzh8hI3o3miwnZxTg==} - '@stremio/stremio-core-web@0.56.4': - resolution: {integrity: sha512-tFAMYgKrJ1bkvHRMpxDykM/844sDjgRPFk6FLhjQiwh01OHIyEgDqGo/NgwFM+CuMR4mW676SDvwNHkK0Xqg3w==} + '@stremio/stremio-core-web@0.57.0': + resolution: {integrity: sha512-go8GZwGm6MFfjez6J/T1HrGNY2330EU3VoVinDYR0rE331aay6fenViLyCYLE829FTebW2eglrmc7MdHjmhqSA==} '@stremio/stremio-icons@5.10.0': resolution: {integrity: sha512-Zw/vGC3D2yeQfk8xv/tfMJTDvbCPOI91tBg4XpR2+EgbZSX8Xvm7Vz457PIhFPhTAwdOPHp0VX0M3gzjbt0zOg==} @@ -1497,9 +1497,6 @@ packages: '@types/mime@1.3.5': resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - '@types/node-forge@1.3.14': - resolution: {integrity: sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==} - '@types/node@25.6.0': resolution: {integrity: sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==} @@ -6447,7 +6444,7 @@ snapshots: '@stremio/stremio-colors@5.2.0': {} - '@stremio/stremio-core-web@0.56.4': + '@stremio/stremio-core-web@0.57.0': dependencies: '@babel/runtime': 7.24.1 From dabbd23cf5551b952d0b3ed33fc36050001ce2b4 Mon Sep 17 00:00:00 2001 From: "Timothy Z." Date: Thu, 7 May 2026 14:39:14 +0300 Subject: [PATCH 4/8] fix: scroll to start of the list when selecting --- src/routes/Player/SideDrawer/SideDrawer.tsx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/routes/Player/SideDrawer/SideDrawer.tsx b/src/routes/Player/SideDrawer/SideDrawer.tsx index 05ed63677..e2353c221 100644 --- a/src/routes/Player/SideDrawer/SideDrawer.tsx +++ b/src/routes/Player/SideDrawer/SideDrawer.tsx @@ -1,6 +1,6 @@ // Copyright (C) 2017-2024 Smart code 203358507 -import React, { useMemo, useCallback, useState, forwardRef, memo } from 'react'; +import React, { useMemo, useCallback, useState, useRef, forwardRef, memo } from 'react'; import classNames from 'classnames'; import Icon from '@stremio/stremio-icons/react'; import { useCore } from 'stremio/core'; @@ -22,6 +22,7 @@ const SideDrawer = memo(forwardRef(({ seriesInfo, classNa const core = useCore(); const [season, setSeason] = useState(seriesInfo?.season); const [selectedVideoId, setSelectedVideoId] = useState(null); + const videosRef = useRef(null); const metaItem = useMemo(() => { return seriesInfo ? @@ -47,8 +48,9 @@ const SideDrawer = memo(forwardRef(({ seriesInfo, classNa .sort((a, b) => (a || Number.MAX_SAFE_INTEGER) - (b || Number.MAX_SAFE_INTEGER)); }, [props.metaItem.videos]); - const seasonOnSelect = useCallback((event: { value: string }) => { - setSeason(parseInt(event.value)); + const seasonOnSelect = useCallback((event: { value: string | number }) => { + setSeason(parseInt(String(event.value), 10)); + videosRef.current?.scrollTo({ top: 0, left: 0 }); }, []); const seasonWatched = React.useMemo(() => { @@ -109,7 +111,7 @@ const SideDrawer = memo(forwardRef(({ seriesInfo, classNa seasons={seasons} onSelect={seasonOnSelect} /> -
+
{videos.map((video, index) => (