Files
techzaa-frontend/src/App.tsx
T

54 lines
1.8 KiB
TypeScript
Raw Normal View History

2026-03-30 20:20:21 +06:00
import { Toaster as Sonner } from "@/components/ui/sonner";
2026-04-19 21:58:53 +06:00
import { Toaster } from "@/components/ui/toaster";
2026-03-30 20:20:21 +06:00
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";
import Footer from "./components/Footer";
import Navbar from "./components/Navbar";
2026-03-30 20:20:21 +06:00
import Blog from "./pages/Blog";
import BlogArticle from "./pages/BlogArticle";
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-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-04-19 21:58:53 +06:00
import { PrivacyPolicy } from "./pages/PrivacyPolicy";
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}>
<Route path="/" element={<Index />} />
<Route path="/projects" element={<Projects />} />
<Route path="/projects/:id" element={<ProjectDetails />} />
2026-04-30 22:36:40 +06:00
{/* <Route path="/blog" element={<Blog />} />
<Route path="/blog/:id" element={<BlogArticle />} /> */}
2026-03-30 20:20:21 +06:00
{/* ADD ALL CUSTOM ROUTES ABOVE THE CATCH-ALL "*" ROUTE */}
<Route path="*" element={<NotFound />} />
2026-04-19 21:58:53 +06:00
<Route path="/privacy" element={<PrivacyPolicy />} />
2026-03-30 20:20:21 +06:00
</Routes>
</AnimatePresence>
);
}
const App = () => (
2026-04-04 22:49:48 +06:00
<QueryProvider>
2026-03-30 20:20:21 +06:00
<ThemeProvider>
<TooltipProvider>
<Toaster />
<Sonner />
<BrowserRouter>
2026-04-19 21:58:53 +06:00
<Navbar />
2026-03-30 20:20:21 +06:00
<AnimatedRoutes />
2026-04-19 21:58:53 +06:00
<Footer />
2026-03-30 20:20:21 +06:00
</BrowserRouter>
</TooltipProvider>
</ThemeProvider>
2026-04-04 22:49:48 +06:00
</QueryProvider>
2026-03-30 20:20:21 +06:00
);
export default App;