bitburner-src/src/ui/React/hooks.ts

16 lines
634 B
TypeScript
Raw Normal View History

import { useEffect, useState } from "react";
/** Hook that returns a function for the component. Optionally set an interval to rerender the component.
* @param autoRerenderTime: Optional. If provided and nonzero, used as the ms interval to automatically call the rerender function.
*/
export function useRerender(autoRerenderTime?: number) {
const setRerender = useState(false)[1];
const rerender = () => setRerender((old) => !old);
useEffect(() => {
if (!autoRerenderTime) return;
const intervalID = setInterval(rerender, autoRerenderTime);
return () => clearInterval(intervalID);
}, []);
return rerender;
}