betagouv/service-national-universel

View on GitHub
admin/src/hooks/useMouseOver.js

Summary

Maintainability
A
0 mins
Test Coverage
import { useEffect, useState, useRef } from "react";

const useMouseOver = () => {
  const [value, setValue] = useState(false);
  const ref = useRef(null);
  const handleMouseOver = () => setValue(true);
  const handleMouseOut = () => setValue(false);
  useEffect(() => {
    const node = ref.current;
    if (node) {
      node.addEventListener("mouseover", handleMouseOver);
      node.addEventListener("mouseout", handleMouseOut);
      return () => {
        node.removeEventListener("mouseover", handleMouseOver);
        node.removeEventListener("mouseout", handleMouseOut);
      };
    }
  }, [ref.current]);
  return [ref, value];
};

export default useMouseOver;