@jengaui/utils
Version:
Jenga UI Utils component in React
33 lines (26 loc) • 1.23 kB
JavaScript
;
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;