Files
RIT-nexus/src/App.tsx

54 lines
1.5 KiB
TypeScript

import { useEffect } from 'react';
import { BrowserRouter, Routes, Route, useLocation } from 'react-router-dom';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import MainLayout from '@/layouts/MainLayout';
import Home from '@/pages/Home/Home';
import Notes from '@/pages/Notes/Notes';
import AIAssistant from '@/pages/AIAssistant/AIAssistant';
import Campus from '@/pages/Campus/Campus';
import Events from '@/pages/Events/Events';
import Community from '@/pages/Community/Community';
import Profile from '@/pages/Profile/Profile';
const queryClient = new QueryClient({
defaultOptions: {
queries: {
staleTime: 5 * 60 * 1000,
gcTime: 10 * 60 * 1000,
},
},
});
function ScrollToTop() {
const { pathname } = useLocation();
useEffect(() => {
window.scrollTo(0, 0);
}, [pathname]);
return null;
}
function App() {
return (
<QueryClientProvider client={queryClient}>
<BrowserRouter>
<ScrollToTop />
<Routes>
<Route element={<MainLayout />}>
<Route path="/" element={<Home />} />
<Route path="/notes" element={<Notes />} />
<Route path="/ai-assistant" element={<AIAssistant />} />
<Route path="/campus" element={<Campus />} />
<Route path="/events" element={<Events />} />
<Route path="/community" element={<Community />} />
<Route path="/profile" element={<Profile />} />
</Route>
</Routes>
</BrowserRouter>
</QueryClientProvider>
);
}
export default App;