Карточка коэффициента
Показывает текущую цену, направление изменения, selection и suspend без потери доступности.
Состояния компонента
Иллюстрация по теме
Визуальный ориентир помогает быстрее считать сценарий страницы и не оставлять компонент абстрактным.

Контракт состояния рынка
| Inputs | selection state, version, availability |
|---|---|
| Outputs | selection intent, accessible status |
| Failure mode | false enabled state, noisy live announcement |
| Ownership | UI владеет представлением и recoverable context; финальное бизнес-состояние подтверждает серверный контракт. |
Реализация без утечки терминов поставщика
Компонент считается самостоятельной границей только если команда может назвать его входы, выходы и невозможные состояния. Если он требует читать provider-specific поля напрямую или хранит финальный статус операции только локально, граница выбрана слишком поздно.
При изменении контракта сначала обновляется state model и совместимость, затем визуальный слой. Это уменьшает риск ситуации, когда новый UI уже ожидает поле или статус, которого старая версия API не гарантирует.
Связанные разборы
Приёмочные проверки для актуальное-состояний
- Цена имеет явный version/freshness context.
- Suspend блокирует действие, но не стирает контекст пользователя без необходимости.
- Рост/падение не кодируется только цветом.
- Live region не объявляет каждый provider tick и не создаёт аудио-шум.
- Selected и pending состояния визуально различимы.
- После server reject компонент возвращается в состояние, соответствующее актуальному рынку.
Почему карточка не подтверждает операцию
Кнопка коэффициента — маленький stateful-компонент с высокой ценой неправильного состояния. Визуальный эффект изменения цены вторичен по отношению к корректной доступности и authority.
При review команда проверяет не название компонента, а его инварианты: какие данные он имеет право считать финальными, что обязан показать при деградации и как возвращается в согласованное состояние после сбоя.
Цена меняется, контекст остаётся
LiveOddsTile тестируется серией переходов: stable → up → down → suspended → live. Визуальная реакция может быть быстрой, но значение, focus и выбранное состояние не должны прыгать вместе с каждым tick. Если рынок входит в betslip, reprice обрабатывается уже на границе подтверждения операции.
Компонент получает продуктовый market state, а не provider-specific payload. Это позволяет менять источник данных без переписывания accessible name, keyboard behavior и ошибок UI.
Цена меняется часто, контекст терять нельзя
У live-odds tile простая внешняя форма, но сложный поведенческий контракт. Пользователь должен видеть изменение цены, понимать suspend и не сомневаться, какой исход сейчас выбран. Именно поэтому компоненту нужна своя state model, а не прямое чтение provider flags. За деталями стоит перейти к разбору кнопки коэффициента и материалу про распределение обновлений в реальном времени.