summaryrefslogtreecommitdiffstats
path: root/src/utils/hooks/use-is-mounted.tsx
blob: ca79afb0cb22ce815f92f64f1dacd0018671cdd8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import { RefObject, useEffect, useState } from 'react';

/**
 * Check if an HTML element is mounted.
 *
 * @param {RefObject<HTMLElement>} ref - A React reference to an HTML element.
 * @returns {boolean} True if the HTML element is mounted.
 */
const useIsMounted = (ref: RefObject<HTMLElement>) => {
  const [isMounted, setIsMounted] = useState<boolean>(false);

  useEffect(() => {
    if (ref.current) setIsMounted(true);
  }, [ref]);

  return isMounted;
};

export default useIsMounted;