Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
import './index.css';
|
|
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
import { StrictMode } from 'react';
|
|
import { createRoot } from 'react-dom/client';
|
|
import { BrowserRouter } from 'react-router';
|
|
import { ApiError } from './api.ts';
|
|
import { App } from './App.tsx';
|
|
import { LangProvider } from './i18n.tsx';
|
|
import { telegramSignIn } from './telegram.ts';
|
|
|
|
// Тема применяется до первого кадра, чтобы светлая не мигала тёмной.
|
|
if (localStorage.getItem('lr_theme') === 'light') document.documentElement.dataset.theme = 'light';
|
|
|
|
const queryClient = new QueryClient({
|
|
defaultOptions: {
|
|
queries: {
|
|
staleTime: 30_000,
|
|
refetchOnWindowFocus: false,
|
|
retry: (count, error) => !(error instanceof ApiError && error.status < 500) && count < 1,
|
|
},
|
|
},
|
|
});
|
|
|
|
await telegramSignIn();
|
|
|
|
createRoot(document.getElementById('root')!).render(
|
|
<StrictMode>
|
|
<QueryClientProvider client={queryClient}>
|
|
<LangProvider>
|
|
<BrowserRouter>
|
|
<App />
|
|
</BrowserRouter>
|
|
</LangProvider>
|
|
</QueryClientProvider>
|
|
</StrictMode>,
|
|
);
|