Skip to content
Snippets Groups Projects
  • Joel Jeremy Marquez's avatar
    08cbdab2
    Hooks for frequently made operations (#2293) · 08cbdab2
    Joel Jeremy Marquez authored
    
    * Hooks for frequently made operations
    
    * Release notes
    
    * Fix typecheck errors
    
    * Remove useGlobalPrefs
    
    * Add null checks
    
    * Fix showCleared pref
    
    * Add loaded flag for categories, accounts and payees state
    
    * Refactor to reduce unnecessary states
    
    * Fix eslint errors
    
    * Fix hooks deps
    
    * Add useEffect
    
    * Fix typecheck error
    
    * Set local and global pref hooks
    
    * Fix lint error
    
    * VRT
    
    * Fix typecheck error
    
    * Remove eager loading
    
    * Fix typecheck error
    
    * Fix typo
    
    * Fix typecheck error
    
    * Update useTheme
    
    * Typecheck errors
    
    * Typecheck error
    
    * defaultValue
    
    * Explicitly check undefined
    
    * Remove useGlobalPref and useLocalPref defaults
    
    * Fix default prefs
    
    * Default value
    
    * Fix lint error
    
    * Set default theme
    
    * Default date format in Account
    
    * Update packages/desktop-client/src/style/theme.tsx
    
    Co-authored-by: default avatarMatiss Janis Aboltins <matiss@mja.lv>
    
    ---------
    
    Co-authored-by: default avatarMatiss Janis Aboltins <matiss@mja.lv>
    Hooks for frequently made operations (#2293)
    Joel Jeremy Marquez authored
    
    * Hooks for frequently made operations
    
    * Release notes
    
    * Fix typecheck errors
    
    * Remove useGlobalPrefs
    
    * Add null checks
    
    * Fix showCleared pref
    
    * Add loaded flag for categories, accounts and payees state
    
    * Refactor to reduce unnecessary states
    
    * Fix eslint errors
    
    * Fix hooks deps
    
    * Add useEffect
    
    * Fix typecheck error
    
    * Set local and global pref hooks
    
    * Fix lint error
    
    * VRT
    
    * Fix typecheck error
    
    * Remove eager loading
    
    * Fix typecheck error
    
    * Fix typo
    
    * Fix typecheck error
    
    * Update useTheme
    
    * Typecheck errors
    
    * Typecheck error
    
    * defaultValue
    
    * Explicitly check undefined
    
    * Remove useGlobalPref and useLocalPref defaults
    
    * Fix default prefs
    
    * Default value
    
    * Fix lint error
    
    * Set default theme
    
    * Default date format in Account
    
    * Update packages/desktop-client/src/style/theme.tsx
    
    Co-authored-by: default avatarMatiss Janis Aboltins <matiss@mja.lv>
    
    ---------
    
    Co-authored-by: default avatarMatiss Janis Aboltins <matiss@mja.lv>
useCategories.ts 544 B
import { useEffect } from 'react';
import { useDispatch, useSelector } from 'react-redux';

import { getCategories } from 'loot-core/src/client/actions';
import { type State } from 'loot-core/src/client/state-types';

export function useCategories() {
  const dispatch = useDispatch();
  const categoriesLoaded = useSelector(
    (state: State) => state.queries.categoriesLoaded,
  );

  useEffect(() => {
    if (!categoriesLoaded) {
      dispatch(getCategories());
    }
  }, []);

  return useSelector(state => state.queries.categories);
}