import { useQuery } from "@tanstack/react-query" import React, { useEffect } from "react" import { useTranslation } from "react-i18next" import { Route, BrowserRouter as Router, Routes } from "react-router-dom" import Footer from "./components/Footer" import Header from "./components/Header" import { InjectContext } from "./lib/inject" import { fetchSetting } from "./lib/nezha-api" import { cn } from "./lib/utils" import ErrorPage from "./pages/ErrorPage" import NotFound from "./pages/NotFound" import Server from "./pages/Server" import ServerDetail from "./pages/ServerDetail" const App: React.FC = () => { const { data: settingData, error } = useQuery({ queryKey: ["setting"], queryFn: () => fetchSetting(), refetchOnMount: true, refetchOnWindowFocus: true, }) const { i18n } = useTranslation() useEffect(() => { if (settingData?.data?.custom_code) { InjectContext(settingData?.data?.custom_code) } }, [settingData?.data?.custom_code]) if (error) { return } if (!settingData) { return null } if (settingData?.data?.language && !localStorage.getItem("language")) { i18n.changeLanguage(settingData?.data?.language) } const customBackgroundImage = // @ts-expect-error ShowNetTransfer is a global variable (window.CustomBackgroundImage as string) !== "" ? window.CustomBackgroundImage : undefined return (
} /> } /> } /> } />
) } export default App