stream-chat-react-native-core
Version:
The official React Native and Expo components for Stream Chat, a service for building chat applications
34 lines • 1.45 kB
JavaScript
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 = messagesRef.current[messagesRef.current.length - 1];
if (lastMessage && 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) {
initialFocusRegistered.current = true;
var lastMessage = rawMessageList[rawMessageList.length - 1];
if (lastMessage && lastMessage.user?.id === currentUserId) {
lastFocusedOwnMessageId.current = lastMessage.id;
}
}
}
}, [currentUserId, rawMessageList]);
return isMyOwnNewMessageRef;
}
//# sourceMappingURL=useShouldScrollToRecentOnNewOwnMessage.js.map