@kodingdotninja/use-toggle
Version:
Toggle custom hook and component wrapper for React 🔦
12 lines (8 loc) • 724 B
JavaScript
;
var react = require('react');
var p=(o=!1)=>{let[r,e]=react.useState(o),t=react.useCallback(()=>e(!1),[]),g=react.useCallback(()=>e(!0),[]),i=react.useCallback(l=>e(l),[]),T=react.useCallback(()=>e(l=>!l),[]);return {state:r,disable:t,enable:g,set:i,toggle:T}};var b="enableOnMount",f="disableOnMount",s=({initialState:o,children:r,...e})=>{let t=p(o);return react.useEffect(()=>{b in e&&t.enable(),f in e&&t.disable();},[]),React.createElement(React.Fragment,null,r(t))};function S({children:o}){return React.createElement(s,{enableOnMount:!0,initialState:!1},()=>o)}
exports.ClientOnly = S;
exports.DISABLE_ON_MOUNT_KEY = f;
exports.ENABLE_ON_MOUNT_KEY = b;
exports.ToggleWrap = s;
exports.useToggle = p;