UNPKG

react-use-toggle-hook

Version:

React hook for boolean state

2 lines (1 loc) 606 B
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");exports.useToggle=function(n){void 0===n&&(n=!1);var u=e.useState(n),t=u[0],r=u[1],o=e.useCallback((function(){return r(!0)}),[]),c=e.useCallback((function(){return r(!1)}),[]),a=e.useCallback((function(){return r((function(e){return!e}))}),[]),i=e.useCallback((function(e){return function(n){return function(){var u=n();u instanceof Promise?u.finally((function(){r(e)})):r(e)}}}),[]);return e.useMemo((function(){return{value:t,toggle:a,open:o,close:c,on:o,off:c,doAndClose:i(!1),doAndOpen:i(!0)}}),[t,a,o,c,i])};