UNPKG

@anoki/fse-ui

Version:

FSE UI components library

3 lines (2 loc) 1.46 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("react"),v=require("./index.cjs561.js");function S(e){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const c=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(o,t,c.get?c:{enumerable:!0,get:()=>e[t]})}}return o.default=e,Object.freeze(o)}const r=S(b);var g=r[" useInsertionEffect ".trim().toString()]||v.useLayoutEffect;function y({prop:e,defaultProp:o,onChange:t=()=>{},caller:c}){const[i,n,u]=O({defaultProp:o,onChange:t}),l=e!==void 0,d=l?e:i;{const s=r.useRef(e!==void 0);r.useEffect(()=>{const f=s.current;f!==l&&console.warn(`${c} is changing from ${f?"controlled":"uncontrolled"} to ${l?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),s.current=l},[l,c])}const m=r.useCallback(s=>{var f;if(l){const a=j(s)?s(e):s;a!==e&&((f=u.current)==null||f.call(u,a))}else n(s)},[l,e,n,u]);return[d,m]}function O({defaultProp:e,onChange:o}){const[t,c]=r.useState(e),i=r.useRef(t),n=r.useRef(o);return g(()=>{n.current=o},[o]),r.useEffect(()=>{var u;i.current!==t&&((u=n.current)==null||u.call(n,t),i.current=t)},[t,i]),[t,c,n]}function j(e){return typeof e=="function"}exports.useControllableState=y; //# sourceMappingURL=index.cjs472.js.map