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 () => (
);