pouncejs
Version:
A collection of UI components from Panther labs
31 lines (27 loc) • 858 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: isOpen,
open: open,
close: close,
toggle: toggle
};
}, [isOpen, open, close, toggle]);
};
export default useDisclosure;