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() {
)}
/>
-