From c89a3a366d5096fe65c22112ecb68569cd3f89aa Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Sun, 30 Jul 2023 19:04:22 +0200 Subject: [PATCH] Created the InfoContext.jsx --- src/common/contexts/Info/InfoContext.jsx | 34 ++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/common/contexts/Info/InfoContext.jsx diff --git a/src/common/contexts/Info/InfoContext.jsx b/src/common/contexts/Info/InfoContext.jsx new file mode 100644 index 0000000..165804f --- /dev/null +++ b/src/common/contexts/Info/InfoContext.jsx @@ -0,0 +1,34 @@ +import {createContext, useEffect, useState} from "react"; +import {request} from "@/common/utils/RequestUtil.js"; +import Loading from "@/states/Loading"; +import Error from "@/states/Error"; + +export const InfoContext = createContext({}); + +export const InfoProvider = (props) => { + const [info, setInfo] = useState({status: "loading"}); + + const updateInfo = async () => { + try { + setInfo(await request("/info/status")); + } catch (e) { + setInfo({status: "offline"}); + } + } + + useEffect(() => { + setTimeout(updateInfo, 500); + + const interval = setInterval(() => updateInfo(), 10000); + return () => clearInterval(interval); + }, []); + + if (info.status === "loading") return (); + if (info.status === "offline") return (); + + return ( + + {props.children} + + ); +} \ No newline at end of file