From 185daf470d503dad1468cf590e6d902870bc5dea Mon Sep 17 00:00:00 2001
From: Sean Tsai <aleetsaiya@gmail.com>
Date: Tue, 18 Jul 2023 04:45:53 +0800
Subject: [PATCH] Sort saved filters by alphabetical order (#1298)

fix #1284
---
 .../loot-core/src/client/data-hooks/filters.tsx     | 13 ++++++++++++-
 upcoming-release-notes/1298.md                      |  5 +++++
 2 files changed, 17 insertions(+), 1 deletion(-)
 create mode 100644 upcoming-release-notes/1298.md

diff --git a/packages/loot-core/src/client/data-hooks/filters.tsx b/packages/loot-core/src/client/data-hooks/filters.tsx
index 875673395..b7b65060d 100644
--- a/packages/loot-core/src/client/data-hooks/filters.tsx
+++ b/packages/loot-core/src/client/data-hooks/filters.tsx
@@ -1,3 +1,5 @@
+import { useMemo } from 'react';
+
 import q from '../query-helpers';
 import { useLiveQuery } from '../query-hooks';
 
@@ -16,7 +18,16 @@ function toJS(rows) {
 }
 
 export function useFilters() {
-  return toJS(
+  const filters = toJS(
     useLiveQuery(() => q('transaction_filters').select('*'), []) || [],
   );
+
+  /** Sort filters by alphabetical order */
+  function sort(filters) {
+    return filters.sort((a, b) =>
+      a.name.trim().localeCompare(b.name.trim(), { ignorePunctuation: true }),
+    );
+  }
+
+  return useMemo(() => sort(filters), [filters]);
 }
diff --git a/upcoming-release-notes/1298.md b/upcoming-release-notes/1298.md
new file mode 100644
index 000000000..eb522257f
--- /dev/null
+++ b/upcoming-release-notes/1298.md
@@ -0,0 +1,5 @@
+---
+category: Maintenance
+authors: [aleetsaiya]
+---
+Sort saved filters by alphabetical order
\ No newline at end of file
-- 
GitLab