@equinor/fusion-observable
Version:
18 lines • 883 B
JavaScript
import { useEffect, useLayoutEffect } from 'react';
export const useObservableSubscription = (observable, observer, teardown) => {
// biome-ignore lint/correctness/useExhaustiveDependencies: teardown should not trigger rerender
useEffect(() => {
const subscription = observable.subscribe(observer);
subscription.add(teardown);
return () => subscription.unsubscribe();
}, [observable, observer]);
};
export const useObservableLayoutSubscription = (observable, observer, teardown) => {
// biome-ignore lint/correctness/useExhaustiveDependencies: teardown should not trigger rerender
useLayoutEffect(() => {
const subscription = observable.subscribe(observer);
subscription.add(teardown);
return () => subscription.unsubscribe();
}, [observable, observer]);
};
//# sourceMappingURL=useObservableSubscription.js.map