Страница события
Собирает event context, score, markets и пользовательские действия в один устойчивый экран.
Видимые состояния
Иллюстрация по теме
Визуальный ориентир помогает быстрее считать сценарий страницы и не оставлять компонент абстрактным.

Что приходит и что выходит
| Inputs | event model, market groups, account-independent shell |
|---|---|
| Outputs | navigation, selection intents, live context |
| Failure mode | context jump, dense list overload, mixed freshness |
| Ownership | UI владеет представлением и recoverable context; финальное бизнес-состояние подтверждает серверный контракт. |
Практическая граница
Компонент считается самостоятельной границей только если команда может назвать его входы, выходы и невозможные состояния. Если он требует читать provider-specific поля напрямую или хранит финальный статус операции только локально, граница выбрана слишком поздно.
При изменении контракта сначала обновляется state model и совместимость, затем визуальный слой. Это уменьшает риск ситуации, когда новый UI уже ожидает поле или статус, которого старая версия API не гарантирует.
Связанные разборы
Проверки поведения
- Счёт и фаза матча остаются видимыми при навигации по длинному списку рынков.
- Collapsed groups не скрывают выбранную пользователем selection без явного контекста.
- Partial suspend не превращает всю страницу в недоступный экран.
- Публичный shell не содержит account-specific данных и допускает edge-cache.
- Перестройка market ordering не сбрасывает пользовательскую позицию без причины.
- Loading state резервирует пространство для ключевых блоков и не создаёт крупный CLS.
Почему страница события не владеет всем
Event page рассматривается как композиция нескольких freshness domains: публичный контекст может кэшироваться, live-секции обновляются потоково, а персональные действия читаются отдельно.
При review команда проверяет не название компонента, а его инварианты: какие данные он имеет право считать финальными, что обязан показать при деградации и как возвращается в согласованное состояние после сбоя.
Как компонент ведёт себя во время актуальное
EventPage держит стабильный контекст, пока отдельные области меняются с разной частотой. Обновление счёта не должно сбрасывать раскрытый market group; изменение каталога — переносить focus; персональная selection — делать весь публичный shell приватным для CDN.
При partial degradation страница остаётся читаемой: информационный блок может показать stale с отметкой времени, а интерактивный market перейти в suspend. Это разные состояния и разные обещания пользователю.
Когда страница события действительно помогает продукту
Компонент полезен не тогда, когда «вмещает всё про матч», а когда у него есть понятная граница: что он получает как snapshot, что обновляет точечно и какой контекст обязан сохранить при смене данных. В живом продукте это особенно видно на длинной странице с рынками и статистикой. Практическое продолжение темы есть в материалах про плотность event page и точечные обновления live-center.