mirror of
https://github.com/dartdavros/chatballs.git
synced 2026-10-05 17:14:59 +03:00
Вёрстка: - мобильная сцена брала высоту как `height:100%` от родителя, у которого задан только `min-height` — процент схлопывался в высоту по контенту, и окно выходило 412x427 вместо 412x915. Высота берётся от вьюпорта (vh/dvh), как у видеозвонка; - на низком десктопном окне карточка 9:16 не влезала и кнопки приёма уезжали за фолд — ширина зажата по высоте вьюпорта, пропорция остаётся ровно 9:16; - операторской модалке нужен `height:auto`, иначе мобильная ветка растягивала сцену на весь экран внутри antd Modal; - пустая «пилюля» канала больше не рисуется без метки. Жизненный цикл: - токен из хеша сохраняется в sessionStorage: хеш срезается replaceState, а в пути лежит callId, поэтому после F5 звонок было не восстановить; - обрабатывается CONNECTED от собеседника — UI выходит из «Переподключения», когда обрыв был на его стороне; - у режима reconnecting появился нижний бар: экран был без единой кнопки; - клиенту не показывается «Позвонить снова», которого он не может сделать; на DECLINED/MISSED/EXPIRED это была единственная кнопка, и уйти было некуда; - «Повторить» на упавшем соединении рестартует RTC, а не перепроверяет микрофон. Чистка: - TERMINAL_CALL_STATUSES стал единственным источником вместо трёх копий набора; - волна в тишине спокойная: амплитуда растёт от idle к speak по громкости; - сигналинг и track.enabled вынесены из updater'а setState. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>