@fbltd/async
Version:
Miscellaneous async utils
18 lines (17 loc) • 570 B
JavaScript
import { useEffect, useState } from "react";
import { RaceStreamController } from "./race-stream.controller.js";
export function useRaceStream(deps) {
const [obj] = useState(() => ({ controller: new RaceStreamController(deps) }));
const [, setValue] = useState(false);
obj.controller.rerenderTrigger = setValue;
useEffect(() => {
return () => {
obj.controller.dispose();
obj.controller = undefined;
};
}, []);
return {
value: obj.controller.value,
dispose: obj.controller.dispose,
};
}