From 20009aed53d8864c9204d43a17895168a777d2cc Mon Sep 17 00:00:00 2001 From: Ilan Bigio Date: Mon, 16 Dec 2024 13:06:08 -0800 Subject: Initial commit --- webapp/lib/use-backend-tools.ts | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 webapp/lib/use-backend-tools.ts (limited to 'webapp/lib/use-backend-tools.ts') diff --git a/webapp/lib/use-backend-tools.ts b/webapp/lib/use-backend-tools.ts new file mode 100644 index 0000000..c201163 --- /dev/null +++ b/webapp/lib/use-backend-tools.ts @@ -0,0 +1,32 @@ +import { useState, useEffect } from "react"; + +// Custom hook to fetch backend tools repeatedly +export function useBackendTools(url: string, intervalMs: number) { + const [tools, setTools] = useState([]); + + useEffect(() => { + let isMounted = true; + + const fetchTools = () => { + fetch(url) + .then((res) => res.json()) + .then((data) => { + if (isMounted) setTools(data); + }) + .catch((error) => { + // On failure, we just let it retry after interval + console.error("Error fetching backend tools:", error); + }); + }; + + fetchTools(); + const intervalId = setInterval(fetchTools, intervalMs); + + return () => { + isMounted = false; + clearInterval(intervalId); + }; + }, [url, intervalMs]); + + return tools; +} -- cgit v1.2.3