From a9f6c0aad91362f29263a55afb84cba09b4781da Mon Sep 17 00:00:00 2001 From: Tim Eisele Date: Thu, 14 May 2026 19:09:38 +0200 Subject: [PATCH] Fix behavior when applying filters and switching pages (#7820) * Fix filter handling * Make Linter happy * Make Linter happy --- src/apps/experimental/components/library/Pagination.tsx | 2 ++ .../components/library/filter/FilterButton.tsx | 9 +-------- .../components/library/filter/FiltersVideoTypes.tsx | 1 + src/components/filterdialog/filterdialog.js | 2 +- src/controllers/shows/episodes.js | 1 + 5 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/apps/experimental/components/library/Pagination.tsx b/src/apps/experimental/components/library/Pagination.tsx index d803ded468..2300bbb220 100644 --- a/src/apps/experimental/components/library/Pagination.tsx +++ b/src/apps/experimental/components/library/Pagination.tsx @@ -42,6 +42,7 @@ const Pagination: FC = ({ ...prevState, StartIndex: newIndex })); + window.scrollTo(0, 0); }, [limit, setLibraryViewSettings, startIndex]); const onPreviousPageClick = useCallback(() => { @@ -50,6 +51,7 @@ const Pagination: FC = ({ ...prevState, StartIndex: newIndex })); + window.scrollTo(0, 0); }, [limit, setLibraryViewSettings, startIndex]); return ( diff --git a/src/apps/experimental/components/library/filter/FilterButton.tsx b/src/apps/experimental/components/library/filter/FilterButton.tsx index e6aae81681..d3ed539b4d 100644 --- a/src/apps/experimental/components/library/filter/FilterButton.tsx +++ b/src/apps/experimental/components/library/filter/FilterButton.tsx @@ -161,13 +161,6 @@ const FilterButton: FC = ({ ); }; - const isFiltersVideoTypesEnabled = () => { - return ( - viewType === LibraryTab.Movies - || viewType === LibraryTab.Episodes - ); - }; - const isFiltersSeriesStatusEnabled = () => { return viewType === LibraryTab.Series; }; @@ -301,7 +294,7 @@ const FilterButton: FC = ({ )} - {isFiltersVideoTypesEnabled() && ( + {isFiltersFeaturesEnabled() && ( = ({ setLibraryViewSettings((prevState) => ({ ...prevState, + StartIndex: 0, Filters: { ...prevState.Filters, VideoBasicFilter: updatedVideoBasicFilter.length ? updatedVideoBasicFilter : undefined diff --git a/src/components/filterdialog/filterdialog.js b/src/components/filterdialog/filterdialog.js index f0a297f3db..f936a41200 100644 --- a/src/components/filterdialog/filterdialog.js +++ b/src/components/filterdialog/filterdialog.js @@ -139,7 +139,7 @@ function setVisibility(context, options) { context.querySelector('.yearFilters').classList.remove('hide'); } - if (options.mode === 'movies' || options.mode === 'episodes') { + if (options.mode === 'movies' || options.mode === 'series' || options.mode === 'episodes') { context.querySelector('.videoTypeFilters').classList.remove('hide'); } diff --git a/src/controllers/shows/episodes.js b/src/controllers/shows/episodes.js index 3fdeefcda8..a271b74117 100644 --- a/src/controllers/shows/episodes.js +++ b/src/controllers/shows/episodes.js @@ -177,6 +177,7 @@ export default function (view, params, tabContent) { serverId: ApiClient.serverId() }); Events.on(filterDialog, 'filterchange', function () { + getQuery().StartIndex = 0; reloadItems(tabContent); }); filterDialog.show();