UNPKG

@botonic/react

Version:

Build Chatbots using React

49 lines 1.95 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() { const nav = navigator; if (nav.userAgentData) { return nav.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