All checks were successful
Publish To Prod / deploy_and_publish (push) Successful in 35s
16 lines
628 B
JavaScript
16 lines
628 B
JavaScript
import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';
|
|
import { useCollector } from './useCollector';
|
|
export function useMonitorOutput(monitor, collect, onCollect) {
|
|
const [collected, updateCollected] = useCollector(monitor, collect, onCollect);
|
|
useIsomorphicLayoutEffect(function subscribeToMonitorStateChange() {
|
|
const handlerId = monitor.getHandlerId();
|
|
if (handlerId == null) {
|
|
return;
|
|
}
|
|
return monitor.subscribeToStateChange(updateCollected, {
|
|
handlerIds: [handlerId],
|
|
});
|
|
}, [monitor, updateCollected]);
|
|
return collected;
|
|
}
|