diff --git a/eslint.config.mjs b/eslint.config.mjs index 157371a075..96509d58c4 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -791,7 +791,6 @@ export default [ 'packages/desktop-client/src/components/sort.tsx', 'packages/desktop-client/src/components/spreadsheet/useSheetValue.ts', 'packages/desktop-client/src/components/transactions/TransactionList.jsx', - 'packages/desktop-client/src/hooks/useCategories.ts', ], rules: { diff --git a/packages/desktop-client/src/hooks/useCategories.ts b/packages/desktop-client/src/hooks/useCategories.ts index a6936b3586..b233d77852 100644 --- a/packages/desktop-client/src/hooks/useCategories.ts +++ b/packages/desktop-client/src/hooks/useCategories.ts @@ -4,15 +4,18 @@ import { getCategories } from 'loot-core/client/queries/queriesSlice'; import { useSelector, useDispatch } from '../redux'; +import { useInitialMount } from './useInitialMount'; + export function useCategories() { const dispatch = useDispatch(); const categoriesLoaded = useSelector(state => state.queries.categoriesLoaded); + const isInitialMount = useInitialMount(); useEffect(() => { - if (!categoriesLoaded) { + if (isInitialMount && !categoriesLoaded) { dispatch(getCategories()); } - }, []); + }, [categoriesLoaded, dispatch, isInitialMount]); return useSelector(state => state.queries.categories); } diff --git a/upcoming-release-notes/4261.md b/upcoming-release-notes/4261.md new file mode 100644 index 0000000000..945197c874 --- /dev/null +++ b/upcoming-release-notes/4261.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [joel-jeremy] +--- + +Fix react-hooks/exhaustive-deps error on useCategories.ts