All files / src/features/project-list/model useFetchProjectOnMount.ts

100% Statements 5/5
100% Branches 4/4
100% Functions 2/2
100% Lines 5/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17              9x 9x   9x 9x 1x        
import { useEffect } from 'react';
import { useAppDispatch, useAppSelector } from '@/store/hooks';
import { fetchProjects } from '@/entities/project/model/slice';
import { PROJECT_STATE } from '@/shared/constants';
import { projectsSelectors } from '@/entities/project/model';
 
export function useFetchProjectsOnMount(projectsCount: number) {
	const dispatch = useAppDispatch();
	const loading = useAppSelector(projectsSelectors.selectLoading);
 
	useEffect(() => {
		if (!projectsCount && loading === PROJECT_STATE.IDLE) {
			dispatch(fetchProjects());
		}
	}, [dispatch, projectsCount, loading]);
}