diff --git a/client/src/App.tsx b/client/src/App.tsx index c21b25f..cc756ab 100644 --- a/client/src/App.tsx +++ b/client/src/App.tsx @@ -1,4 +1,55 @@ -// This file is a placeholder - all the app logic is now in main.tsx +import { QueryClientProvider } from "@tanstack/react-query"; +import { Toaster } from "@/components/ui/toaster"; +import { Switch, Route, Redirect } from "wouter"; +import { AuthProvider } from "./hooks/use-auth"; +import { ThemeProvider } from "./hooks/use-theme"; +import { queryClient } from "./lib/queryClient"; +import ProtectedRoute from "./lib/protected-route"; +import NotFound from "@/pages/not-found"; +import AuthPage from "@/pages/auth-page"; +import DashboardPage from "@/pages/dashboard-page"; +import UsersPage from "@/pages/users-page"; +import GroupsPage from "@/pages/groups-page"; +import OUsPage from "@/pages/ous-page"; +import ComputersPage from "@/pages/computers-page"; +import DomainsPage from "@/pages/domains-page"; +import ApiTokensPage from "@/pages/api-tokens-page"; +import LdapConnectionsPage from "@/pages/ldap-connections-page"; +import LdapQueryBuilderPage from "@/pages/ldap-query-builder-page"; +import SettingsPage from "@/pages/settings-page"; +import UserManagementPage from "@/pages/user-management-page"; +import AuditLogsPage from "@/pages/audit-logs-page"; + export default function App() { - return null; + return ( + <> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); } diff --git a/client/src/lib/protected-route.tsx b/client/src/lib/protected-route.tsx index a1d426b..13b00b5 100644 --- a/client/src/lib/protected-route.tsx +++ b/client/src/lib/protected-route.tsx @@ -2,7 +2,7 @@ import { Redirect, Route } from "wouter"; import { useAuth } from "@/hooks/use-auth"; import { Loader2 } from "lucide-react"; -export function ProtectedRoute({ +export default function ProtectedRoute({ path, component: Component, }: { diff --git a/client/src/main.tsx b/client/src/main.tsx index 108e4d7..9996300 100644 --- a/client/src/main.tsx +++ b/client/src/main.tsx @@ -1,93 +1,6 @@ import { createRoot } from "react-dom/client"; -import { QueryClientProvider } from "@tanstack/react-query"; -import { Toaster } from "@/components/ui/toaster"; -import { Switch, Route, Redirect } from "wouter"; -import { Loader2 } from "lucide-react"; -import NotFound from "@/pages/not-found"; -import AuthPage from "@/pages/auth-page"; -import DashboardPage from "@/pages/dashboard-page"; -import UsersPage from "@/pages/users-page"; -import GroupsPage from "@/pages/groups-page"; -import OUsPage from "@/pages/ous-page"; -import ComputersPage from "@/pages/computers-page"; -import DomainsPage from "@/pages/domains-page"; -import ApiTokensPage from "@/pages/api-tokens-page"; -import LdapConnectionsPage from "@/pages/ldap-connections-page"; -import LdapQueryBuilderPage from "@/pages/ldap-query-builder-page"; -import SettingsPage from "@/pages/settings-page"; -import UserManagementPage from "@/pages/user-management-page"; -import AuditLogsPage from "@/pages/audit-logs-page"; +import App from "./App"; import "./index.css"; -import { AuthProvider, useAuth } from "./hooks/use-auth"; -import { ThemeProvider } from "./hooks/use-theme"; -import { queryClient } from "./lib/queryClient"; - -// Create the App and use context appropriately -function App() { - return ( - <> - - - - - - - - - - ); -} - -// Protected route component that uses the useAuth hook -function ProtectedRoute({ - path, - component: Component -}: { - path: string; - component: () => React.JSX.Element; -}) { - const { user } = useAuth(); - - return ( - - {user ? : } - - ); -} - -// App content with routes that can safely use the useAuth hook -function AppContent() { - const { isLoading } = useAuth(); - - if (isLoading) { - return ( -
- -
- ); - } - - return ( - - - - - - - - - - - - - - - - - - - ); -} // Render the app createRoot(document.getElementById("root")!).render(); diff --git a/client/src/pages/auth-page.tsx b/client/src/pages/auth-page.tsx index d1c735c..070a7f1 100644 --- a/client/src/pages/auth-page.tsx +++ b/client/src/pages/auth-page.tsx @@ -1,4 +1,3 @@ -import { useEffect } from "react"; import { useLocation } from "wouter"; import { z } from "zod"; import { useForm } from "react-hook-form"; @@ -53,19 +52,7 @@ type RegisterFormValues = z.infer; export default function AuthPage() { const [location, navigate] = useLocation(); const { toast } = useToast(); - const { user, isLoading, loginMutation, registerMutation } = useAuth(); - - // Redirect if user is already logged in - useEffect(() => { - if (user) { - navigate('/'); - } - }, [user, navigate]); - - // If still checking authentication status, show nothing - if (isLoading) { - return null; - } + const auth = useAuth(); // Login form const loginForm = useForm({ @@ -94,14 +81,14 @@ export default function AuthPage() { // Handle login form submission const onLoginSubmit = (data: LoginFormValues) => { const { username, password } = data; - loginMutation.mutate({ username, password }); + auth.loginMutation.mutate({ username, password }); }; // Handle register form submission const onRegisterSubmit = (data: RegisterFormValues) => { // Remove confirmPassword and acceptTerms which aren't part of the API request const { confirmPassword, acceptTerms, ...registerData } = data; - registerMutation.mutate(registerData); + auth.registerMutation.mutate(registerData); }; return ( @@ -142,7 +129,7 @@ export default function AuthPage() { @@ -161,7 +148,7 @@ export default function AuthPage() { type="password" placeholder="Enter your password" {...field} - disabled={loginMutation.isPending} + disabled={auth.loginMutation.isPending} /> @@ -179,7 +166,7 @@ export default function AuthPage() { @@ -189,7 +176,7 @@ export default function AuthPage() { )} /> - @@ -197,9 +184,9 @@ export default function AuthPage() { @@ -228,7 +215,7 @@ export default function AuthPage() { @@ -247,7 +234,7 @@ export default function AuthPage() { placeholder="Enter your full name" {...field} value={field.value || ""} - disabled={registerMutation.isPending} + disabled={auth.registerMutation.isPending} /> @@ -267,7 +254,7 @@ export default function AuthPage() { placeholder="Enter your email" {...field} value={field.value || ""} - disabled={registerMutation.isPending} + disabled={auth.registerMutation.isPending} /> @@ -286,7 +273,7 @@ export default function AuthPage() { type="password" placeholder="Create a password" {...field} - disabled={registerMutation.isPending} + disabled={auth.registerMutation.isPending} /> @@ -305,7 +292,7 @@ export default function AuthPage() { type="password" placeholder="Confirm your password" {...field} - disabled={registerMutation.isPending} + disabled={auth.registerMutation.isPending} /> @@ -322,7 +309,7 @@ export default function AuthPage() {
@@ -338,9 +325,9 @@ export default function AuthPage() {