UNPKG

@uimkit/uikit-react

Version:

<img style="width:64px" src="https://mgmt.uimkit.chat/media/img/avatar.png"/>

90 lines (85 loc) 4.2 kB
'use strict'; 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