import { useEffect, useState } from "react"; import { ProtectedRoute } from "./components/ProtectedRoute"; import DashboardPage from "./pages/DashboardPage"; import ForgotPasswordPage from "./pages/ForgotPasswordPage"; // Page imports import HomePage from "./pages/HomePage"; import LoginPage from "./pages/LoginPage"; import PricingPage from "./pages/PricingPage"; import ResetPasswordPage from "./pages/ResetPasswordPage"; import SignupPage from "./pages/SignupPage"; type Route = | "/" | "/login" | "/signup" | "/pricing" | "/dashboard" | "/forgot-password" | "/reset-password"; function getRouteFromHash(): Route { const hash = window.location.hash.split("?")[0].slice(1) || "/"; const validRoutes: Route[] = [ "/", "/login", "/signup", "/pricing", "/dashboard", "/forgot-password", "/reset-password", ]; return validRoutes.includes(hash as Route) ? (hash as Route) : "/"; } export default function App() { const [route, setRoute] = useState(getRouteFromHash); useEffect(() => { const handleHashChange = () => { setRoute(getRouteFromHash()); }; window.addEventListener("hashchange", handleHashChange); return () => window.removeEventListener("hashchange", handleHashChange); }, []); const navigate = (newRoute: Route) => { window.location.hash = newRoute; }; const renderPage = () => { switch (route) { case "/": return ; case "/login": return ; case "/signup": return ; case "/pricing": return ; case "/forgot-password": return ; case "/reset-password": return ; case "/dashboard": return ( ); default: return ; } }; return
{renderPage()}
; }