Skip to content

Commit

Permalink
refactor: remvoe old router
Browse files Browse the repository at this point in the history
  • Loading branch information
moonrailgun committed Apr 8, 2024
1 parent 2a3e2af commit 62cc934
Showing 1 changed file with 10 additions and 63 deletions.
73 changes: 10 additions & 63 deletions src/client/App.tsx
@@ -1,25 +1,13 @@
import { BrowserRouter, Route, Routes, Navigate } from 'react-router-dom';
import { Layout } from './pages/Layout';
import { DashboardPage } from './pages/Dashboard';
import { Login } from './pages/Login';
import { SettingsPage } from './pages/Settings';
import { Servers } from './pages/Servers';
import { BrowserRouter } from 'react-router-dom';
import { useUserStore } from './store/user';
import { Register } from './pages/Register';
import { QueryClientProvider } from '@tanstack/react-query';
import { queryClient } from './api/cache';
import { TokenLoginContainer } from './components/TokenLoginContainer';
import React, { useRef } from 'react';
import { trpc, trpcClient } from './api/trpc';
import { MonitorPage } from './pages/Monitor';
import { WebsitePage } from './pages/Website';
import { useGlobalConfig } from './hooks/useConfig';
import { useInjectWebsiteScript } from './hooks/useInjectWebsiteScript';
import { ConfigProvider, theme } from 'antd';
import { useColorSchema } from './store/settings';
import { StatusPage } from './pages/Status';
import { TelemetryPage } from './pages/Telemetry';
import { isDev } from './utils/env';
import { RouterProvider, createRouter } from '@tanstack/react-router';
import { routeTree } from './routeTree.gen';
import { DefaultNotFound } from './components/DefaultNotFound';
Expand All @@ -43,50 +31,15 @@ declare module '@tanstack/react-router' {
}
}

export const AppRoutes: React.FC = React.memo(() => {
const { info: userInfo } = useUserStore();
const { allowRegister } = useGlobalConfig();

useInjectWebsiteScript();

return (
<Routes>
{userInfo ? (
<Route element={<Layout />}>
<Route path="/dashboard" element={<DashboardPage />} />
<Route path="/monitor/*" element={<MonitorPage />} />
<Route path="/website/*" element={<WebsitePage />} />
<Route path="/servers" element={<Servers />} />
<Route path="/telemetry/*" element={<TelemetryPage />} />
<Route path="/settings/*" element={<SettingsPage />} />
</Route>
) : (
<Route>
<Route path="/login" element={<Login />} />
{allowRegister && <Route path="/register" element={<Register />} />}
</Route>
)}

<Route path="/status/:slug" element={<StatusPage />} />

<Route
path="*"
element={
<Navigate to={userInfo ? '/dashboard' : '/login'} replace={true} />
}
/>
</Routes>
);
});
AppRoutes.displayName = 'AppRoutes';

export const App: React.FC = React.memo(() => {
const rootRef = useRef<HTMLDivElement | null>(null);
const colorScheme = useColorSchema();
const algorithm =
colorScheme === 'dark' ? theme.darkAlgorithm : theme.defaultAlgorithm;
const { info: userInfo } = useUserStore();

useInjectWebsiteScript();

return (
<div ref={rootRef} className="App">
<trpc.Provider client={trpcClient} queryClient={queryClient}>
Expand All @@ -96,20 +49,14 @@ export const App: React.FC = React.memo(() => {
getPopupContainer={() => rootRef.current!}
>
<TokenLoginContainer>
{isDev ? (
// Compatible with old routes
<BrowserRouter>
<TooltipProvider delayDuration={0}>
<RouterProvider router={router} context={{ userInfo }} />
</TooltipProvider>
{/* Compatible with old routes */}
<BrowserRouter>
<TooltipProvider delayDuration={0}>
<RouterProvider router={router} context={{ userInfo }} />
</TooltipProvider>

<Toaster />
</BrowserRouter>
) : (
<BrowserRouter>
<AppRoutes />
</BrowserRouter>
)}
<Toaster />
</BrowserRouter>
</TokenLoginContainer>
</ConfigProvider>
</QueryClientProvider>
Expand Down

0 comments on commit 62cc934

Please sign in to comment.