1234567891011121314151617181920212223242526272829 |
- import {useCallback, useSyncExternalStore} from 'react';
- import type {Store} from 'reflux';
- interface LegacyStoreShape extends Pick<Store, 'listen'> {
- getState(): any;
- }
- export function useLegacyStore<T extends LegacyStoreShape>(
- store: T
- ): ReturnType<T['getState']> {
- const listener = useCallback(
- (fn: () => void) => {
-
- return store.listen(fn, undefined) as () => void;
- },
- [store]
- );
- return useSyncExternalStore(listener, store.getState);
- }
|