OutsideClick
A component that declaratively handles the functionality of useOutsideClickEffect.
If you click outside the component wrapped in OutsideClick, callback is executed.
<OutsideClick callback={callback}>{children}</OutsideClick>
Attributes
You can assign an ElementType to <OutsideClick>.
You can use HTMLAttributes as needed.
function Component() {
return (
<OutsideClick<'input'>
as="input"
callback={() => {
console.log('outside clicked!');
}}
/>
);
}
Caveats
type NonHaveChildElements =
| 'input'
| 'textarea'
| 'img'
| 'br'
| 'hr'
| 'meta'
| 'link'
| 'base'
| 'col'
| 'embed'
| 'source'
| 'track'
| 'wbr';
Tags belonging to NonHaveChildElements use self-closing tags because they do not have children.