mirror of
https://github.com/dartdavros/chatballs.git
synced 2026-10-05 09:14:58 +03:00
Утечка камеры и микрофона у оператора: - терминальный статус приходит и поллингом состояния, а не только по RTC-сокету (до «Присоединиться» сокет ещё не открыт), поэтому `onCallState` → `stop()` не срабатывал. Экран уходил в `status`, а оба выхода с него RTC не глушили: `endAndClose` для этого режима пропускает `finish()`, а «Закрыть» зовёт `close()`, который только прячет модалку. Оверлей при этом остаётся смонтированным, так что и cleanup хука не отрабатывал — камера оператора горела до переключения диалога. Оба оверлея явно освобождают устройства, когда оверлей закрыт или звонок завершён. call-view.css переведён на токены дизайн-системы: - радиус карточки 24px → `--radius-4xl` (14px), тень → `--shadow-lg`, рамки → `--border-default`, второстепенный текст → `--text-secondary`, круглые кнопки → `--n-7`/`--n-9`/`--n-3`, выключенные → `--error-*`, таймер → `--error-bg`/`--error-text` + 12.5px и моноширинный шрифт, таймер переподключения → `--warning-text` и точка `--warning`, кнопки precall → `--radius-lg` (9px), 14px и `--shadow-primary`; - радиус контейнера модалки взят из того же токена: снаружи виден именно он; - хардкод оставлен там, где он есть и в макете — сцена видео и слои поверх неё от темы не зависят. Побочный эффект: карточка звонка у оператора теперь следует тёмной теме internal-ui, как остальные поверхности. Проверено в обеих темах. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>