import { useEffect } from "react";
import { BrowserRouter as Router, Routes, Route, Navigate } from "react-router-dom";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { AppLayout } from "./components/layout/AppLayout";
import { Toaster } from "./components/ui/toaster";
import { useAuthStore } from "./store/auth";
import { Dashboard } from "./pages/Dashboard";
import { Analytics } from "./pages/Analytics";
import { UsageLogs } from "./pages/UsageLogs";
import { Channels } from "./pages/Channels";
import { Tokens } from "./pages/Tokens";
import { Pricing } from "./pages/Pricing";
import { ApiTest } from "./pages/ApiTest";
import { NotFound } from "./pages/NotFound";
import { SystemSettings } from "./pages/SystemSettings";
const queryClient = new QueryClient({
defaultOptions: {
queries: {
retry: 1,
refetchOnWindowFocus: false,
},
},
});
function ProtectedRoute({ children }: { children: React.ReactNode }) {
const { isAuthenticated, isLoading } = useAuthStore();
if (isLoading) {
return null;
}
if (!isAuthenticated) {
return ;
}
return <>{children}>;
}
function HomeRoute() {
const { isAuthenticated, isLoading } = useAuthStore();
if (isLoading) {
return null;
}
if (isAuthenticated) {
return ;
}
return ;
}
function App() {
const { checkAuth } = useAuthStore();
useEffect(() => {
checkAuth();
}, [checkAuth]);
return (
} />
} />
}
/>
}
/>
}
/>
}
/>
}
/>
}
/>
}
/>
}
/>
}
/>
}
/>
}
/>
} />
);
}
export default App;