Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Описание
Пример рефактора модалок с помощью touch-событий.
Решение пограничных кейсов
выделение текста – с помощью функции
hasSelectionWithRangeType
определяем, что пользователь выделил текст и перестаём реагировать наtouchstart
иtouchmove
пока выделение не будет удалено.поля ввода – через
useKeyboard
узнаём, что пользователь работает с клавиатурой и не реагируем не реагируем наtouchstart
.вертикальный и горизонтальный скроллы – при
touchstart
достаём скроллируемый элемент черезevent.target
и подписываемся на событие скролла, а также получаем информацию про позицию скролла.scrollTop === 0
, еслиtrue
, то включаем свайп вниз и черезevent.preventDefault
предотвращаем bounce скролла.TODO
Вкратце:
settlingHeight
(также см. [Feature] Разделить settlingHeight и fullscreen #1697)Остальное см. в
checklist.md
.Референсы