cover

Construye tu propio useOutsideClick


Mira el video si prefieres:

import { type RefObject, useEffect, useRef } from "react"; export const useOutsideClick = <T extends HTMLElement>({ isActive = true, onClickOutside, onClickInside, }: { isActive?: boolean; onClickInside?: (e: MouseEvent) => void; onClickOutside?: (e: MouseEvent) => void; }): RefObject<T> => { const ref = useRef<T>(null); useEffect(() => { if (!isActive) return; const handleClick = (event: MouseEvent) => { ref.current?.contains(event.target as Node) // 🪄 ? onClickInside?.(event) : onClickOutside?.(event); }; document.addEventListener("click", handleClick); return () => document.removeEventListener("click", handleClick); // eslint-disable-next-line react-hooks/exhaustive-deps }, [isActive]); return ref; };
meta cover

Efectos secundarios con useEffect

Checa este otro Post

meta cover

Cómo Publicar tu proyecto Vite en Github Pages con el método más fácil

Checa este otro Post

¡Nuevo curso!

Animaciones web con React + Motion 🧙🏻