Socket
Socket
Sign inDemoInstall

auto-hide-hook

Package Overview
Dependencies
3
Maintainers
1
Versions
19
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.1.5 to 1.1.6

2

package.json
{
"name": "auto-hide-hook",
"version": "1.1.5",
"version": "1.1.6",
"types": "index.d.ts",

@@ -5,0 +5,0 @@ "typesVersions": {

@@ -31,3 +31,3 @@ # Auto Hide Hook

```
useAutoHide(ref, setShow);
useAutoHide(ref, show, setShow);
```

@@ -44,8 +44,9 @@

const ref = useRef(null);
useAutoHide(ref, setShow);
useAutoHide(ref, show, setShow);
return (
<div ref={ref}>
<button onClick={() => setShow(!show)}>Toggle</button>
<div className={show ? 'show' : 'hide'}>Hello World</div>
<button onClick={() => setShow(!show)}>Toggle</button>
</div>

@@ -52,0 +53,0 @@ );

import { useEffect } from 'react';
export default function useAutoHide(ref, setIsOpen) {
export default function useAutoHide(ref, show, setIsOpen) {
useEffect(() => {
function handleClickOutside(event) {
if (ref.current && !ref.current.contains(event.target)) {
if (ref.current && ref.current.contains(event.target)) {
const hamburger = document.getElementById('hamburger');

@@ -12,3 +11,2 @@ if (hamburger && hamburger.contains(event.target)) {

}
setIsOpen(false);

@@ -19,5 +17,15 @@ return;

document.addEventListener('mousedown', handleClickOutside);
document.addEventListener('touchstart', handleClickOutside);
window.addEventListener('scroll', handleClickOutside);
// Add event listeners only if 'show' is true
if (show) {
document.addEventListener('mousedown', handleClickOutside);
document.addEventListener('touchstart', handleClickOutside);
window.addEventListener('scroll', handleClickOutside);
} else {
// Remove event listeners if 'show' is false
document.removeEventListener('mousedown', handleClickOutside);
document.removeEventListener('touchstart', handleClickOutside);
window.removeEventListener('scroll', handleClickOutside);
}
// Clean up by removing event listeners when unmounting
return () => {

@@ -28,3 +36,3 @@ document.removeEventListener('mousedown', handleClickOutside);

};
}, [ref, setIsOpen]);
}, [ref, setIsOpen, show]);
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc