@uimkit/uikit-react
Version:
<img style="width:64px" src="https://mgmt.uimkit.chat/media/img/avatar.png"/>
90 lines (85 loc) • 4.2 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var tslib = require('tslib');
var React = require('react');
var actions = require('../store/messages/actions.js');
require('../types/models.js');
require('../types/events.js');
var selectors = require('../store/messages/selectors.js');
var commands = require('../store/messages/commands.js');
var reactRedux = require('react-redux');
var useDispatch = require('../store/useDispatch.js');
require('redux');
require('../store/rootReducer.js');
require('../store/accounts/actions.js');
require('../store/accounts/selectors.js');
require('../node_modules/.pnpm/invariant@2.2.4/node_modules/invariant/invariant.js');
require('i18next');
require('../store/conversations/actions.js');
require('../node_modules/.pnpm/lodash.flatten@4.4.0/node_modules/lodash.flatten/index.js');
require('../node_modules/.pnpm/lodash.some@4.6.0/node_modules/lodash.some/index.js');
require('../store/contacts/actions.js');
function useConversationState(conversationId) {
var _this = this;
var dispatch = useDispatch.useDispatch();
var _a = reactRedux.useSelector(selectors.getConversationState(conversationId)), messages = _a.messages, loadingMore = _a.loadingMore, hasMore = _a.hasMore, loadingMoreNewer = _a.loadingMoreNewer, hasMoreNewer = _a.hasMoreNewer, suppressAutoscroll = _a.suppressAutoscroll, highlightedMessageId = _a.highlightedMessageId;
console.log("loadingMore: ".concat(loadingMore, ", hasMore: ").concat(hasMore, ", loadingMoreNewer: ").concat(loadingMoreNewer, ", hasMoreNewer: ").concat(hasMoreNewer));
React.useEffect(function () {
if (conversationId && (!messages || messages.length === 0)) {
dispatch(commands.fetchConversationNewMessages(conversationId));
}
}, [conversationId, messages]);
var loadMore = React.useCallback(function () { return tslib.__awaiter(_this, void 0, void 0, function () {
return tslib.__generator(this, function (_a) {
if (conversationId) {
dispatch(commands.fetchConversationHistoryMessages(conversationId));
}
return [2 /*return*/];
});
}); }, [conversationId]);
var loadMoreNewer = React.useCallback(function () { return tslib.__awaiter(_this, void 0, void 0, function () {
return tslib.__generator(this, function (_a) {
return [2 /*return*/];
});
}); }, [conversationId]);
var clearHighlightedMessageTimeoutId = React.useRef(null);
var jumpToMessage = React.useCallback(function (messageId, limit) {
return tslib.__awaiter(_this, void 0, void 0, function () {
var conversation;
return tslib.__generator(this, function (_a) {
conversation = { id: conversationId };
dispatch({
type: actions.ConversationActionType.JumpToMessageFinished,
conversation: conversation,
highlightedMessageId: messageId,
hasMoreNewer: false,
});
if (clearHighlightedMessageTimeoutId.current) {
clearTimeout(clearHighlightedMessageTimeoutId.current);
}
clearHighlightedMessageTimeoutId.current = setTimeout(function () {
clearHighlightedMessageTimeoutId.current = null;
dispatch({
type: actions.ConversationActionType.ClearHighlightedMessage,
conversation: { id: conversationId },
});
}, 500);
return [2 /*return*/];
});
});
}, [conversationId, messages]);
return {
messages: messages,
hasMore: hasMore,
loadingMore: loadingMore,
loadMore: loadMore,
hasMoreNewer: hasMoreNewer,
loadingMoreNewer: loadingMoreNewer,
loadMoreNewer: loadMoreNewer,
jumpToMessage: jumpToMessage,
suppressAutoscroll: suppressAutoscroll,
highlightedMessageId: highlightedMessageId,
};
}
exports.useConversationState = useConversationState;
//# sourceMappingURL=useConversationState.js.map