export type VirtualKeyboardState = { opened: boolean; }; /** * > см. [Неудобно работать с клавиатурой в ModalPage на iOS #3792](https://github.com/VKCOM/VKUI/discussions/3792) * * Для реализации модальных окон для тач-устройств, мы вынуждены отслеживать открытие виртуальной * клавиатуры. По состоянию `opened` компоненты должны временно блокировать дальнейшее взаимодействие * с ними. Например, отключить закрытие по свайпу, чтобы не мешать пользователю работать с полями * ввода. * * Помимо этого в **Safari** и в **Chrome Android** нам нужно отслеживать прокрутку области видимости * пользователем, т.к. в упомянутых браузерах, виртуальная клавиатура поднимает контент вверх * не изменяя её высоту. Из-за этого появляется возможность прокручивать `window`, что визуально * выглядит плохо. В хуке мы ловим фокус на поле ввода и далее, если это тач-устройство, то * отлавливаем события прокрутки на `window`, чтобы сохранять текущую её позицию через `scrollTo(x, y)`. * * **Troubleshooting** * * - в **Safari** и в **Chrome Android** шапка будет выдвигаться вверх – хаки с выставлением `offsetTop` * из `VisualViewport` порождают reflow/repaint и прыгания контента; * - в **Safari** изменение высоты виртуальной клавиатуры, например, на выбор эмодзи, не поднимет * `VisualViewport` из-за чего клавиатура может частично перекрыть элементы интерфейса. * * **Полезные ссылки** * * - [The Eccentric Ways of iOS Safari with the Keyboard](https://web.archive.org/web/20240920081850/https://blog.opendigerati.com/the-eccentric-ways-of-ios-safari-with-the-keyboard-b5aa3f34228d?gi=5411141a13e0) * - [Dealing with the visual viewport](https://web.archive.org/web/20240920082109/https://rdavis.io/articles/dealing-with-the-visual-viewport) * - [How to get the document height in iOS Safari when the on-screen keyboard is open](https://web.archive.org/web/20240920082743/https://martijnhols.nl/gists/how-to-get-document-height-ios-safari-osk) */ export declare function useVirtualKeyboardState(enabled?: boolean): VirtualKeyboardState; //# sourceMappingURL=useVirtualKeyboardState.d.ts.map