UNPKG

@itwin/itwinui-react

Version:

A react component library for iTwinUI

44 lines (43 loc) 1.2 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true, }); Object.defineProperty(exports, 'useSyncExternalStore', { enumerable: true, get: function () { return useSyncExternalStore; }, }); const _interop_require_wildcard = require('@swc/helpers/_/_interop_require_wildcard'); const _react = /*#__PURE__*/ _interop_require_wildcard._(require('react')); const _React = _react; const useSyncExternalStore = _React.useSyncExternalStore || useSyncExternalStoreShim; function useSyncExternalStoreShim(subscribe, getSnapshot) { let value = getSnapshot(); let [{ instance }, forceUpdate] = _react.useState({ instance: { value, getSnapshot, }, }); _react.useLayoutEffect(() => { instance.value = value; instance.getSnapshot = getSnapshot; if (!Object.is(value, getSnapshot())) forceUpdate({ instance, }); }, [subscribe, value, getSnapshot]); _react.useEffect(() => { let synchronize = () => { if (!Object.is(instance.value, instance.getSnapshot())) forceUpdate({ instance, }); }; synchronize(); return subscribe(synchronize); }, [subscribe]); return value; }