ReactUseKit

useClickOutside

Custom hook to detect clicks outside the element.

Installation

pnpm dlx shadcn@latest add https://reactusekit.dev/r/use-click-outside.json

Usage

import { useClickOutside } from "@/hooks/use-click-outside";
import { useState } from "react";

function App() {
  const [isOpen, setIsOpen] = useState(false);

  const dropdownRef = useClickOutside<HTMLDivElement>(() => {
    setIsOpen(false);
  });

  return (
    <div ref={dropdownRef}>
      <button onClick={() => setIsOpen(!isOpen)}>
        Menu {isOpen ? "▼" : "▶"}
      </button>
      {isOpen && (
        <div>
          <p>Option 1</p>
          <p>Option 2</p>
          <p>Option 3</p>
        </div>
      )}
    </div>
  );
}

API

Parameters

ParameterTypeDescription
callback() => voidFunction to call when a click outside is detected

Returns

NameTypeDescription
refRefObject<T>A ref to attach to the element to monitor