UNPKG

@gsretail.com/gui-core

Version:

A skeleton to create your own React component library using Rollup, TypeScript, Sass and Storybook

2 lines (1 loc) 393 B
import*as o from"react";const e=({open:e,onOpen:n,onClose:t})=>{const r=o.useRef("boolean"==typeof e).current,[s,p]=o.useState(!1);o.useEffect((()=>{if(r){if("boolean"!=typeof e)throw new Error("You must not mix controlling and uncontrolled mode for `open` prop");p(e)}}),[r,e]);return{isOpen:s,setIsOpen:o.useCallback((o=>{r||p(o),o&&n&&n(),!o&&t&&t()}),[r,n,t])}};export{e as useOpenState};