UNPKG

stream-chat-react-native-core

Version:

The official React Native and Expo components for Stream Chat, a service for building chat applications

40 lines 1.7 kB
Object.defineProperty(exports, "__esModule", { value: true }); exports.useAfterKeyboardOpenCallback = void 0; var _react = require("react"); var _reactNative = require("react-native"); var _useStableCallback = require("./useStableCallback"); var _MessageInputContext = require("../contexts/messageInputContext/MessageInputContext"); var useAfterKeyboardOpenCallback = callback => { var _useMessageInputConte = (0, _MessageInputContext.useMessageInputContext)(), inputBoxRef = _useMessageInputConte.inputBoxRef; var keyboardSubscriptionRef = (0, _react.useRef)(undefined); var stableCallback = (0, _useStableCallback.useStableCallback)(callback); var clearKeyboardSubscription = (0, _useStableCallback.useStableCallback)(() => { keyboardSubscriptionRef.current?.remove(); keyboardSubscriptionRef.current = undefined; }); (0, _react.useEffect)(() => clearKeyboardSubscription, [clearKeyboardSubscription]); return (0, _useStableCallback.useStableCallback)((...args) => { clearKeyboardSubscription(); var runCallback = () => { clearKeyboardSubscription(); stableCallback(...args); }; if (!inputBoxRef.current) { runCallback(); return; } if (_reactNative.Keyboard.isVisible()) { inputBoxRef.current.focus(); runCallback(); return; } var keyboardEvent = _reactNative.Platform.OS === 'ios' ? 'keyboardWillShow' : 'keyboardDidShow'; keyboardSubscriptionRef.current = _reactNative.Keyboard.addListener(keyboardEvent, runCallback); inputBoxRef.current.focus(); }); }; exports.useAfterKeyboardOpenCallback = useAfterKeyboardOpenCallback; //# sourceMappingURL=useAfterKeyboardOpenCallback.js.map