blob: c20116314d5a361e0bbde2a59d6a8ba998b1bb34 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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;
}
|