@ntragas/pouncejstest
Version:
A collection of UI components from Panther labs
42 lines (32 loc) • 1.09 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _react = _interopRequireDefault(require("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.default.useState(isInitiallyOpen),
isOpen = _React$useState[0],
setIsOpen = _React$useState[1];
var open = _react.default.useCallback(function () {
return setIsOpen(true);
}, [setIsOpen]);
var close = _react.default.useCallback(function () {
return setIsOpen(false);
}, [setIsOpen]);
var toggle = _react.default.useCallback(function () {
return setIsOpen(!isOpen);
}, [isOpen, setIsOpen]);
return _react.default.useMemo(function () {
return {
isOpen,
open,
close,
toggle
};
}, [isOpen, open, close, toggle]);
};
var _default = useDisclosure;
exports.default = _default;