LE-01: Каркас приложения

Что сделать

Базовый каркас React-приложения: Layout, роутинг, AuthContext.

Конкретно

  • web/src/main.tsx — entry point с BrowserRouter + AuthProvider
  • web/src/App.tsx — роуты с ProtectedRoute (редирект на /login если нет токена)
  • web/src/components/layout/Layout.tsx — sidebar (240px, тёмный) + header + Outlet
  • web/src/contexts/AuthContext.tsx — user state, loading, login/logout, auto-restore из localStorage
  • web/src/api/client.ts — базовый fetch с Bearer token, auto-refresh при 401
  • Sidebar: пункты Dashboard (/), Юридические лица (/legal-entities)
  • Header: имя пользователя + кнопка Logout

Файлы

  • web/src/main.tsx
  • web/src/App.tsx
  • web/src/components/layout/Layout.tsx
  • web/src/contexts/AuthContext.tsx
  • web/src/api/client.ts