From 84e7b59e03ec74d72b68f6bfc4885c8bcf9c4fc9 Mon Sep 17 00:00:00 2001 From: Connor Smith Date: Sun, 7 Apr 2024 11:13:51 -0400 Subject: [PATCH] Fix changing filters not resetting multiselected media cards --- CONTRIBUTORS.md | 1 + src/components/filterdialog/filterdialog.js | 2 ++ src/components/multiSelect/multiSelect.js | 4 ++++ src/controllers/list.js | 5 ++++- src/controllers/movies/movies.js | 1 - 5 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index d8d26d6062..b40f3bcaa8 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -88,6 +88,7 @@ - [David Angel](https://github.com/davidangel) - [Pithaya](https://github.com/Pithaya) - [Chaitanya Shahare](https://github.com/Chaitanya-Shahare) +- [Connor Smith](https://github.com/ConnorS1110) ## Emby Contributors diff --git a/src/components/filterdialog/filterdialog.js b/src/components/filterdialog/filterdialog.js index 2301dcd404..31773716e3 100644 --- a/src/components/filterdialog/filterdialog.js +++ b/src/components/filterdialog/filterdialog.js @@ -7,6 +7,7 @@ import '../../elements/emby-collapse/emby-collapse'; import './style.scss'; import ServerConnections from '../ServerConnections'; import template from './filterdialog.template.html'; +import { stopMultiSelect } from '../../components/multiSelect/multiSelect'; function renderOptions(context, selector, cssClass, items, isCheckedFn) { const elem = context.querySelector(selector); @@ -104,6 +105,7 @@ function updateFilterControls(context, options) { * @param instance {FilterDialog} An instance of FilterDialog */ function triggerChange(instance) { + stopMultiSelect(); Events.trigger(instance, 'filterchange'); } diff --git a/src/components/multiSelect/multiSelect.js b/src/components/multiSelect/multiSelect.js index e774917593..a57b647a87 100644 --- a/src/components/multiSelect/multiSelect.js +++ b/src/components/multiSelect/multiSelect.js @@ -571,3 +571,7 @@ export default function (options) { export const startMultiSelect = (card) => { showSelections(card); }; + +export const stopMultiSelect = () => { + hideSelections(); +}; diff --git a/src/controllers/list.js b/src/controllers/list.js index ec394752b0..54afc87ebe 100644 --- a/src/controllers/list.js +++ b/src/controllers/list.js @@ -14,6 +14,7 @@ import ServerConnections from '../components/ServerConnections'; import LibraryMenu from '../scripts/libraryMenu'; import { CollectionType } from '@jellyfin/sdk/lib/generated-client/models/collection-type'; import { ItemSortBy } from '@jellyfin/sdk/lib/generated-client/models/item-sort-by'; +import { stopMultiSelect } from 'components/multiSelect/multiSelect'; function getInitialLiveTvQuery(instance, params, startIndex = 0, limit = 300) { const query = { @@ -1139,6 +1140,9 @@ class ItemsView { setFilterStatus(hasFilters) { this.hasFilters = hasFilters; + if (this.hasFilters) { + stopMultiSelect(); + } const filterButtons = this.filterButtons; if (filterButtons.length) { @@ -1301,4 +1305,3 @@ class ItemsView { } export default ItemsView; - diff --git a/src/controllers/movies/movies.js b/src/controllers/movies/movies.js index e674e15778..7734e27c48 100644 --- a/src/controllers/movies/movies.js +++ b/src/controllers/movies/movies.js @@ -321,4 +321,3 @@ export default function (view, params, tabContent, options) { itemsContainer = null; }; } -