-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathApp.tsx
More file actions
103 lines (98 loc) · 4.87 KB
/
App.tsx
File metadata and controls
103 lines (98 loc) · 4.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
import { BrowserRouter, Routes, Route, Navigate } from "react-router-dom";
import { Toaster } from "@/components/ui/sonner";
import { useSession } from "@/lib/auth-client";
import { GraphQLProvider } from "@/lib/graphql-client";
import { UI_BASE_PATH } from "@/lib/config";
import { Layout } from "@/components/Layout";
import { AdminLayout } from "@/components/AdminLayout";
import { Login } from "@/pages/Login";
import { Register } from "@/pages/Register";
import { ForgotPassword } from "@/pages/ForgotPassword";
import { ResetPassword } from "@/pages/ResetPassword";
import { VerifyEmail } from "@/pages/VerifyEmail";
import { Consent } from "@/pages/Consent";
import { Profile } from "@/pages/Profile";
import { Users } from "@/pages/admin/Users";
import { UserDetail } from "@/pages/admin/UserDetail";
import { Apps } from "@/pages/admin/Apps";
import { AppDetail } from "@/pages/admin/AppDetail";
import { Databases } from "@/pages/admin/Databases";
import { DatabaseDetail } from "@/pages/admin/DatabaseDetail";
import { Sessions } from "@/pages/admin/Sessions";
import { Roles } from "@/pages/admin/Roles";
import { RoleDetail } from "@/pages/admin/RoleDetail";
import { Plugins } from "@/pages/admin/Plugins";
import { SsoProviders } from "@/pages/admin/SsoProviders";
import { Services } from "@/pages/admin/Services";
import { TrexDB } from "@/pages/admin/TrexDB";
import { Extensions } from "@/pages/admin/Extensions";
import { Migrations } from "@/pages/admin/Migrations";
import { ChangePassword } from "@/pages/ChangePassword";
import { EtlPipelines } from "@/pages/admin/EtlPipelines";
import { AuthSettings } from "@/pages/admin/AuthSettings";
import { RuntimeSettings } from "@/pages/admin/RuntimeSettings";
import { Transforms } from "@/pages/admin/Transforms";
import { Functions } from "@/pages/admin/Functions";
import { Flows } from "@/pages/admin/Flows";
import { UiPlugins } from "@/pages/admin/UiPlugins";
import { Logs } from "@/pages/admin/Logs";
import { Subscriptions } from "@/pages/admin/Subscriptions";
import { Analytics } from "@/pages/admin/Analytics";
import { AnalyticsDetail } from "@/pages/admin/AnalyticsDetail";
function HomeRedirect() {
const { data: session, isPending } = useSession();
if (isPending) return null;
return <Navigate to={session ? "/profile" : "/login"} replace />;
}
export default function App() {
return (
<GraphQLProvider>
<BrowserRouter basename={UI_BASE_PATH}>
<Routes>
<Route path="/login" element={<Login />} />
<Route path="/register" element={<Register />} />
<Route path="/forgot-password" element={<ForgotPassword />} />
<Route path="/reset-password" element={<ResetPassword />} />
<Route path="/verify-email" element={<VerifyEmail />} />
<Route path="/consent" element={<Consent />} />
<Route path="/change-password" element={<ChangePassword />} />
<Route element={<Layout />}>
<Route path="/profile" element={<Profile />} />
<Route path="/admin" element={<AdminLayout />}>
<Route index element={<Navigate to="users" replace />} />
<Route path="users" element={<Users />} />
<Route path="users/:id" element={<UserDetail />} />
<Route path="apps" element={<Apps />} />
<Route path="apps/:id" element={<AppDetail />} />
<Route path="roles" element={<Roles />} />
<Route path="roles/:id" element={<RoleDetail />} />
<Route path="databases" element={<Databases />} />
<Route path="databases/:id" element={<DatabaseDetail />} />
<Route path="sessions" element={<Sessions />} />
<Route path="plugins" element={<Plugins />} />
<Route path="services" element={<Services />} />
<Route path="etl" element={<EtlPipelines />} />
<Route path="transforms" element={<Transforms />} />
<Route path="trexdb" element={<TrexDB />} />
<Route path="extensions" element={<Extensions />} />
<Route path="migrations" element={<Migrations />} />
<Route path="subscriptions" element={<Subscriptions />} />
<Route path="analytics" element={<Analytics />} />
<Route path="analytics/:id" element={<AnalyticsDetail />} />
<Route path="sso" element={<SsoProviders />} />
<Route path="auth-settings" element={<AuthSettings />} />
<Route path="runtime-settings" element={<RuntimeSettings />} />
<Route path="functions" element={<Functions />} />
<Route path="flows" element={<Flows />} />
<Route path="ui" element={<UiPlugins />} />
<Route path="logs" element={<Logs />} />
</Route>
</Route>
<Route path="/" element={<HomeRedirect />} />
<Route path="*" element={<Navigate to="/" replace />} />
</Routes>
<Toaster />
</BrowserRouter>
</GraphQLProvider>
);
}