@clusterio/web_ui
Version:
Clusterio web interface implementation
9 lines (7 loc) • 393 B
text/typescript
import { useCallback, useContext, useSyncExternalStore } from "react";
import ControlContext from "../components/ControlContext";
export function useSystems() {
const control = useContext(ControlContext);
const subscribe = useCallback((callback: () => void) => control.systems.subscribe(callback), [control]);
return useSyncExternalStore(subscribe, () => control.systems.getSnapshot());
}