UNPKG

@stanfordspezi/spezi-web-design-system

Version:

Stanford Biodesign Digital Health Spezi Web Design System

2 lines (1 loc) 1.3 kB
"use strict";const m=require("react"),v=require("./index-DMAkK3b-.js");function b(e){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(o,t,r.get?r:{enumerable:!0,get:()=>e[t]})}}return o.default=e,Object.freeze(o)}const n=b(m);var g=n[" useInsertionEffect ".trim().toString()]||v.useLayoutEffect2;function R({prop:e,defaultProp:o,onChange:t=()=>{},caller:r}){const[l,u,i]=C({defaultProp:o,onChange:t}),c=e!==void 0,a=c?e:l;{const s=n.useRef(e!==void 0);n.useEffect(()=>{const f=s.current;f!==c&&console.warn(`${r} is changing from ${f?"controlled":"uncontrolled"} to ${c?"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=c},[c,r])}const d=n.useCallback(s=>{if(c){const f=S(s)?s(e):s;f!==e&&i.current?.(f)}else u(s)},[c,e,u,i]);return[a,d]}function C({defaultProp:e,onChange:o}){const[t,r]=n.useState(e),l=n.useRef(t),u=n.useRef(o);return g(()=>{u.current=o},[o]),n.useEffect(()=>{l.current!==t&&(u.current?.(t),l.current=t)},[t,l]),[t,r,u]}function S(e){return typeof e=="function"}exports.useControllableState=R;