UNPKG

stream-chat-react-native-core

Version:

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

36 lines 1.63 kB
Object.defineProperty(exports, "__esModule", { value: true }); exports.useShouldScrollToRecentOnNewOwnMessage = useShouldScrollToRecentOnNewOwnMessage; var _react = require("react"); function useShouldScrollToRecentOnNewOwnMessage(rawMessageList, currentUserId) { var lastFocusedOwnMessageId = (0, _react.useRef)(''); var initialFocusRegistered = (0, _react.useRef)(false); var messagesRef = (0, _react.useRef)(rawMessageList); messagesRef.current = rawMessageList; var isMyOwnNewMessageRef = (0, _react.useRef)(() => { if (messagesRef.current && messagesRef.current.length > 0) { var _lastMessage$user; var lastMessage = messagesRef.current[messagesRef.current.length - 1]; if (lastMessage && ((_lastMessage$user = lastMessage.user) == null ? void 0 : _lastMessage$user.id) === currentUserId && lastFocusedOwnMessageId.current !== lastMessage.id) { lastFocusedOwnMessageId.current = lastMessage.id; return true; } } return false; }); (0, _react.useEffect)(() => { if (rawMessageList && rawMessageList.length) { if (!initialFocusRegistered.current) { var _lastMessage$user2; initialFocusRegistered.current = true; var lastMessage = rawMessageList[rawMessageList.length - 1]; if (lastMessage && ((_lastMessage$user2 = lastMessage.user) == null ? void 0 : _lastMessage$user2.id) === currentUserId) { lastFocusedOwnMessageId.current = lastMessage.id; } } } }, [currentUserId, rawMessageList]); return isMyOwnNewMessageRef; } //# sourceMappingURL=useShouldScrollToRecentOnNewOwnMessage.js.map