Админка, настройки, логин, кабинеты преподавателя и студента полностью переведены на React 19 (модель strangler, docs/REACT_MIGRATION.md). - 15 вкладок админки: lazy-загрузка, общий error boundary, сервисный слой - Удалены legacy-views и переходный слой LegacyTabView (45 файлов) - Сборка esbuild (frontend/scripts/build-react.mjs) с бюджетами gzip на чанки - CSP-хэши, кэширование: chunk'и immutable, CSS/HTML no-cache (react-cache.conf) - Фиксы: lazy-импорт именованных экспортов (краш после авторизации), растяжение #admin-root/#settings-root на всю ширину, возврат subjects/lessonTypes из справочников (краш просмотра расписаний), отказ от заведомо широкого поиска расписания без выбранной цели, центрирование карточки логина - Тесты: 237/237 (npm run check), регрессионные на lazy-вкладки и ширину - Документация: REACT_MIGRATION.md, REACT_MIGRATION_RESULT.md, FRONTEND.md
20 lines
533 B
JavaScript
20 lines
533 B
JavaScript
import { StrictMode } from 'react';
|
||
import { createRoot } from 'react-dom/client';
|
||
|
||
import { LoginApp } from './LoginApp.jsx';
|
||
import { AppErrorBoundary } from '../shared/ui/AppErrorBoundary.jsx';
|
||
|
||
const rootElement = document.getElementById('login-root');
|
||
|
||
if (!rootElement) {
|
||
throw new Error('Не найден корневой элемент страницы входа');
|
||
}
|
||
|
||
createRoot(rootElement).render(
|
||
<StrictMode>
|
||
<AppErrorBoundary>
|
||
<LoginApp />
|
||
</AppErrorBoundary>
|
||
</StrictMode>
|
||
);
|