import { QueryClientProvider } from '@tanstack/react-query' import { ReactQueryDevtools } from '@tanstack/react-query-devtools' import { RouterProvider } from '@tanstack/react-router' import { StrictMode } from 'react' import { createRoot } from 'react-dom/client' import { AppToaster } from '@/components/ui/toaster' import { APP_ROOT_ELEMENT_ID } from '@/constants' import { getCurrentUserProfile, refreshAuthSession, } from '@/features/auth/api/auth-api' import '@/i18n' import { prefetchAuthToken } from '@/lib/api/api-client' import { initializeAuthSession, registerCurrentUserInitializer, registerRefreshSessionHandler, } from '@/lib/auth/auth-session' import { queryClient } from '@/lib/query/query-client' import { router } from '@/router' import './style/index.css' const rootElement = document.getElementById(APP_ROOT_ELEMENT_ID) const shouldShowQueryDevtools = import.meta.env.VITE_APP_ENV === 'development' && import.meta.env.VITE_ENABLE_QUERY_DEVTOOLS === 'true' if (!rootElement) { throw new Error('Root element not found') } registerCurrentUserInitializer(getCurrentUserProfile) registerRefreshSessionHandler(refreshAuthSession) void initializeAuthSession().then(async () => { try { await prefetchAuthToken() } catch (error) { console.error('Failed to prefetch auth token', error) } }) createRoot(rootElement).render( {shouldShowQueryDevtools && } , )