From 6253aaa015a835b20244f3b45c633560637fadae Mon Sep 17 00:00:00 2001
From: Jed Fox <git@jedfox.com>
Date: Thu, 25 May 2023 16:50:55 -0400
Subject: [PATCH] Use the useLiveQuery hook in a couple more places (#1061)

---
 .../src/components/NotesButton.tsx            |  2 +-
 .../src/client/data-hooks/accounts.tsx        | 22 ++++---------------
 .../src/client/data-hooks/payees.tsx          | 22 ++++---------------
 packages/loot-core/src/client/query-hooks.tsx |  2 +-
 upcoming-release-notes/1061.md                |  6 +++++
 5 files changed, 16 insertions(+), 38 deletions(-)
 create mode 100644 upcoming-release-notes/1061.md

diff --git a/packages/desktop-client/src/components/NotesButton.tsx b/packages/desktop-client/src/components/NotesButton.tsx
index b1956532b..5939540b0 100644
--- a/packages/desktop-client/src/components/NotesButton.tsx
+++ b/packages/desktop-client/src/components/NotesButton.tsx
@@ -82,7 +82,7 @@ export default function NotesButton({
 }: NotesButtonProps) {
   let [hover, setHover] = useState(false);
   let tooltip = useTooltip();
-  let { data } = useLiveQuery(
+  let data = useLiveQuery(
     useMemo(() => q('notes').filter({ id }).select('*'), [id]),
   );
   let note = data && data.length > 0 ? data[0].note : null;
diff --git a/packages/loot-core/src/client/data-hooks/accounts.tsx b/packages/loot-core/src/client/data-hooks/accounts.tsx
index d282d7315..945450b18 100644
--- a/packages/loot-core/src/client/data-hooks/accounts.tsx
+++ b/packages/loot-core/src/client/data-hooks/accounts.tsx
@@ -1,25 +1,11 @@
-import React, { createContext, useEffect, useState, useContext } from 'react';
+import React, { createContext, useContext } from 'react';
 
-import q, { liveQuery } from 'loot-core/src/client/query-helpers';
+import q from 'loot-core/src/client/query-helpers';
+import { useLiveQuery } from 'loot-core/src/client/query-hooks';
 import { getAccountsById } from 'loot-core/src/client/reducers/queries';
 
 export function useAccounts() {
-  let [data, setData] = useState(null);
-
-  useEffect(() => {
-    let query = liveQuery(q('accounts').select('*'), async accounts => {
-      if (query) {
-        setData(accounts);
-      }
-    });
-
-    return () => {
-      query.unsubscribe();
-      query = null;
-    };
-  }, []);
-
-  return data;
+  return useLiveQuery(q('accounts').select('*'));
 }
 
 let AccountsContext = createContext(null);
diff --git a/packages/loot-core/src/client/data-hooks/payees.tsx b/packages/loot-core/src/client/data-hooks/payees.tsx
index da2feb476..25cfc73ec 100644
--- a/packages/loot-core/src/client/data-hooks/payees.tsx
+++ b/packages/loot-core/src/client/data-hooks/payees.tsx
@@ -1,25 +1,11 @@
-import React, { createContext, useEffect, useState, useContext } from 'react';
+import React, { createContext, useContext } from 'react';
 
-import q, { liveQuery } from 'loot-core/src/client/query-helpers';
+import q from 'loot-core/src/client/query-helpers';
+import { useLiveQuery } from 'loot-core/src/client/query-hooks';
 import { getPayeesById } from 'loot-core/src/client/reducers/queries';
 
 export function usePayees() {
-  let [data, setData] = useState([]);
-
-  useEffect(() => {
-    let query = liveQuery(q('payees').select('*'), async payees => {
-      if (query) {
-        setData(payees);
-      }
-    });
-
-    return () => {
-      query.unsubscribe();
-      query = null;
-    };
-  }, []);
-
-  return data;
+  return useLiveQuery(q('payees').select('*'));
 }
 
 let PayeesContext = createContext(null);
diff --git a/packages/loot-core/src/client/query-hooks.tsx b/packages/loot-core/src/client/query-hooks.tsx
index 252514087..fbde12e7f 100644
--- a/packages/loot-core/src/client/query-hooks.tsx
+++ b/packages/loot-core/src/client/query-hooks.tsx
@@ -90,5 +90,5 @@ export function useLiveQuery(query, opts?) {
     };
   }, [query]);
 
-  return { data };
+  return data;
 }
diff --git a/upcoming-release-notes/1061.md b/upcoming-release-notes/1061.md
new file mode 100644
index 000000000..bf4079fa6
--- /dev/null
+++ b/upcoming-release-notes/1061.md
@@ -0,0 +1,6 @@
+---
+category: Maintenance
+authors: [j-f1]
+---
+
+Use the `useLiveQuery` hook in a couple more places
-- 
GitLab