diff --git a/src/pages/Immersion.tsx b/src/pages/Immersion.tsx index d2830be..bf1521e 100644 --- a/src/pages/Immersion.tsx +++ b/src/pages/Immersion.tsx @@ -12,6 +12,7 @@ function Immersion() { const [instance, setInstance] = useState(); const [allInstances, setAllInstances] = useState([]); const [instancesStatus, setInstancesStatus] = useState>({}); + const [containerStatus, setContainerStatus] = useState(""); const username = localStorage.getItem("username"); const copyText = (copy: string) => { @@ -49,6 +50,24 @@ function Immersion() { }); }, [id]); + // Mise à jour automatique des status toutes les 5 secondes + useEffect(() => { + const intervalId = setInterval(() => { + if (allInstances.length > 0) { + allInstances.forEach((inst: Instance) => { + axios.get(`/api/ji/${id}/container`).then((statusRes) => { + setInstancesStatus(prev => ({ + ...prev, + [inst.id]: statusRes.data + })); + }); + }); + } + }, 5000); + + return () => clearInterval(intervalId); + }, [id, allInstances]); + useEffect(() => { axios.get("/api/user/me").then((res) => { localStorage.setItem("username", res.data.username); @@ -57,9 +76,22 @@ function Immersion() { useEffect(() => { axios.get(`/api/ji/${id}/container`).then((res) => { + setContainerStatus(res.data); localStorage.setItem("container_status", res.data); }); - }, []); + }, [id]); + + // Mise à jour automatique du container status toutes les 5 secondes + useEffect(() => { + const intervalId = setInterval(() => { + axios.get(`/api/ji/${id}/container`).then((res) => { + setContainerStatus(res.data); + localStorage.setItem("container_status", res.data); + }); + }, 5000); + + return () => clearInterval(intervalId); + }, [id]); const container_status = localStorage.getItem("container_status"); @@ -189,7 +221,7 @@ function Immersion() {
  • Status:
    - {container_status} + {containerStatus}