useClickOutsideui-interaction

useClickOutside

NewSSR SAFE

Detects clicks outside of a target element.

$ pnpm dlx shadcn@latest add @byphongphan/use-click-outside
Requires @byphongphan in components.json
Loading preview...

Installation

$ pnpm dlx shadcn@latest add @byphongphan/use-click-outside
Requires @byphongphan in components.json

Usage

import { useState } from "react"import { useClickOutside } from "@/shared/hooks"
export function DropdownMenu() { const [isOpen, setIsOpen] = useState(false) const menuRef = useClickOutside<HTMLDivElement>(() => setIsOpen(false))
return ( <div className="relative"> <button onClick={() => setIsOpen((prev) => !prev)}>Toggle Menu</button> {isOpen && ( <div ref={menuRef} className="dropdown-panel"> <p>Click outside this panel to close it.</p> </div> )} </div> )}

Props & Parameters

ParamTypeDefaultDescription
handler(event: MouseEvent | TouchEvent) => void—Callback invoked when a click or touch event occurs outside the referenced element.
options.enabledbooleantrueWhether the click outside event listener is active.
options.eventsstring[]["mousedown", "touchstart"]Array of DOM event types to listen for.
options.ignoreRefsRefObject<HTMLElement>[][]Optional list of other element refs whose clicks will not trigger the callback.

Command Palette

Quick search and commands navigation