useOutsideClick
useOutsideClickは、要素の外側のクリックイベントを検出するカスタムフックです。
const ref = useRef<HTMLDivElement>(null)
const { open, onOpen, onClose } = useDisclosure()
useOutsideClick({
ref,
handler: onClose,
})
return (
<>
{open ? (
<Center ref={ref} h="10" px="3" bg="danger" color="white" rounded="l2">
Hey, Click anywhere outside of me to close.
</Center>
) : (
<Button onClick={onOpen}>Please Click</Button>
)}
</>
)
こちらのコードを使用する場合は、
"use client"をファイルの上部に追加する必要があります。使い方
import { useOutsideClick } from "@yamada-ui/react"
import { useOutsideClick } from "@/components/ui"
import { useOutsideClick } from "@workspaces/ui"
const { open, onOpen, onClose } = useDisclosure()
useOutsideClick({
ref,
handler: onClose,
})