Passed
Push — feature/azure-webapp-pipeline-... ( 9e9b64...fdb227 )
by Grant
07:49 queued 11s
created

classificationHooks.ts ➔ useLoadClassifications   A

Complexity

Conditions 2

Size

Total Lines 18
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 15
dl 0
loc 18
c 0
b 0
f 0
rs 9.65
cc 2
1
import { useEffect } from "react";
2
import { useSelector } from "react-redux";
3
import { DispatchType } from "../configureStore";
4
import { Classification } from "../models/types";
5
import {
6
  getClassifications,
7
  classificationsIsLoading,
8
} from "../store/Classification/classificationSelector";
9
import { loadClassificationsIntoState } from "../store/Classification/classificationActions";
10
11
// eslint-disable-next-line import/prefer-default-export
12
export function useLoadClassifications(
13
  dispatch: DispatchType,
14
): {
15
  classifications: Classification[];
16
  isLoadingClassifications: boolean;
17
} {
18
  const classifications = useSelector(getClassifications);
19
  const isLoading = useSelector(classificationsIsLoading);
20
21
  useEffect((): void => {
22
    if (classifications.length === 0 && !isLoading) {
23
      dispatch(loadClassificationsIntoState());
24
    }
25
  }, [classifications.length, isLoading, dispatch]);
26
27
  return { classifications, isLoadingClassifications: isLoading };
28
}
29