fix(room): шторка настроек не закрывалась свайпом вниз
Обработчики висели только на ручке `.room-sheet-handle` (40×4px) — попасть в неё пальцем практически невозможно, и палец почти всегда приземлялся на панель, где обработчиков не было вовсе. Свайп теперь закрывает шторку при жесте по любому месту панели, но только когда содержимое проскроллено в самый верх — иначе палец должен листать список устройств, как в любом стандартном bottom sheet.
This commit is contained in:
@@ -803,10 +803,16 @@ video[data-lk-source='screen_share'] { object-fit: contain; background: #000; }
|
||||
* Тот же диалог (`DeviceSettingsDialog`), что модалка выше, — только контейнер
|
||||
* снизу вместо центра экрана: `.room-sheet-overlay`/`.room-sheet-panel` вместо
|
||||
* `.room-modal-overlay`/`.room-modal-panel`, разметка полей (`.room-field` и
|
||||
* ниже) общая. Ручка `.room-sheet-handle` — свайп вниз для закрытия (JS считает
|
||||
* смещение пальца и сам решает, закрывать или вернуть панель на место;
|
||||
* `transition` тут — только пружина возврата, во время самого драга
|
||||
* компонент подставляет инлайновый `transition: none`).
|
||||
* ниже) общая. Свайп вниз для закрытия — JS на самой панели (не на ручке —
|
||||
* см. докстринг `DeviceSettingsDialog`) считает смещение пальца и сам решает,
|
||||
* закрывать или вернуть панель на место; `transition` тут — только пружина
|
||||
* возврата, во время самого драга компонент подставляет инлайновый
|
||||
* `transition: none`. `overscroll-behavior-y: contain` — чтобы при свайпе
|
||||
* вниз от самого верха списка устройств iOS/Chrome не показывали заодно
|
||||
* ещё и нативный эффект растяжения скролла поверх нашей анимации панели.
|
||||
* Ручка `.room-sheet-handle` — теперь чисто визуальная подсказка (сама
|
||||
* панель ловит жест где угодно), `touch-action: none` на ней оставлен —
|
||||
* безвредно и снимает системные жесты с этой узкой полоски.
|
||||
*/
|
||||
.room-sheet-overlay {
|
||||
position: fixed;
|
||||
@@ -827,6 +833,7 @@ video[data-lk-source='screen_share'] { object-fit: contain; background: #000; }
|
||||
width: 100%;
|
||||
max-height: 80vh;
|
||||
overflow-y: auto;
|
||||
overscroll-behavior-y: contain;
|
||||
transition: transform 160ms ease-out;
|
||||
}
|
||||
.room-sheet-handle {
|
||||
|
||||
Reference in New Issue
Block a user