UNPKG

@ntragas/pouncejstest

Version:

A collection of UI components from Panther labs

31 lines (27 loc) 829 B
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;