UNPKG

@itwin/itwinui-react

Version:

A react component library for iTwinUI

39 lines (38 loc) 1.15 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true, }); function _export(target, all) { for (var name in all) Object.defineProperty(target, name, { enumerable: true, get: all[name], }); } _export(exports, { useInstance: function () { return useInstance; }, useSynchronizeInstance: function () { return useSynchronizeInstance; }, }); const _interop_require_wildcard = require('@swc/helpers/_/_interop_require_wildcard'); const _react = /*#__PURE__*/ _interop_require_wildcard._(require('react')); const _useSyncExternalStore = require('./useSyncExternalStore.js'); class Instance {} const useInstance = () => _react.useMemo(() => new Instance(), []); const useSynchronizeInstance = (instance, properties) => { let synchronize = _react.useCallback(() => { if (!(instance instanceof Instance)) return () => {}; Object.assign(instance, properties); return () => { for (let key in properties) delete instance[key]; }; }, [instance, properties]); return (0, _useSyncExternalStore.useSyncExternalStore)( synchronize, () => instance, () => instance, ); };