fix: incorrect behaviour of filter chips after pressing select all

This commit is contained in:
2026-02-11 14:06:04 +03:00
parent 81acf7b0ab
commit b4e1425c79

View File

@@ -996,7 +996,7 @@ export class PopupController {
})); }));
this.pageHighlightsActiveLists = response.lists || []; this.pageHighlightsActiveLists = response.lists || [];
const listIdsOnPage = this.getListIdsWithMatchesOnPage(); const listIdsOnPage = this.getListIdsWithMatchesOnPage();
if (this.pageHighlightsListFilter.size === 0 && listIdsOnPage.size > 0) { if (listIdsOnPage.size > 0) {
this.pageHighlightsListFilter = new Set(listIdsOnPage); this.pageHighlightsListFilter = new Set(listIdsOnPage);
} }
this.highlightIndices.clear(); this.highlightIndices.clear();
@@ -1220,14 +1220,22 @@ export class PopupController {
container.querySelectorAll('.page-highlights-filter-chip').forEach(btn => { container.querySelectorAll('.page-highlights-filter-chip').forEach(btn => {
btn.addEventListener('click', () => { btn.addEventListener('click', () => {
const id = Number((btn as HTMLElement).dataset.listId); const id = Number((btn as HTMLElement).dataset.listId);
const listIdsOnPage = this.getListIdsWithMatchesOnPage();
const allSelected = this.pageHighlightsListFilter.size === 0;
if (this.pageHighlightsListFilter.has(id)) { if (this.pageHighlightsListFilter.has(id)) {
this.pageHighlightsListFilter.delete(id); this.pageHighlightsListFilter.delete(id);
if (this.pageHighlightsListFilter.size === 0) {
this.pageHighlightsListFilter = new Set();
}
} else { } else {
this.pageHighlightsListFilter.add(id); if (allSelected) {
this.pageHighlightsListFilter = new Set(listIdsOnPage);
this.pageHighlightsListFilter.delete(id);
} else {
this.pageHighlightsListFilter.add(id);
}
} }
if (this.pageHighlightsListFilter.size === 0) { if (this.pageHighlightsListFilter.has(-1)) {
this.pageHighlightsListFilter = new Set();
} else if (this.pageHighlightsListFilter.has(-1)) {
this.pageHighlightsListFilter.delete(-1); this.pageHighlightsListFilter.delete(-1);
} }
this.savePopupState(); this.savePopupState();