diff --git a/packages/desktop-client/src/components/NotesButton.tsx b/packages/desktop-client/src/components/NotesButton.tsx index b1956532b9ad2ccdcb7dc97c55ff6f0141231f08..5939540b04d0d2359451b84c13c101fde4b09eb0 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 d282d731505b77f64675d6bf7fcae4add755b278..945450b18499da51c3a1645fe2724ccb73da0953 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 da2feb476bc4acfb9e47b4122bfda6fa633f745f..25cfc73ec70cd2aa3cbe17bb97ac25b24ed62f0d 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 2525140874d4f486cb1ffb9baa7fa77ab33ffb2d..fbde12e7f14c7a9c425f870ba85ceac995fb8b8b 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 0000000000000000000000000000000000000000..bf4079fa6be8ee49b39128f79d34b5e673802065 --- /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