@equinor/fusion-observable
Version:
14 lines • 617 B
JavaScript
import { useMemo } from 'react';
import { distinctUntilChanged, map } from 'rxjs/operators';
import { mapProp } from '../operators';
const selectorFn = (subject, selector, compare) => {
const selectorFn = typeof selector === 'function' ? map(selector) : mapProp(selector);
return subject.pipe(selectorFn, distinctUntilChanged(compare));
};
/**
* Hook for observing a property of an object
*/
export function useObservableSelector(subject, selector, compare) {
return useMemo(() => selectorFn(subject, selector, compare), [subject, selector, compare]);
}
//# sourceMappingURL=useObservableSelector.js.map