UNPKG

react-use-toggle-hook

Version:

React hook for boolean state

2 lines (1 loc) 524 B
import{useState as n,useCallback as o,useMemo as r}from"react";var t=function(t){void 0===t&&(t=!1);var u=n(t),e=u[0],f=u[1],i=o((function(){return f(!0)}),[]),c=o((function(){return f(!1)}),[]),a=o((function(){return f((function(n){return!n}))}),[]),l=o((function(n){return function(o){return function(){var r=o();r instanceof Promise?r.finally((function(){f(n)})):f(n)}}}),[]);return r((function(){return{value:e,toggle:a,open:i,close:c,on:i,off:c,doAndClose:l(!1),doAndOpen:l(!0)}}),[e,a,i,c,l])};export{t as useToggle};