useMergeRefs
useMergeRefs
is a custom hook used to merge several react refs into a single
one.
Import
import { useMergeRefs } from '@hover/blueprint'
Return value
The useMergeRefs
hook returns a function that receives the element and assign
the value to the given React refs.
Usage
function Example({ ref, ...props }) { const internalRef = React.useRef() const refs = useMergeRefs(internalRef, ref) return ( <div {...props} ref={refs}> A div with multiple refs. </div> )}
Usage combining with another Chakra-UI hooks
function Example({ ref, ...props }) { const outsideRef = React.useRef() const { isOpen, onOpen, onClose } = useDisclosure() const { popperRef, referenceRef } = usePopper() useOutsideClick({ ref: outsideRef, handler: () => isOpen && onClose(), }) const buttonEl = useMergeRefs(outsideRef, referenceRef) return ( <> <button ref={buttonEl} onClick={onOpen}> Click me to see the popover </button> {isOpen && ( <Box ref={popperRef} bg='green'> Click outside to close me </Box> )} </> )}