From 445693508ec6d078c0d1c5ec9993bb2246c56093 Mon Sep 17 00:00:00 2001 From: Alexandru Branza Date: Sun, 25 Feb 2024 16:22:48 +0200 Subject: [PATCH 01/15] ensure stremio-server is loaded before loading a video --- src/routes/Player/Player.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/routes/Player/Player.js b/src/routes/Player/Player.js index 713796b5a..3c79c3331 100644 --- a/src/routes/Player/Player.js +++ b/src/routes/Player/Player.js @@ -269,7 +269,8 @@ const Player = ({ urlParams, queryParams }) => { setError(null); if (player.selected === null) { video.unload(); - } else if (player.selected.metaRequest === null || (player.metaItem !== null && player.metaItem.type !== 'Loading')) { + } else if (streamingServer.settings !== null && streamingServer.settings.type !== 'Loading' && + (player.selected.metaRequest === null || (player.metaItem !== null && player.metaItem.type !== 'Loading'))) { video.load({ stream: { ...player.selected.stream, From 455c8e314c22882906d35397555cfd87dd4732e2 Mon Sep 17 00:00:00 2001 From: Tim Date: Tue, 27 Feb 2024 09:53:05 +0100 Subject: [PATCH 02/15] refactor(Library): use LoadNextPage instead of pagination logic --- src/routes/Library/Library.js | 28 ++++++++++++-------- src/routes/Library/styles.less | 31 ----------------------- src/routes/Library/useLibrary.js | 14 ++++++++-- src/routes/Library/useSelectableInputs.js | 16 +----------- 4 files changed, 31 insertions(+), 58 deletions(-) diff --git a/src/routes/Library/Library.js b/src/routes/Library/Library.js index e45dd585a..6fb71e85d 100644 --- a/src/routes/Library/Library.js +++ b/src/routes/Library/Library.js @@ -5,11 +5,13 @@ const PropTypes = require('prop-types'); const classnames = require('classnames'); const { default: Icon } = require('@stremio/stremio-icons/react'); const NotFound = require('stremio/routes/NotFound'); -const { Button, DelayedRenderer, Multiselect, MainNavBars, LibItem, Image, ModalDialog, PaginationInput, useProfile, useNotifications, routesRegexp, useBinaryState, withCoreSuspender } = require('stremio/common'); +const { Button, DelayedRenderer, Multiselect, MainNavBars, LibItem, Image, ModalDialog, useProfile, useNotifications, routesRegexp, useOnScrollToBottom, useBinaryState, withCoreSuspender } = require('stremio/common'); const useLibrary = require('./useLibrary'); const useSelectableInputs = require('./useSelectableInputs'); const styles = require('./styles'); +const SCROLL_TO_BOTTOM_TRESHOLD = 400; + function withModel(Library) { const withModel = ({ urlParams, queryParams }) => { const model = React.useMemo(() => { @@ -46,9 +48,21 @@ function withModel(Library) { const Library = ({ model, urlParams, queryParams }) => { const profile = useProfile(); const notifications = useNotifications(); - const library = useLibrary(model, urlParams, queryParams); - const [typeSelect, sortSelect, paginationInput] = useSelectableInputs(library); + const [library, loadNextPage] = useLibrary(model, urlParams, queryParams); + const [typeSelect, sortSelect, hasNextPage] = useSelectableInputs(library); const [inputsModalOpen, openInputsModal, closeInputsModal] = useBinaryState(false); + const scrollContainerRef = React.useRef(null); + const onScrollToBottom = React.useCallback(() => { + if (hasNextPage) { + loadNextPage(); + } + }, [hasNextPage, loadNextPage]); + const onScroll = useOnScrollToBottom(onScrollToBottom, SCROLL_TO_BOTTOM_TRESHOLD); + React.useLayoutEffect(() => { + if (library.selected && library.selected.request.page === 1) { + scrollContainerRef.current.scrollTop = 0; + } + }, [library.selected]); return (
@@ -58,12 +72,6 @@ const Library = ({ model, urlParams, queryParams }) => {
- { - paginationInput !== null ? - - : - null - } @@ -107,7 +115,7 @@ const Library = ({ model, urlParams, queryParams }) => {
Empty {model === 'library' ? 'Library' : 'Continue Watching'}
: -
+
{library.catalog.map((libItem, index) => ( ))} diff --git a/src/routes/Library/styles.less b/src/routes/Library/styles.less index 87062fb9b..ee89347ae 100644 --- a/src/routes/Library/styles.less +++ b/src/routes/Library/styles.less @@ -7,13 +7,6 @@ multiselect-menu-container: menu-container; } -:import('~stremio/common/PaginationInput/styles.less') { - pagination-prev-button-container: prev-button-container; - pagination-next-button-container: next-button-container; - pagination-button-icon: icon; - pagination-label: label; -} - :import('~stremio/common/ModalDialog/styles.less') { selectable-inputs-modal-container: modal-dialog-container; selectable-inputs-modal-content: modal-dialog-content; @@ -75,26 +68,6 @@ .spacing { flex: 1; } - - .pagination-input { - flex: none; - height: 3rem; - margin-left: 1.5rem; - - .pagination-prev-button-container, .pagination-next-button-container { - width: 3rem; - height: 3rem; - - .pagination-button-icon { - width: 1rem; - height: 1rem; - } - } - - .pagination-label { - width: 3rem; - } - } } .message-container { @@ -277,10 +250,6 @@ display: none; } - .pagination-input { - margin-left: 0; - } - .filter-container { display: flex; } diff --git a/src/routes/Library/useLibrary.js b/src/routes/Library/useLibrary.js index 8b6dee216..a7e1aeb68 100644 --- a/src/routes/Library/useLibrary.js +++ b/src/routes/Library/useLibrary.js @@ -1,9 +1,19 @@ // Copyright (C) 2017-2023 Smart code 203358507 const React = require('react'); +const { useServices } = require('stremio/services'); const { useModelState } = require('stremio/common'); const useLibrary = (model, urlParams, queryParams) => { + const { core } = useServices(); + const loadNextPage = React.useCallback(() => { + core.transport.dispatch({ + action: 'LibraryWithFilters', + args: { + action: 'LoadNextPage', + } + }, 'library'); + }, []); const action = React.useMemo(() => ({ action: 'Load', args: { @@ -12,12 +22,12 @@ const useLibrary = (model, urlParams, queryParams) => { request: { type: typeof urlParams.type === 'string' ? urlParams.type : null, sort: queryParams.has('sort') ? queryParams.get('sort') : undefined, - page: queryParams.has('page') ? parseInt(queryParams.get('page'), 10) : undefined } } } }), [urlParams, queryParams]); - return useModelState({ model, action }); + const library = useModelState({ model, action }); + return [library, loadNextPage]; }; module.exports = useLibrary; diff --git a/src/routes/Library/useSelectableInputs.js b/src/routes/Library/useSelectableInputs.js index f98307479..2121d1392 100644 --- a/src/routes/Library/useSelectableInputs.js +++ b/src/routes/Library/useSelectableInputs.js @@ -32,21 +32,7 @@ const mapSelectableInputs = (library, t) => { window.location = event.value; } }; - const paginationInput = library.selectable.prevPage || library.selectable.nextPage ? - { - label: library.selected.request.page.toString(), - onSelect: (event) => { - if (event.value === 'prev' && library.selectable.prevPage) { - window.location = library.selectable.prevPage.deepLinks.library; - } - if (event.value === 'next' && library.selectable.nextPage) { - window.location = library.selectable.nextPage.deepLinks.library; - } - } - } - : - null; - return [typeSelect, sortSelect, paginationInput]; + return [typeSelect, sortSelect, library.selectable.nextPage]; }; const useSelectableInputs = (library) => { From ed7d854a85b29d8ad1bc647927e2aeb62b2a2158 Mon Sep 17 00:00:00 2001 From: Tim Date: Mon, 4 Mar 2024 08:25:57 +0100 Subject: [PATCH 03/15] fix(useBoard): remove timeout causing to be stuck in loading state --- src/routes/Board/useBoard.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/Board/useBoard.js b/src/routes/Board/useBoard.js index 06f043d52..30aa1ff3b 100644 --- a/src/routes/Board/useBoard.js +++ b/src/routes/Board/useBoard.js @@ -22,7 +22,7 @@ const useBoard = () => { } }, 'board'); }, []); - const board = useModelState({ model: 'board', timeout: 1500, action }); + const board = useModelState({ model: 'board', action }); return [board, loadRange]; }; From 6d9ce8ad66662346b18aa96a1845a3af617abdcf Mon Sep 17 00:00:00 2001 From: Tim Date: Tue, 5 Mar 2024 11:44:21 +0100 Subject: [PATCH 04/15] feat: add m3u as external player option --- src/common/CONSTANTS.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/common/CONSTANTS.js b/src/common/CONSTANTS.js index 50bc770c9..aeaa51462 100644 --- a/src/common/CONSTANTS.js +++ b/src/common/CONSTANTS.js @@ -81,6 +81,11 @@ const EXTERNAL_PLAYERS = [ value: 'outplayer', platforms: ['ios'], }, + { + label: 'M3U Playlist', + value: 'm3u', + platforms: ['ios', 'android', 'windows', 'linux', 'macos'], + }, ]; module.exports = { From 04be3595e7bbe4a1ae846e0d1547a361f77eb167 Mon Sep 17 00:00:00 2001 From: kKaskak <117831817+kKaskak@users.noreply.github.com> Date: Tue, 5 Mar 2024 16:08:09 +0200 Subject: [PATCH 05/15] Update styles.less --- src/App/styles.less | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/App/styles.less b/src/App/styles.less index 4493c3c9d..a2581a88f 100644 --- a/src/App/styles.less +++ b/src/App/styles.less @@ -184,6 +184,10 @@ html { .toasts-container { padding: 0 1rem; } + + .tooltip-container { + display: none; + } } } } From 5472b053ccc03802047a365fc4708a2caa6b9193 Mon Sep 17 00:00:00 2001 From: kKaskak <117831817+kKaskak@users.noreply.github.com> Date: Wed, 6 Mar 2024 16:31:27 +0200 Subject: [PATCH 06/15] fix: metaitem titles overflow --- src/common/MetaItem/styles.less | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/common/MetaItem/styles.less b/src/common/MetaItem/styles.less index 1af8111c0..0e2be4c53 100644 --- a/src/common/MetaItem/styles.less +++ b/src/common/MetaItem/styles.less @@ -317,11 +317,15 @@ .title-label { flex: 1; - max-height: 2.4em; + max-height: 2.6em; padding-left: 1.5rem; font-weight: 600; text-align: center; color: var(--primary-foreground-color); + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; &:only-child { padding: 0 0.5rem; From 8ee64da468c937f4fdf63c5e93b9ff874b7e05f8 Mon Sep 17 00:00:00 2001 From: dexter21767-dev Date: Wed, 6 Mar 2024 23:55:50 +0100 Subject: [PATCH 07/15] add background to addon modal --- src/common/AddonDetailsModal/AddonDetailsModal.js | 3 ++- src/common/ModalDialog/ModalDialog.js | 5 +++-- src/common/ModalDialog/styles.less | 6 +++++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/common/AddonDetailsModal/AddonDetailsModal.js b/src/common/AddonDetailsModal/AddonDetailsModal.js index 3f2fe8c52..ec3e65233 100644 --- a/src/common/AddonDetailsModal/AddonDetailsModal.js +++ b/src/common/AddonDetailsModal/AddonDetailsModal.js @@ -28,6 +28,7 @@ function withRemoteAndLocalAddon(AddonDetails) { id={addon.manifest.id} name={addon.manifest.name} version={addon.manifest.version} + background={addon.manifest.background} logo={addon.manifest.logo} description={addon.manifest.description} types={addon.manifest.types} @@ -133,7 +134,7 @@ const AddonDetailsModal = ({ transportUrl, onCloseRequest }) => { return toggleButton !== null ? configureButton ? [cancelButton, configureButton, toggleButton] : [cancelButton, toggleButton] : [cancelButton]; }, [addonDetails, onCloseRequest]); return ( - + { addonDetails.selected === null ?
diff --git a/src/common/ModalDialog/ModalDialog.js b/src/common/ModalDialog/ModalDialog.js index e7e2e8056..aaf4cded7 100644 --- a/src/common/ModalDialog/ModalDialog.js +++ b/src/common/ModalDialog/ModalDialog.js @@ -9,7 +9,7 @@ const { default: Icon } = require('@stremio/stremio-icons/react'); const { Modal } = require('stremio-router'); const styles = require('./styles'); -const ModalDialog = ({ className, title, buttons, children, dataset, onCloseRequest, ...props }) => { +const ModalDialog = ({ className, title, buttons, children, dataset, onCloseRequest, background, ...props }) => { const routeFocused = useRouteFocused(); const modalsContainer = useModalsContainer(); const modalContainerRef = React.useRef(null); @@ -58,7 +58,7 @@ const ModalDialog = ({ className, title, buttons, children, dataset, onCloseRequ }, [routeFocused, dataset, onCloseRequest]); return ( -
+
@@ -102,6 +102,7 @@ const ModalDialog = ({ className, title, buttons, children, dataset, onCloseRequ ModalDialog.propTypes = { className: PropTypes.string, title: PropTypes.string, + background: PropTypes.string, buttons: PropTypes.arrayOf(PropTypes.shape({ className: PropTypes.string, label: PropTypes.string, diff --git a/src/common/ModalDialog/styles.less b/src/common/ModalDialog/styles.less index 796685b38..9cad2571a 100644 --- a/src/common/ModalDialog/styles.less +++ b/src/common/ModalDialog/styles.less @@ -19,6 +19,9 @@ padding: 0 2rem; border-radius: var(--border-radius); background-color: var(--modal-background-color); + background-size: cover; + background-position: center; + background-blend-mode: overlay; // set to 'color' on desktop version box-shadow: var(--outer-glow); .close-button-container { @@ -38,7 +41,8 @@ opacity: 0.4; } - &:hover, &:focus { + &:hover, + &:focus { .icon { opacity: 1; color: var(--primary-foreground-color); From 372864539937a56ca02573e644b3853de63d4905 Mon Sep 17 00:00:00 2001 From: Tim Date: Thu, 7 Mar 2024 12:22:28 +0100 Subject: [PATCH 08/15] refactor: addon details modal background --- .../AddonDetailsModal/AddonDetailsModal.js | 5 +- src/common/ModalDialog/ModalDialog.js | 65 +++++++++-------- src/common/ModalDialog/styles.less | 72 +++++++++++-------- 3 files changed, 82 insertions(+), 60 deletions(-) diff --git a/src/common/AddonDetailsModal/AddonDetailsModal.js b/src/common/AddonDetailsModal/AddonDetailsModal.js index ec3e65233..085925aac 100644 --- a/src/common/AddonDetailsModal/AddonDetailsModal.js +++ b/src/common/AddonDetailsModal/AddonDetailsModal.js @@ -133,8 +133,11 @@ const AddonDetailsModal = ({ transportUrl, onCloseRequest }) => { null; return toggleButton !== null ? configureButton ? [cancelButton, configureButton, toggleButton] : [cancelButton, toggleButton] : [cancelButton]; }, [addonDetails, onCloseRequest]); + const modalBackground = React.useMemo(() => { + return addonDetails.remoteAddon?.content.type === 'Ready' ? addonDetails.remoteAddon.content.content.manifest.background : null; + }, [addonDetails.remoteAddon]); return ( - + { addonDetails.selected === null ?
diff --git a/src/common/ModalDialog/ModalDialog.js b/src/common/ModalDialog/ModalDialog.js index aaf4cded7..52d0a2513 100644 --- a/src/common/ModalDialog/ModalDialog.js +++ b/src/common/ModalDialog/ModalDialog.js @@ -58,42 +58,45 @@ const ModalDialog = ({ className, title, buttons, children, dataset, onCloseRequ }, [routeFocused, dataset, onCloseRequest]); return ( -
+
+
- { - typeof title === 'string' && title.length > 0 ? -
{title}
- : - null - }
- {children} + { + typeof title === 'string' && title.length > 0 ? +
{title}
+ : + null + } +
+ {children} +
+ { + Array.isArray(buttons) && buttons.length > 0 ? +
+ {buttons.map(({ className, label, icon, props }, index) => ( + + ))} +
+ : + null + }
- { - Array.isArray(buttons) && buttons.length > 0 ? -
- {buttons.map(({ className, label, icon, props }, index) => ( - - ))} -
- : - null - }
); diff --git a/src/common/ModalDialog/styles.less b/src/common/ModalDialog/styles.less index 9cad2571a..c3d1ae0d4 100644 --- a/src/common/ModalDialog/styles.less +++ b/src/common/ModalDialog/styles.less @@ -19,11 +19,20 @@ padding: 0 2rem; border-radius: var(--border-radius); background-color: var(--modal-background-color); - background-size: cover; - background-position: center; - background-blend-mode: overlay; // set to 'color' on desktop version box-shadow: var(--outer-glow); + .modal-dialog-background { + z-index: 0; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + background-size: cover; + background-position: center; + opacity: 0.1; + } + .close-button-container { position: absolute; top: 0.5rem; @@ -54,36 +63,43 @@ } } - .title-container { - flex: 1 0 auto; - display: flex; - align-items: center; - height: 4.5rem; - font-size: 1.2rem; - font-weight: 500; - color: var(--primary-foreground-color); - } - .modal-dialog-content { - flex: 1; - align-self: stretch; - overflow-y: auto; - padding: 2rem 0; + z-index: 1; + position: relative; + height: 100%; + width: 100%; - &:last-child { - margin-bottom: 2rem; + .title-container { + flex: 1 0 auto; + display: flex; + align-items: center; + height: 4.5rem; + font-size: 1.2rem; + font-weight: 500; + color: var(--primary-foreground-color); } - } - .buttons-container { - flex: none; - align-self: stretch; - display: flex; - flex-direction: row; - flex-wrap: wrap; + .modal-dialog-content { + flex: 1; + align-self: stretch; + overflow-y: auto; + padding: 2rem 0; - &:last-child { - margin: 2rem 0; + &:last-child { + margin-bottom: 2rem; + } + } + + .buttons-container { + flex: none; + align-self: stretch; + display: flex; + flex-direction: row; + flex-wrap: wrap; + + &:last-child { + margin: 2rem 0; + } } } } From c646a9c849cfac9f8c5bfda0fab8b66d91cb6c71 Mon Sep 17 00:00:00 2001 From: kKaskak <117831817+kKaskak@users.noreply.github.com> Date: Thu, 7 Mar 2024 14:15:59 +0200 Subject: [PATCH 09/15] delete: max-height property --- src/common/MetaItem/styles.less | 1 - src/routes/Player/Player.js | 7 +++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/common/MetaItem/styles.less b/src/common/MetaItem/styles.less index 0e2be4c53..8abf13d32 100644 --- a/src/common/MetaItem/styles.less +++ b/src/common/MetaItem/styles.less @@ -317,7 +317,6 @@ .title-label { flex: 1; - max-height: 2.6em; padding-left: 1.5rem; font-weight: 600; text-align: center; diff --git a/src/routes/Player/Player.js b/src/routes/Player/Player.js index 3c79c3331..aeedc6490 100644 --- a/src/routes/Player/Player.js +++ b/src/routes/Player/Player.js @@ -201,6 +201,8 @@ const Player = ({ urlParams, queryParams }) => { nextVideo(); const deepLinks = player.nextVideo.deepLinks; + // eslint-disable-next-line no-console + console.log(deepLinks); if (deepLinks.metaDetailsStreams && deepLinks.player) { window.location.replace(deepLinks.metaDetailsStreams); window.location.href = deepLinks.player; @@ -598,6 +600,11 @@ const Player = ({ urlParams, queryParams }) => { }; }, []); + // eslint-disable-next-line no-console + console.log(player); + // eslint-disable-next-line no-console + console.log(video); + return (
Date: Thu, 7 Mar 2024 14:16:23 +0200 Subject: [PATCH 10/15] Revert "delete: max-height property" This reverts commit c646a9c849cfac9f8c5bfda0fab8b66d91cb6c71. --- src/common/MetaItem/styles.less | 1 + src/routes/Player/Player.js | 7 ------- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/src/common/MetaItem/styles.less b/src/common/MetaItem/styles.less index 8abf13d32..0e2be4c53 100644 --- a/src/common/MetaItem/styles.less +++ b/src/common/MetaItem/styles.less @@ -317,6 +317,7 @@ .title-label { flex: 1; + max-height: 2.6em; padding-left: 1.5rem; font-weight: 600; text-align: center; diff --git a/src/routes/Player/Player.js b/src/routes/Player/Player.js index aeedc6490..3c79c3331 100644 --- a/src/routes/Player/Player.js +++ b/src/routes/Player/Player.js @@ -201,8 +201,6 @@ const Player = ({ urlParams, queryParams }) => { nextVideo(); const deepLinks = player.nextVideo.deepLinks; - // eslint-disable-next-line no-console - console.log(deepLinks); if (deepLinks.metaDetailsStreams && deepLinks.player) { window.location.replace(deepLinks.metaDetailsStreams); window.location.href = deepLinks.player; @@ -600,11 +598,6 @@ const Player = ({ urlParams, queryParams }) => { }; }, []); - // eslint-disable-next-line no-console - console.log(player); - // eslint-disable-next-line no-console - console.log(video); - return (
Date: Thu, 7 Mar 2024 14:16:48 +0200 Subject: [PATCH 11/15] delete: max-height property --- src/common/MetaItem/styles.less | 1 - 1 file changed, 1 deletion(-) diff --git a/src/common/MetaItem/styles.less b/src/common/MetaItem/styles.less index 0e2be4c53..8abf13d32 100644 --- a/src/common/MetaItem/styles.less +++ b/src/common/MetaItem/styles.less @@ -317,7 +317,6 @@ .title-label { flex: 1; - max-height: 2.6em; padding-left: 1.5rem; font-weight: 600; text-align: center; From b9e0c7a4cb1f91a8e5e15d42bb5af5a1cb8971b4 Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 13 Mar 2024 17:48:58 +0100 Subject: [PATCH 12/15] chore: update stremio-core-web --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index c40f9af6a..3b2684f62 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@babel/runtime": "7.16.0", "@sentry/browser": "6.13.3", "@stremio/stremio-colors": "5.0.1", - "@stremio/stremio-core-web": "0.46.3", + "@stremio/stremio-core-web": "0.47.0", "@stremio/stremio-icons": "5.2.0", "@stremio/stremio-video": "0.0.38", "a-color-picker": "1.2.1", @@ -2969,9 +2969,9 @@ "license": "MIT" }, "node_modules/@stremio/stremio-core-web": { - "version": "0.46.3", - "resolved": "https://registry.npmjs.org/@stremio/stremio-core-web/-/stremio-core-web-0.46.3.tgz", - "integrity": "sha512-5us8KQQ0EJ2xjLukcLu3yia7fa8BIjxjOwbMebpSLGEomq6MzVQMmRGp/7rId2ggfIej2Zwf/GBVepZ2/nLE4A==", + "version": "0.47.0", + "resolved": "https://registry.npmjs.org/@stremio/stremio-core-web/-/stremio-core-web-0.47.0.tgz", + "integrity": "sha512-//wXNpVFnKjVegPjAKPLz+SanGvk/p+4cuDAvZst5igi+wCw/wbsxOssq8HZbq1QvaeFQdpttW0HXbkzLcyf8Q==", "dependencies": { "@babel/runtime": "7.16.0" } diff --git a/package.json b/package.json index e36a69c38..dca1280da 100755 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "@babel/runtime": "7.16.0", "@sentry/browser": "6.13.3", "@stremio/stremio-colors": "5.0.1", - "@stremio/stremio-core-web": "0.46.3", + "@stremio/stremio-core-web": "0.47.0", "@stremio/stremio-icons": "5.2.0", "@stremio/stremio-video": "0.0.38", "a-color-picker": "1.2.1", From 394cd3666504f20c2082d91a83d84702b3629088 Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 13 Mar 2024 18:03:07 +0100 Subject: [PATCH 13/15] refactor(MetaItem): use progress as is --- src/common/MetaItem/MetaItem.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/MetaItem/MetaItem.js b/src/common/MetaItem/MetaItem.js index 00e2c6c99..aef6daa25 100644 --- a/src/common/MetaItem/MetaItem.js +++ b/src/common/MetaItem/MetaItem.js @@ -102,7 +102,7 @@ const MetaItem = React.memo(({ className, type, name, poster, posterShape, poste { progress > 0 ?
-
+
: From 571bc391e84e977f5089cc7070487ef1988b6b2e Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 13 Mar 2024 18:12:49 +0100 Subject: [PATCH 14/15] Update src/routes/Library/Library.js Co-authored-by: Timothy Z. <117831817+kKaskak@users.noreply.github.com> --- src/routes/Library/Library.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/Library/Library.js b/src/routes/Library/Library.js index 6fb71e85d..7720bd828 100644 --- a/src/routes/Library/Library.js +++ b/src/routes/Library/Library.js @@ -59,7 +59,7 @@ const Library = ({ model, urlParams, queryParams }) => { }, [hasNextPage, loadNextPage]); const onScroll = useOnScrollToBottom(onScrollToBottom, SCROLL_TO_BOTTOM_TRESHOLD); React.useLayoutEffect(() => { - if (library.selected && library.selected.request.page === 1) { + if (library.selected && library.selected.request.page === 1 && profile.auth !== null) { scrollContainerRef.current.scrollTop = 0; } }, [library.selected]); From fa3677b5dd8d7946fbfcdd19c9babc3ab871bf08 Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 13 Mar 2024 18:15:56 +0100 Subject: [PATCH 15/15] refactor(Library): scrollTop effect condition --- src/routes/Library/Library.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/routes/Library/Library.js b/src/routes/Library/Library.js index 7720bd828..e7af3a07d 100644 --- a/src/routes/Library/Library.js +++ b/src/routes/Library/Library.js @@ -59,10 +59,10 @@ const Library = ({ model, urlParams, queryParams }) => { }, [hasNextPage, loadNextPage]); const onScroll = useOnScrollToBottom(onScrollToBottom, SCROLL_TO_BOTTOM_TRESHOLD); React.useLayoutEffect(() => { - if (library.selected && library.selected.request.page === 1 && profile.auth !== null) { + if (profile.auth !== null && library.selected && library.selected.request.page === 1) { scrollContainerRef.current.scrollTop = 0; } - }, [library.selected]); + }, [profile.auth, library.selected]); return (