0.0.3 • Published 2 years ago

react-hook-click-outside v0.0.3

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

React Hook useClickOutside

This is a React hook to detect click outside of the target(s) elements.

Usage

Common usage:

import { useClickOutside } from 'react-hook-click-outside'

const Modal = () => {
    const ref = useRef();
    const [isOpened, setIsOpened] = useState(false);

    useClickOutside({
        isActive: true,
        ignoreClicksInsideRefs: [ref],
        handler: () => setIsOpened(false)
    })

    return <div>
        <button type="button" onClick={() => setIsOpened(true)}>Open modal</button>
        {isOpened && <div ref={ref}>Modal</div>}
    </div>
}

If you want ignore element from other tree, than you can use data-attributes:

import { useClickOutside } from 'react-hook-click-outside'

const Modal = () => {
    const ref = useRef();

    useClickOutside({
        isActive: true,
        ignoreClicksInsideRefs: [ref]
        ignoreAttributeValue: 'element-from-other-tree',
        handler: () => setIsOpened(false)
    })

    return <div>
        <button type="button" onClick={() => setIsOpened(true)}>Open modal</button>
        {isOpened && <div ref={ref}>Modal</div>}
    </div>
}

const App = () => {
    return <div>
        <div data-click-outside-ignore="element-from-other-tree">Example</div>
        <Modal />
    </div>
}

API

KeyTypeDefaultDescription
isActivebooleantrueEnable/disable hook
ignoreClicksInsideRefsRefObject[]Array with refs to ignore click
handlerFunctionHandler will call when we click outside
ignoreAttributeNamestringdata-click-outside-ignoreData attribute name to ignore click
ignoreAttributeValuestringData attribute value to ignore click