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
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$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