From 40fba3e26be2380846fb528eee81a461383c9309 Mon Sep 17 00:00:00 2001 From: Adam Setch Date: Sat, 8 Nov 2025 15:07:43 -0500 Subject: [PATCH] refactor(filters): sort sections by title Signed-off-by: Adam Setch --- .../components/filters/FilterSection.tsx | 59 +- .../__snapshots__/FilterSection.test.tsx.snap | 514 +++++++++--------- .../__snapshots__/ReasonFilter.test.tsx.snap | 308 +++++------ .../__snapshots__/StateFilter.test.tsx.snap | 172 +++--- .../SubjectTypeFilter.test.tsx.snap | 116 ++-- .../UserTypeFilter.test.tsx.snap | 108 ++-- .../__snapshots__/Filters.test.tsx.snap | 338 ++++++------ 7 files changed, 813 insertions(+), 802 deletions(-) diff --git a/src/renderer/components/filters/FilterSection.tsx b/src/renderer/components/filters/FilterSection.tsx index 9fc98e521..6173d89cd 100644 --- a/src/renderer/components/filters/FilterSection.tsx +++ b/src/renderer/components/filters/FilterSection.tsx @@ -53,31 +53,42 @@ export const FilterSection = ({ direction={layout} gap={layout === 'horizontal' ? 'normal' : 'condensed'} > - {(Object.keys(filter.FILTER_TYPES) as T[]).map((type) => { - const typeDetails = filter.getTypeDetails(type); - const typeTitle = typeDetails.title; - const typeDescription = typeDetails.description; - const isChecked = filter.isFilterSet(settings, type); - const count = filter.getFilterCount(notifications, type); + {(Object.keys(filter.FILTER_TYPES) as T[]) + .sort((a, b) => + filter + .getTypeDetails(a) + .title.toLocaleLowerCase() + .localeCompare( + filter.getTypeDetails(b).title.toLocaleLowerCase(), + ), + ) + .map((type) => { + const typeDetails = filter.getTypeDetails(type); + const typeTitle = typeDetails.title; + const typeDescription = typeDetails.description; + const isChecked = filter.isFilterSet(settings, type); + const count = filter.getFilterCount(notifications, type); - return ( - - updateFilter(filterSetting, type, evt.target.checked) - } - tooltip={typeDescription ? {typeDescription} : null} - /> - ); - })} + return ( + + updateFilter(filterSetting, type, evt.target.checked) + } + tooltip={ + typeDescription ? {typeDescription} : null + } + /> + ); + })} ); diff --git a/src/renderer/components/filters/__snapshots__/FilterSection.test.tsx.snap b/src/renderer/components/filters/__snapshots__/FilterSection.test.tsx.snap index 4ce63e022..965a83f10 100644 --- a/src/renderer/components/filters/__snapshots__/FilterSection.test.tsx.snap +++ b/src/renderer/components/filters/__snapshots__/FilterSection.test.tsx.snap @@ -21,49 +21,22 @@ exports[`renderer/components/filters/FilterSection.tsx should be able to toggle > - - - 0 - - -
-
+
+ + + + 0 + +
-
- + 0 + +
+
+ + + 0 @@ -354,23 +353,24 @@ exports[`renderer/components/filters/FilterSection.tsx should be able to toggle data-wrap="nowrap" > 0 @@ -520,49 +520,22 @@ exports[`renderer/components/filters/FilterSection.tsx should render itself & it > - - - 0 - -
-
-
+
+ + + + 0
- - - 0 - -
-
-
+
+ + + + 0
- - - 0 - -
-
-
+
+ + + + 0
- - - 0 - -
-
-
+
+ + + + 0
-
-
+
+ + + + 0
- - - 0 - -
-
-
+
+ + + + 0
- 2 + 0
- 1 + 0
- 1 + 2
- 0 + 1
- 0 + 1
- 2 + 0
- 1 + 0
- 1 + 2
- 0 + 1
- 0 + 1
-
- - - - 1 - -
+
+ + + + 1 + +
@@ -271,33 +271,6 @@ exports[`renderer/components/filters/UserTypeFilter.tsx should render itself & i data-padding="none" data-wrap="nowrap" > -
- - - - 1 - -
+
+ + + + 1 + +
, diff --git a/src/renderer/routes/__snapshots__/Filters.test.tsx.snap b/src/renderer/routes/__snapshots__/Filters.test.tsx.snap index f6b3da3f8..f2502dbad 100644 --- a/src/renderer/routes/__snapshots__/Filters.test.tsx.snap +++ b/src/renderer/routes/__snapshots__/Filters.test.tsx.snap @@ -396,33 +396,6 @@ exports[`renderer/routes/Filters.tsx General should render itself & its children data-padding="none" data-wrap="nowrap" > -
- - - - 0 - -
+
+ + + + 0 + +
- - - 0 - - -
-
+
+ + + + 0 + +