UNPKG

@botonic/react

Version:

Build Chatbots using React

46 lines 1.91 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useDeviceAdapter = void 0; const react_1 = require("react"); const devices_1 = require("../devices"); const use_scroll_to_bottom_1 = require("./use-scroll-to-bottom"); const use_scrollbar_controller_1 = require("./use-scrollbar-controller"); const use_virtual_keyboard_detection_1 = require("./use-virtual-keyboard-detection"); const use_webchat_resizer_1 = require("./use-webchat-resizer"); function getCurrentDevice() { // @ts-ignore if (navigator.userAgentData) return navigator.userAgentData.platform; return navigator.platform; } const useDeviceAdapter = (host, isWebchatOpen) => { const currentDevice = getCurrentDevice(); const { scrollToBottom } = (0, use_scroll_to_bottom_1.useScrollToBottom)({ host }); const { isVirtualKeyboardVisible } = (0, use_virtual_keyboard_detection_1.useVirtualKeyboardDetection)(window.innerHeight); const { handleKeyboardShown, handleKeyboardHidden } = (0, use_webchat_resizer_1.useWebchatResizer)(); const { handleScrollEvents } = (0, use_scrollbar_controller_1.useScrollbarController)(currentDevice, host); (0, react_1.useEffect)(() => { if (currentDevice !== devices_1.DEVICES.MOBILE.IPHONE) return; if (isVirtualKeyboardVisible) { handleKeyboardShown(); scrollToBottom(); } else { handleKeyboardHidden(); } return; }, [isVirtualKeyboardVisible]); (0, react_1.useEffect)(() => { if (host && isWebchatOpen) { if (currentDevice !== devices_1.DEVICES.MOBILE.IPHONE) return; handleScrollEvents(); } }, [host, isWebchatOpen, handleScrollEvents]); return { currentDevice, }; }; exports.useDeviceAdapter = useDeviceAdapter; //# sourceMappingURL=use-device-adapter.js.map