Files
techzaa-frontend/src/App.tsx
T

66 lines
2.4 KiB
TypeScript
Raw Normal View History

2026-03-30 20:20:21 +06:00
import { Toaster as Sonner } from "@/components/ui/sonner";
import { TooltipProvider } from "@/components/ui/tooltip";
import { ThemeProvider } from "@/contexts/ThemeContext";
import { AnimatePresence } from "framer-motion";
2026-04-19 21:58:53 +06:00
import { BrowserRouter, Route, Routes, useLocation } from "react-router-dom";
2026-05-10 21:33:43 +06:00
import ScrollToTop from "./components/ScrollToTop";
import DashboardLayout from "./pages/admins/layout/DashboardLayout";
import MainLayout from "./pages/admins/layout/MainLayout";
2026-04-19 21:58:53 +06:00
import Index from "./pages/Index";
2026-03-30 20:20:21 +06:00
import NotFound from "./pages/NotFound";
2026-05-10 21:33:43 +06:00
import { PrivacyPolicy } from "./pages/PrivacyPolicy";
2026-04-19 21:58:53 +06:00
import ProjectDetails from "./pages/ProjectDetails";
import Projects from "./pages/Projects";
2026-04-04 22:49:48 +06:00
import { QueryProvider } from "./provider/QueryProvider";
2026-05-10 21:33:43 +06:00
import OverviewPage from "./pages/admins/components/dashboards/OverviewPage";
2026-05-11 00:23:38 +06:00
import ManageProject from "./pages/admins/components/projects/ManageProject";
import { ReactQueryDevtools } from "@tanstack/react-query-devtools";
2026-03-30 20:20:21 +06:00
function AnimatedRoutes() {
const location = useLocation();
2026-04-04 22:49:48 +06:00
2026-03-30 20:20:21 +06:00
return (
<AnimatePresence mode="wait">
<Routes location={location} key={location.pathname}>
2026-05-10 21:33:43 +06:00
{/* main layouts */}
<Route element={<MainLayout />}>
<Route path="/" element={<Index />} />
<Route path="/projects" element={<Projects />} />
<Route path="/projects/:id" element={<ProjectDetails />} />
{/* <Route path="/blog" element={<Blog />} />
2026-04-30 22:36:40 +06:00
<Route path="/blog/:id" element={<BlogArticle />} /> */}
2026-05-10 21:33:43 +06:00
{/* ADD ALL CUSTOM ROUTES ABOVE THE CATCH-ALL "*" ROUTE */}
<Route path="/privacy" element={<PrivacyPolicy />} />
</Route>
{/* dashboard layouts */}
<Route path="/dashboard" element={<DashboardLayout />}>
<Route index element={<OverviewPage />} />
2026-05-11 00:23:38 +06:00
<Route path="/dashboard/projects" element={<ManageProject/>}/>
2026-05-10 21:33:43 +06:00
{/* <Route path="users" element={<Users />} />
<Route path="settings" element={<Settings />} /> */}
</Route>
2026-03-30 20:20:21 +06:00
<Route path="*" element={<NotFound />} />
</Routes>
</AnimatePresence>
);
}
const App = () => (
2026-04-04 22:49:48 +06:00
<QueryProvider>
2026-05-11 00:23:38 +06:00
<ReactQueryDevtools initialIsOpen={false} />
2026-03-30 20:20:21 +06:00
<ThemeProvider>
<TooltipProvider>
<Sonner />
<BrowserRouter>
2026-05-10 21:33:43 +06:00
<ScrollToTop />
2026-03-30 20:20:21 +06:00
<AnimatedRoutes />
</BrowserRouter>
</TooltipProvider>
</ThemeProvider>
2026-04-04 22:49:48 +06:00
</QueryProvider>
2026-03-30 20:20:21 +06:00
);
export default App;