import { apiClient, configureApiClient } from '@/lib/api-client';
import { AuthProvider, useAuth } from '@/lib/auth';
import { queryClient } from '@/lib/query-client';
import { ThemeProvider } from '@/lib/theme';
import { QueryClientProvider } from '@tanstack/react-query';
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
import { RouterProvider } from '@tanstack/react-router';
import { TanStackRouterDevtools } from '@tanstack/router-devtools';
import { StrictMode, useEffect } from 'react';
import { createRoot } from 'react-dom/client';
import { router } from './router';
import './index.css';
function AppRouter() {
const auth = useAuth();
useEffect(() => {
router.invalidate();
}, [auth.isAuthenticated, auth.loading, auth.user]);
useEffect(() => {
configureApiClient({
onForbidden: async () => {
if (!auth.isAuthenticated) {
return;
}
await auth.signOut();
await router.navigate({ to: '/login' });
},
onError: (error) => {
console.error('[API]', error);
},
});
}, [auth]);
if (auth.loading) {
return (
Validando sesión...
);
}
return (
<>
{import.meta.env.DEV && }
>
);
}
createRoot(document.getElementById('root')!).render(
{import.meta.env.DEV && }
);