All files / libs/ext/react/hooks/src/lib/use-is-mounted useIsMounted.ts

100% Statements 20/20
100% Branches 4/4
100% Functions 1/1
100% Lines 20/20

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 18 19 20 211x 1x 1x 1x 1x 1x 1x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x  
import { useCallback, useEffect, useRef } from 'react';
 
/**
 * Return a function that returns a boolean indicating if the component is mounted.
 * Component is considered mounted right after the first render, and not during first render.
 */
export const useIsMounted = (): (() => boolean) => {
  const mountedRef = useRef(false);
  const get = useCallback(() => mountedRef.current, []);
 
  useEffect(() => {
    mountedRef.current = true;
 
    return () => {
      mountedRef.current = false;
    };
  }, []);
 
  return get;
};