@einride/hooks
Advanced tools
Comparing version 1.7.4 to 1.7.5
@@ -30,15 +30,17 @@ 'use strict'; | ||
const [isOpen, setIsOpen] = react.useState(initialState); | ||
const open = () => { | ||
if (!isOpen) { | ||
setIsOpen(true); | ||
callbacks?.onOpen?.(); | ||
} | ||
}; | ||
const close = () => { | ||
if (isOpen) { | ||
setIsOpen(false); | ||
callbacks?.onClose?.(); | ||
} | ||
}; | ||
const toggle = () => { | ||
const open = react.useCallback(() => { | ||
setIsOpen((_isOpen) => { | ||
if (!_isOpen) | ||
callbacks?.onOpen?.(); | ||
return true; | ||
}); | ||
}, [callbacks]); | ||
const close = react.useCallback(() => { | ||
setIsOpen((_isOpen) => { | ||
if (_isOpen) | ||
callbacks?.onClose?.(); | ||
return false; | ||
}); | ||
}, [callbacks]); | ||
const toggle = react.useCallback(() => { | ||
if (isOpen) | ||
@@ -48,3 +50,3 @@ close(); | ||
open(); | ||
}; | ||
}, [close, isOpen, open]); | ||
return { isOpen, handlers: { open, close, toggle } }; | ||
@@ -51,0 +53,0 @@ }; |
@@ -28,15 +28,17 @@ import { useState, useEffect, useCallback } from 'react'; | ||
const [isOpen, setIsOpen] = useState(initialState); | ||
const open = () => { | ||
if (!isOpen) { | ||
setIsOpen(true); | ||
callbacks?.onOpen?.(); | ||
} | ||
}; | ||
const close = () => { | ||
if (isOpen) { | ||
setIsOpen(false); | ||
callbacks?.onClose?.(); | ||
} | ||
}; | ||
const toggle = () => { | ||
const open = useCallback(() => { | ||
setIsOpen((_isOpen) => { | ||
if (!_isOpen) | ||
callbacks?.onOpen?.(); | ||
return true; | ||
}); | ||
}, [callbacks]); | ||
const close = useCallback(() => { | ||
setIsOpen((_isOpen) => { | ||
if (_isOpen) | ||
callbacks?.onClose?.(); | ||
return false; | ||
}); | ||
}, [callbacks]); | ||
const toggle = useCallback(() => { | ||
if (isOpen) | ||
@@ -46,3 +48,3 @@ close(); | ||
open(); | ||
}; | ||
}, [close, isOpen, open]); | ||
return { isOpen, handlers: { open, close, toggle } }; | ||
@@ -49,0 +51,0 @@ }; |
{ | ||
"name": "@einride/hooks", | ||
"version": "1.7.4", | ||
"version": "1.7.5", | ||
"description": "Reusable React hooks", | ||
@@ -17,3 +17,3 @@ "scripts": { | ||
"@commitlint/config-conventional": "17.4.2", | ||
"@einride/eslint-plugin": "6.19.0", | ||
"@einride/eslint-plugin": "6.20.0", | ||
"@einride/prettier-config": "2.0.0", | ||
@@ -26,13 +26,13 @@ "@einride/tsconfig": "1.0.1", | ||
"@types/react-dom": "18.0.10", | ||
"@vitejs/plugin-react": "3.0.1", | ||
"@vitejs/plugin-react": "3.1.0", | ||
"concurrently": "7.6.0", | ||
"eslint": "8.32.0", | ||
"eslint": "8.33.0", | ||
"jsdom": "21.1.0", | ||
"prettier": "2.8.3", | ||
"prettier": "2.8.4", | ||
"react": "18.2.0", | ||
"react-dom": "18.2.0", | ||
"semantic-release": "20.0.3", | ||
"typescript": "4.9.4", | ||
"vite": "4.0.4", | ||
"vitest": "0.27.3" | ||
"semantic-release": "20.1.0", | ||
"typescript": "4.9.5", | ||
"vite": "4.1.1", | ||
"vitest": "0.28.4" | ||
}, | ||
@@ -39,0 +39,0 @@ "peerDependencies": { |
Sorry, the diff of this file is not supported yet
13011
226