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