@ntragas/pouncejstest
Version:
A collection of UI components from Panther labs
31 lines (27 loc) • 829 B
JavaScript
import React from 'react';
var useDisclosure = function useDisclosure(_temp) {
var _ref = _temp === void 0 ? {} : _temp,
_ref$isOpen = _ref.isOpen,
isInitiallyOpen = _ref$isOpen === void 0 ? false : _ref$isOpen;
var _React$useState = React.useState(isInitiallyOpen),
isOpen = _React$useState[0],
setIsOpen = _React$useState[1];
var open = React.useCallback(function () {
return setIsOpen(true);
}, [setIsOpen]);
var close = React.useCallback(function () {
return setIsOpen(false);
}, [setIsOpen]);
var toggle = React.useCallback(function () {
return setIsOpen(!isOpen);
}, [isOpen, setIsOpen]);
return React.useMemo(function () {
return {
isOpen,
open,
close,
toggle
};
}, [isOpen, open, close, toggle]);
};
export default useDisclosure;