UNPKG

@jengaui/utils

Version:

Jenga UI Utils component in React

33 lines (26 loc) 1.23 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var f = require('react'); var ssr = require('@react-aria/ssr'); function _interopNamespace(e) { if (e && e.__esModule) return e; var n = Object.create(null); if (e) { Object.keys(e).forEach(function (k) { if (k !== 'default') { var d = Object.getOwnPropertyDescriptor(e, k); Object.defineProperty(n, k, d.get ? d : { enumerable: true, get: function () { return e[k]; } }); } }); } n["default"] = e; return Object.freeze(n); } var f__namespace = /*#__PURE__*/_interopNamespace(f); var o=typeof window<"u"?f__namespace.useLayoutEffect:f__namespace.useEffect;var s=new Map;function I(e){let t=f.useRef(!0);t.current=!0;let[u,r]=f.useState(e),l=f.useRef(null),c=n=>{t.current?l.current=n:r(n);};o(()=>{t.current=!1;}),f.useEffect(()=>{let n=l.current;n&&(r(n),l.current=null);},[r,c]);let a=ssr.useSSRSafeId(u);return s.set(a,c),a}function y(e,t){if(e===t)return e;let u=s.get(e);if(u)return u(t),t;let r=s.get(t);return r?(r(e),e):t}function S(){let[e,t]=f.useState(I());return o(()=>{e&&s.get(e)&&!document.getElementById(e)&&t(null);},[e]),e} exports.mergeIds = y; exports.useId = I; exports.useSlotId = S;