UNPKG

@itwin/itwinui-react

Version:

A react component library for iTwinUI

19 lines (18 loc) 609 B
import * as React from 'react'; import { useSyncExternalStore } from './useSyncExternalStore.js'; class Instance {} export const useInstance = () => React.useMemo(() => new Instance(), []); export 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 useSyncExternalStore( synchronize, () => instance, () => instance, ); };