summaryrefslogtreecommitdiff
path: root/webapp/lib/use-backend-tools.ts
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/lib/use-backend-tools.ts')
-rw-r--r--webapp/lib/use-backend-tools.ts32
1 files changed, 32 insertions, 0 deletions
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<any[]>([]);
+
+ 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;
+}