import { createBrowserRouter, RouterProvider, Navigate, Outlet } from 'react-router-dom'; import Root from './routes/Root'; import Chat from './routes/Chat'; import Search from './routes/Search'; import { ScreenshotProvider } from './utils/screenshotContext.jsx'; import { ReactQueryDevtools } from '@tanstack/react-query-devtools'; import { Login, Registration, RequestPasswordReset, ResetPassword } from './components/Auth'; import { AuthContextProvider } from './hooks/AuthContext'; import { RecoilRoot } from 'recoil'; import { QueryClient, QueryClientProvider, QueryCache } from '@tanstack/react-query'; import { ThemeProvider } from './hooks/ThemeContext'; import { useApiErrorBoundary } from './hooks/ApiErrorBoundaryContext'; import ApiErrorWatcher from './components/Auth/ApiErrorWatcher'; const AuthLayout = () => ( ); const router = createBrowserRouter([ { path: 'register', element: }, { path: 'forgot-password', element: }, { path: 'reset-password', element: }, { element: , children: [ { path: 'login', element: }, { path: '/', element: , children: [ { index: true, element: }, { path: 'chat/:conversationId?', element: }, { path: 'search/:query?', element: } ] } ] } ]); const App = () => { const { setError } = useApiErrorBoundary(); const queryClient = new QueryClient({ queryCache: new QueryCache({ onError: (error) => { if (error?.response?.status === 401) { setError(error); } } }) }); return ( ); }; export default () => ( );