From b4e1425c790fdbb9fc8f1558a759dd9bba5617ed Mon Sep 17 00:00:00 2001 From: Daniel Dada Date: Wed, 11 Feb 2026 14:06:04 +0300 Subject: [PATCH] fix: incorrect behaviour of filter chips after pressing select all --- src/popup/PopupController.ts | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/popup/PopupController.ts b/src/popup/PopupController.ts index 696de24..d9a7fce 100644 --- a/src/popup/PopupController.ts +++ b/src/popup/PopupController.ts @@ -996,7 +996,7 @@ export class PopupController { })); this.pageHighlightsActiveLists = response.lists || []; const listIdsOnPage = this.getListIdsWithMatchesOnPage(); - if (this.pageHighlightsListFilter.size === 0 && listIdsOnPage.size > 0) { + if (listIdsOnPage.size > 0) { this.pageHighlightsListFilter = new Set(listIdsOnPage); } this.highlightIndices.clear(); @@ -1220,14 +1220,22 @@ export class PopupController { container.querySelectorAll('.page-highlights-filter-chip').forEach(btn => { btn.addEventListener('click', () => { const id = Number((btn as HTMLElement).dataset.listId); + const listIdsOnPage = this.getListIdsWithMatchesOnPage(); + const allSelected = this.pageHighlightsListFilter.size === 0; if (this.pageHighlightsListFilter.has(id)) { this.pageHighlightsListFilter.delete(id); + if (this.pageHighlightsListFilter.size === 0) { + this.pageHighlightsListFilter = new Set(); + } } 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) { - this.pageHighlightsListFilter = new Set(); - } else if (this.pageHighlightsListFilter.has(-1)) { + if (this.pageHighlightsListFilter.has(-1)) { this.pageHighlightsListFilter.delete(-1); } this.savePopupState();