sceyt-chat-react-uikit 1.8.7-beta.16 → 1.8.7-beta.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/Messages/MessageList/useChatController.d.ts +3 -1
- package/index.js +73 -54
- package/index.modern.js +73 -54
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { IChannel, IMessage } from '../../../types';
|
|
3
|
+
import { VisibleMessagesMap } from '../../../store/message/reducers';
|
|
3
4
|
export declare const PRELOAD_TRIGGER_PX = 5;
|
|
4
5
|
export declare const LATEST_EDGE_GAP_PX = 0;
|
|
5
6
|
declare type TimelineItem = {
|
|
@@ -41,12 +42,13 @@ export interface UseChatControllerParams {
|
|
|
41
42
|
showScrollToNewMessageButton: boolean;
|
|
42
43
|
unreadScrollTo: boolean | string;
|
|
43
44
|
unreadMessageId: string;
|
|
45
|
+
visibleMessagesMap: VisibleMessagesMap;
|
|
44
46
|
selectedMessagesMap: Map<string, any>;
|
|
45
47
|
allowEditDeleteIncomingMessage: boolean;
|
|
46
48
|
dispatch: (...args: any[]) => void;
|
|
47
49
|
tabIsActive?: boolean;
|
|
48
50
|
}
|
|
49
|
-
export declare function useChatController({ messages, channel, hasPrevMessages, hasNextMessages, loadingPrevMessages, loadingNextMessages, connectionStatus, scrollToNewMessage, scrollToMentionedMessage, showScrollToNewMessageButton, unreadScrollTo, unreadMessageId, selectedMessagesMap, allowEditDeleteIncomingMessage, tabIsActive, dispatch }: UseChatControllerParams): {
|
|
51
|
+
export declare function useChatController({ messages, channel, hasPrevMessages, hasNextMessages, loadingPrevMessages, loadingNextMessages, connectionStatus, scrollToNewMessage, scrollToMentionedMessage, showScrollToNewMessageButton, unreadScrollTo, unreadMessageId, visibleMessagesMap, selectedMessagesMap, allowEditDeleteIncomingMessage, tabIsActive, dispatch }: UseChatControllerParams): {
|
|
50
52
|
scrollRef: import("react").MutableRefObject<HTMLDivElement | null>;
|
|
51
53
|
setLastVisibleMessageId: (message: IMessage) => void;
|
|
52
54
|
handleScrollToRepliedMessage: (itemId: string, smooth?: boolean) => Promise<void>;
|
package/index.js
CHANGED
|
@@ -9410,6 +9410,7 @@ var channelSlice = createSlice({
|
|
|
9410
9410
|
state.channels = sortChannelByLastMessage([].concat(updatedChannels));
|
|
9411
9411
|
},
|
|
9412
9412
|
updateChannelLastMessage: function updateChannelLastMessage(state, action) {
|
|
9413
|
+
var _updateChannel2, _updateChannel3, _state$activeChannel2;
|
|
9413
9414
|
var _action$payload5 = action.payload,
|
|
9414
9415
|
channel = _action$payload5.channel,
|
|
9415
9416
|
message = _action$payload5.message;
|
|
@@ -9440,6 +9441,9 @@ var channelSlice = createSlice({
|
|
|
9440
9441
|
state.channels = sortChannelByLastMessage([updateChannel].concat(updatedChannels));
|
|
9441
9442
|
}
|
|
9442
9443
|
}
|
|
9444
|
+
if ((_updateChannel2 = updateChannel) !== null && _updateChannel2 !== void 0 && _updateChannel2.id && ((_updateChannel3 = updateChannel) === null || _updateChannel3 === void 0 ? void 0 : _updateChannel3.id) === ((_state$activeChannel2 = state.activeChannel) === null || _state$activeChannel2 === void 0 ? void 0 : _state$activeChannel2.id)) {
|
|
9445
|
+
state.activeChannel = updateChannel;
|
|
9446
|
+
}
|
|
9443
9447
|
},
|
|
9444
9448
|
updateChannelLastMessageStatus: function updateChannelLastMessageStatus(state, action) {
|
|
9445
9449
|
var _action$payload6 = action.payload,
|
|
@@ -10693,6 +10697,19 @@ function showScrollToNewMessageButtonAC(state) {
|
|
|
10693
10697
|
state: state
|
|
10694
10698
|
});
|
|
10695
10699
|
}
|
|
10700
|
+
function setVisibleMessageAC(message) {
|
|
10701
|
+
return setVisibleMessage({
|
|
10702
|
+
message: message
|
|
10703
|
+
});
|
|
10704
|
+
}
|
|
10705
|
+
function removeVisibleMessageAC(message) {
|
|
10706
|
+
return removeVisibleMessage({
|
|
10707
|
+
message: message
|
|
10708
|
+
});
|
|
10709
|
+
}
|
|
10710
|
+
function clearVisibleMessagesMapAC() {
|
|
10711
|
+
return clearVisibleMessagesMap();
|
|
10712
|
+
}
|
|
10696
10713
|
function setUnreadScrollToAC(state) {
|
|
10697
10714
|
return setUnreadScrollTo({
|
|
10698
10715
|
state: state
|
|
@@ -11971,27 +11988,6 @@ var removeAudioRecordingFromMap = function removeAudioRecordingFromMap(channelId
|
|
|
11971
11988
|
var setDraftMessageToMap = function setDraftMessageToMap(channelId, draftMessage) {
|
|
11972
11989
|
draftMessagesMap[channelId] = draftMessage;
|
|
11973
11990
|
};
|
|
11974
|
-
var visibleMessagesMap = {};
|
|
11975
|
-
var getVisibleMessagesMap = function getVisibleMessagesMap() {
|
|
11976
|
-
return visibleMessagesMap;
|
|
11977
|
-
};
|
|
11978
|
-
var clearVisibleMessagesMap = function clearVisibleMessagesMap() {
|
|
11979
|
-
visibleMessagesMap = {};
|
|
11980
|
-
};
|
|
11981
|
-
var setMessageToVisibleMessagesMap = function setMessageToVisibleMessagesMap(message) {
|
|
11982
|
-
var localRef = getMessageLocalRef(message);
|
|
11983
|
-
if (!localRef) {
|
|
11984
|
-
return;
|
|
11985
|
-
}
|
|
11986
|
-
visibleMessagesMap[localRef] = {
|
|
11987
|
-
id: message.id,
|
|
11988
|
-
localRef: localRef,
|
|
11989
|
-
sortKey: getMessageSortKey(message).toString()
|
|
11990
|
-
};
|
|
11991
|
-
};
|
|
11992
|
-
var removeMessageFromVisibleMessagesMap = function removeMessageFromVisibleMessagesMap(message) {
|
|
11993
|
-
delete visibleMessagesMap[getMessageLocalRef(message)];
|
|
11994
|
-
};
|
|
11995
11991
|
var checkPendingPollActionConflict = function checkPendingPollActionConflict(action) {
|
|
11996
11992
|
var messageId = action.message.id || action.message.tid;
|
|
11997
11993
|
if (!messageId) return {
|
|
@@ -12162,7 +12158,8 @@ var initialState$1 = {
|
|
|
12162
12158
|
stableUnreadAnchor: {
|
|
12163
12159
|
channelId: '',
|
|
12164
12160
|
messageId: ''
|
|
12165
|
-
}
|
|
12161
|
+
},
|
|
12162
|
+
visibleMessagesMap: {}
|
|
12166
12163
|
};
|
|
12167
12164
|
var isPendingMessage = function isPendingMessage(message) {
|
|
12168
12165
|
return !message.id && !!message.tid;
|
|
@@ -12267,6 +12264,24 @@ var messageSlice = createSlice({
|
|
|
12267
12264
|
setShowScrollToNewMessageButton: function setShowScrollToNewMessageButton(state, action) {
|
|
12268
12265
|
state.showScrollToNewMessageButton = action.payload.state;
|
|
12269
12266
|
},
|
|
12267
|
+
setVisibleMessage: function setVisibleMessage(state, action) {
|
|
12268
|
+
var message = action.payload.message;
|
|
12269
|
+
var localRef = getMessageLocalRef(message);
|
|
12270
|
+
if (!localRef) {
|
|
12271
|
+
return;
|
|
12272
|
+
}
|
|
12273
|
+
state.visibleMessagesMap[localRef] = {
|
|
12274
|
+
id: message.id,
|
|
12275
|
+
localRef: localRef,
|
|
12276
|
+
sortKey: getMessageSortKey(message).toString()
|
|
12277
|
+
};
|
|
12278
|
+
},
|
|
12279
|
+
removeVisibleMessage: function removeVisibleMessage(state, action) {
|
|
12280
|
+
delete state.visibleMessagesMap[getMessageLocalRef(action.payload.message)];
|
|
12281
|
+
},
|
|
12282
|
+
clearVisibleMessagesMap: function clearVisibleMessagesMap(state) {
|
|
12283
|
+
state.visibleMessagesMap = {};
|
|
12284
|
+
},
|
|
12270
12285
|
setUnreadScrollTo: function setUnreadScrollTo(state, action) {
|
|
12271
12286
|
state.unreadScrollTo = action.payload.state;
|
|
12272
12287
|
},
|
|
@@ -12802,6 +12817,9 @@ var _messageSlice$actions = messageSlice.actions,
|
|
|
12802
12817
|
setScrollToMentionedMessage = _messageSlice$actions.setScrollToMentionedMessage,
|
|
12803
12818
|
setScrollToNewMessage = _messageSlice$actions.setScrollToNewMessage,
|
|
12804
12819
|
setShowScrollToNewMessageButton = _messageSlice$actions.setShowScrollToNewMessageButton,
|
|
12820
|
+
setVisibleMessage = _messageSlice$actions.setVisibleMessage,
|
|
12821
|
+
removeVisibleMessage = _messageSlice$actions.removeVisibleMessage,
|
|
12822
|
+
clearVisibleMessagesMap = _messageSlice$actions.clearVisibleMessagesMap,
|
|
12805
12823
|
setUnreadScrollTo = _messageSlice$actions.setUnreadScrollTo,
|
|
12806
12824
|
setMessages = _messageSlice$actions.setMessages,
|
|
12807
12825
|
addMessages = _messageSlice$actions.addMessages,
|
|
@@ -22223,8 +22241,8 @@ var getResolvedChannelLastMessage$1 = function getResolvedChannelLastMessage(cha
|
|
|
22223
22241
|
return storedChannel !== null && storedChannel !== void 0 && (_storedChannel$lastMe2 = storedChannel.lastMessage) !== null && _storedChannel$lastMe2 !== void 0 && _storedChannel$lastMe2.id ? storedChannel.lastMessage : null;
|
|
22224
22242
|
};
|
|
22225
22243
|
function handleChannelMessageEvent(args, SceytChatClient) {
|
|
22226
|
-
var _storedChannel$lastMe3, _storedChannel$lastMe4, _store$getState$Messa, _storedChannel$lastMe9, _message$
|
|
22227
|
-
var channel, message, messageToHandle, channelFilterTypes, activeChannelId, channelExists, channelForAdd, storedChannel, candidateLastMessage, resolvedLastMessage, shouldUpdateLastMessage, messages, lastMessageIsInActiveWindow, isSameLastMessage, resolvedLastMessageUpdate, _storedChannel$lastMe7, lastMessageIsVisible, messagesHasNext, existingMessage, tabIsActive, channelDataUpdate, groupName, showNotifications, _tabIsActive, _state$ThemeReducer$n, _state$ThemeReducer$n2, _state$ThemeReducer$n3, _state$ThemeReducer$n4, _state$ThemeReducer$n5, _state$ThemeReducer$n6, contactsMap, getFromContacts, state, theme, accentColor, textSecondary, messageBody;
|
|
22244
|
+
var _storedChannel$lastMe3, _storedChannel$lastMe4, _store$getState$Messa, _storedChannel$lastMe9, _message$attachments;
|
|
22245
|
+
var channel, message, messageToHandle, channelFilterTypes, activeChannelId, channelExists, channelForAdd, storedChannel, candidateLastMessage, resolvedLastMessage, shouldUpdateLastMessage, messages, lastMessageIsInActiveWindow, isSameLastMessage, resolvedLastMessageUpdate, _store$getState$Messa2, _storedChannel$lastMe7, visibleMessagesMap, lastMessageIsVisible, messagesHasNext, existingMessage, tabIsActive, channelDataUpdate, groupName, showNotifications, _tabIsActive, _state$ThemeReducer$n, _state$ThemeReducer$n2, _state$ThemeReducer$n3, _state$ThemeReducer$n4, _state$ThemeReducer$n5, _state$ThemeReducer$n6, contactsMap, getFromContacts, state, theme, accentColor, textSecondary, messageBody;
|
|
22228
22246
|
return _regenerator().w(function (_context) {
|
|
22229
22247
|
while (1) switch (_context.n) {
|
|
22230
22248
|
case 0:
|
|
@@ -22279,7 +22297,8 @@ function handleChannelMessageEvent(args, SceytChatClient) {
|
|
|
22279
22297
|
_context.n = 10;
|
|
22280
22298
|
break;
|
|
22281
22299
|
}
|
|
22282
|
-
|
|
22300
|
+
visibleMessagesMap = ((_store$getState$Messa2 = store.getState().MessageReducer) === null || _store$getState$Messa2 === void 0 ? void 0 : _store$getState$Messa2.visibleMessagesMap) || {};
|
|
22301
|
+
lastMessageIsVisible = storedChannel !== null && storedChannel !== void 0 && (_storedChannel$lastMe7 = storedChannel.lastMessage) !== null && _storedChannel$lastMe7 !== void 0 && _storedChannel$lastMe7.id ? Object.values(visibleMessagesMap).some(function (visibleMessage) {
|
|
22283
22302
|
var _storedChannel$lastMe8;
|
|
22284
22303
|
return visibleMessage.id === ((_storedChannel$lastMe8 = storedChannel.lastMessage) === null || _storedChannel$lastMe8 === void 0 ? void 0 : _storedChannel$lastMe8.id);
|
|
22285
22304
|
}) : false;
|
|
@@ -22388,19 +22407,13 @@ function handleChannelMessageEvent(args, SceytChatClient) {
|
|
|
22388
22407
|
return att.type !== attachmentTypes.link;
|
|
22389
22408
|
}) : undefined);
|
|
22390
22409
|
case 15:
|
|
22391
|
-
if (!(message.
|
|
22392
|
-
_context.n =
|
|
22410
|
+
if (!(message.user.id !== SceytChatClient.user.id)) {
|
|
22411
|
+
_context.n = 16;
|
|
22393
22412
|
break;
|
|
22394
22413
|
}
|
|
22395
22414
|
_context.n = 16;
|
|
22396
|
-
return effects.put(markMessagesAsDeliveredAC(message.parentMessage.id, [message.id]));
|
|
22397
|
-
case 16:
|
|
22398
|
-
_context.n = 18;
|
|
22399
|
-
break;
|
|
22400
|
-
case 17:
|
|
22401
|
-
_context.n = 18;
|
|
22402
22415
|
return effects.put(markMessagesAsDeliveredAC(channel.id, [message.id]));
|
|
22403
|
-
case
|
|
22416
|
+
case 16:
|
|
22404
22417
|
updateChannelOnAllChannels(channel.id, channelDataUpdate);
|
|
22405
22418
|
if (shouldUpdateLastMessage) {
|
|
22406
22419
|
updateChannelLastMessageOnAllChannels(channel.id, resolvedLastMessageUpdate);
|
|
@@ -22408,7 +22421,7 @@ function handleChannelMessageEvent(args, SceytChatClient) {
|
|
|
22408
22421
|
if ((_message$attachments = message.attachments) !== null && _message$attachments !== void 0 && _message$attachments.length) {
|
|
22409
22422
|
updateTabAttachmentCache(channel.id, message.attachments, message.user);
|
|
22410
22423
|
}
|
|
22411
|
-
case
|
|
22424
|
+
case 17:
|
|
22412
22425
|
return _context.a(2);
|
|
22413
22426
|
}
|
|
22414
22427
|
}, _marked$2);
|
|
@@ -23020,7 +23033,7 @@ function watchForEvents() {
|
|
|
23020
23033
|
};
|
|
23021
23034
|
});
|
|
23022
23035
|
_loop = /*#__PURE__*/_regenerator().m(function _callee3() {
|
|
23023
|
-
var _yield$take, type, args, createdChannel, channelFilterTypes, getFromContacts, channelExists, _chan, channel, joinedMember, _chan2, customLoadMembersFunctions, joinMembersEvent, membersList, updateChannelData, _channel, member, _channelExists, activeChannelId, groupName, _updateChannelData, users, blockedUsers, allChannels, _loop2, _iterator2, _step2, _users, unblockedUsers, _allChannels, _loop3, _iterator3, _step3, _channel2, removedMembers, _activeChannelId, _channelExists2, activeChannel, _updateChannelData2, _groupName, _channel3, addedMembers, _activeChannelId2, _channelExists3, _updateChannelData3, _customLoadMembersFunctions, addMembersEvent, _membersList, _groupName2, onUpdateChannel, updatedChannel, _channelExists4, subject, avatarUrl, muted, mutedTill, metadata, _channel4, fields, parsedChannelMeta, parsedMeta, _activeChannelId3, _groupName3, channelId, _channel5, _channel6, user, message, reaction, isSelf, _activeChannelId4, _state$ThemeReducer$n7, _state$ThemeReducer$n8, _state$ThemeReducer$n9, _state$ThemeReducer$n0, _state$ThemeReducer$n1, _state$ThemeReducer$n10, contactsMap, _getFromContacts, state, theme, accentColor, textSecondary, messageBody, channelUpdateParams, _pollDetailsData$chan, _pollDetailsData$chan2, _channel7, pollDetails, messageId, pollDetailsData, _activeChannelId5, addedVotes, deletedVotes, objs, _iterator4, _step4, vote, _iterator5, _step5, _vote, _i, _objs, obj, _store$getState$
|
|
23036
|
+
var _yield$take, type, args, createdChannel, channelFilterTypes, getFromContacts, channelExists, _chan, channel, joinedMember, _chan2, customLoadMembersFunctions, joinMembersEvent, membersList, updateChannelData, _channel, member, _channelExists, activeChannelId, groupName, _updateChannelData, users, blockedUsers, allChannels, _loop2, _iterator2, _step2, _users, unblockedUsers, _allChannels, _loop3, _iterator3, _step3, _channel2, removedMembers, _activeChannelId, _channelExists2, activeChannel, _updateChannelData2, _groupName, _channel3, addedMembers, _activeChannelId2, _channelExists3, _updateChannelData3, _customLoadMembersFunctions, addMembersEvent, _membersList, _groupName2, onUpdateChannel, updatedChannel, _channelExists4, subject, avatarUrl, muted, mutedTill, metadata, _channel4, fields, parsedChannelMeta, parsedMeta, _activeChannelId3, _groupName3, channelId, _channel5, _channel6, user, message, reaction, isSelf, _activeChannelId4, _state$ThemeReducer$n7, _state$ThemeReducer$n8, _state$ThemeReducer$n9, _state$ThemeReducer$n0, _state$ThemeReducer$n1, _state$ThemeReducer$n10, contactsMap, _getFromContacts, state, theme, accentColor, textSecondary, messageBody, channelUpdateParams, _pollDetailsData$chan, _pollDetailsData$chan2, _channel7, pollDetails, messageId, pollDetailsData, _activeChannelId5, addedVotes, deletedVotes, objs, _iterator4, _step4, vote, _iterator5, _step5, _vote, _i, _objs, obj, _store$getState$Messa3, key, hasNext, _i2, _objs2, _obj, _pollDetailsData$chan3, _channel8, _pollDetails, _messageId, _pollDetailsData, _activeChannelId6, _deletedVotes, _objs3, _iterator6, _step6, _vote2, _i3, _objs4, _obj2, _i4, _objs5, _obj3, _pollDetailsData2$cha, _channel9, _pollDetails2, _messageId2, _activeChannelId7, _pollDetailsData2, retractedVotes, _objs6, _iterator7, _step7, _vote4, _i5, _objs7, _obj4, _iterator8, _step8, _vote3, _channel0, _messageId3, _activeChannelId8, _obj5, _channel1, _user, _message, _reaction, channelFromMap, _isSelf, _activeChannelId9, _channelUpdateParams, _channel10, _activeChannelId0, channelExist, _channel11, _channel12, _channel13, _channel14, _channel15, _activeChannelId1, lastChannel, _channel16, _channel17, _groupName4, _channel18, _groupName5, _channel19, members, _activeChannelId10, _customLoadMembersFunctions2, updateMembersEvent, _membersList2, i, _channel20, _channel21, _channelId, from, name, status, _t, _t2, _t3, _t4;
|
|
23024
23037
|
return _regenerator().w(function (_context8) {
|
|
23025
23038
|
while (1) switch (_context8.p = _context8.n) {
|
|
23026
23039
|
case 0:
|
|
@@ -23669,7 +23682,7 @@ function watchForEvents() {
|
|
|
23669
23682
|
break;
|
|
23670
23683
|
}
|
|
23671
23684
|
key = pollDetailsData.id + "_" + obj.vote.optionId;
|
|
23672
|
-
hasNext = ((_store$getState$
|
|
23685
|
+
hasNext = ((_store$getState$Messa3 = store.getState().MessageReducer.pollVotesHasMore) === null || _store$getState$Messa3 === void 0 ? void 0 : _store$getState$Messa3[key]) || false;
|
|
23673
23686
|
if (!(obj.type === 'addOwn')) {
|
|
23674
23687
|
_context8.n = 90;
|
|
23675
23688
|
break;
|
|
@@ -28672,6 +28685,9 @@ var scrollToMentionedMessageSelector = function scrollToMentionedMessageSelector
|
|
|
28672
28685
|
var showScrollToNewMessageButtonSelector = function showScrollToNewMessageButtonSelector(store) {
|
|
28673
28686
|
return store.MessageReducer.showScrollToNewMessageButton;
|
|
28674
28687
|
};
|
|
28688
|
+
var visibleMessagesMapSelector = function visibleMessagesMapSelector(store) {
|
|
28689
|
+
return store.MessageReducer.visibleMessagesMap;
|
|
28690
|
+
};
|
|
28675
28691
|
var sendMessageInputHeightSelector = function sendMessageInputHeightSelector(store) {
|
|
28676
28692
|
return store.MessageReducer.sendMessageInputHeight;
|
|
28677
28693
|
};
|
|
@@ -35895,24 +35911,24 @@ var Message = function Message(_ref) {
|
|
|
35895
35911
|
setLastVisibleMessageId(message);
|
|
35896
35912
|
}
|
|
35897
35913
|
if (!channel.isLinkedChannel) {
|
|
35898
|
-
|
|
35914
|
+
dispatch(setVisibleMessageAC(message));
|
|
35899
35915
|
}
|
|
35900
35916
|
if (scrollToNewMessage.scrollToBottom && channel.lastMessage && compareMessagesForList(message, channel.lastMessage) >= 0) {
|
|
35901
35917
|
dispatch(scrollToNewMessageAC(false, false, false));
|
|
35902
35918
|
}
|
|
35903
35919
|
} else {
|
|
35904
35920
|
if (!channel.isLinkedChannel) {
|
|
35905
|
-
|
|
35921
|
+
dispatch(removeVisibleMessageAC(message));
|
|
35906
35922
|
}
|
|
35907
35923
|
}
|
|
35908
35924
|
}, [channel.isLinkedChannel, channel.lastMessage, dispatch, isVisible, message, scrollToNewMessage.scrollToBottom, unreadScrollTo, setLastVisibleMessageId]);
|
|
35909
35925
|
React.useEffect(function () {
|
|
35910
35926
|
return function () {
|
|
35911
35927
|
if (!channel.isLinkedChannel) {
|
|
35912
|
-
|
|
35928
|
+
dispatch(removeVisibleMessageAC(message));
|
|
35913
35929
|
}
|
|
35914
35930
|
};
|
|
35915
|
-
}, [channel.isLinkedChannel, message]);
|
|
35931
|
+
}, [channel.isLinkedChannel, dispatch, message]);
|
|
35916
35932
|
return /*#__PURE__*/React__default.createElement(Container$c, {
|
|
35917
35933
|
id: message.id || message.tid,
|
|
35918
35934
|
ref: messageItemRef,
|
|
@@ -39789,9 +39805,7 @@ var AllVotesPopup = function AllVotesPopup(_ref) {
|
|
|
39789
39805
|
isScrolling = _useState[0],
|
|
39790
39806
|
setIsScrolling = _useState[1];
|
|
39791
39807
|
React.useEffect(function () {
|
|
39792
|
-
|
|
39793
|
-
dispatch(getPollVotesAC(messageId, poll.id, optionId, POLL_VOTES_LIMIT));
|
|
39794
|
-
}
|
|
39808
|
+
dispatch(getPollVotesAC(messageId, poll.id, optionId, POLL_VOTES_LIMIT));
|
|
39795
39809
|
}, []);
|
|
39796
39810
|
React.useEffect(function () {
|
|
39797
39811
|
if (allVotes.length > 0 && hasMore && !isLoading && allVotes.length < POLL_VOTES_LIMIT - 1) {
|
|
@@ -43281,24 +43295,24 @@ var Message$1 = function Message(_ref) {
|
|
|
43281
43295
|
}
|
|
43282
43296
|
handleSendReadMarker();
|
|
43283
43297
|
if (!channel.isLinkedChannel) {
|
|
43284
|
-
|
|
43298
|
+
dispatch(setVisibleMessageAC(message));
|
|
43285
43299
|
}
|
|
43286
43300
|
if (scrollToNewMessage.scrollToBottom && channel.lastMessage && compareMessagesForList(message, channel.lastMessage) >= 0) {
|
|
43287
43301
|
dispatch(scrollToNewMessageAC(false, false, false));
|
|
43288
43302
|
}
|
|
43289
43303
|
} else {
|
|
43290
43304
|
if (!channel.isLinkedChannel) {
|
|
43291
|
-
|
|
43305
|
+
dispatch(removeVisibleMessageAC(message));
|
|
43292
43306
|
}
|
|
43293
43307
|
}
|
|
43294
43308
|
}, [isVisible, setLastVisibleMessageId, message.id, handleSendReadMarker, channel.isLinkedChannel, channel.lastMessage, scrollToNewMessage.scrollToBottom, dispatch, message, isTabActive]);
|
|
43295
43309
|
React.useEffect(function () {
|
|
43296
43310
|
return function () {
|
|
43297
43311
|
if (!channel.isLinkedChannel) {
|
|
43298
|
-
|
|
43312
|
+
dispatch(removeVisibleMessageAC(message));
|
|
43299
43313
|
}
|
|
43300
43314
|
};
|
|
43301
|
-
}, [channel.isLinkedChannel, message]);
|
|
43315
|
+
}, [channel.isLinkedChannel, dispatch, message]);
|
|
43302
43316
|
React.useEffect(function () {
|
|
43303
43317
|
if (!isVisible && infoPopupOpen) {
|
|
43304
43318
|
setInfoPopupOpen(false);
|
|
@@ -43985,6 +43999,7 @@ function useChatController(_ref5) {
|
|
|
43985
43999
|
showScrollToNewMessageButton = _ref5.showScrollToNewMessageButton,
|
|
43986
44000
|
unreadScrollTo = _ref5.unreadScrollTo,
|
|
43987
44001
|
unreadMessageId = _ref5.unreadMessageId,
|
|
44002
|
+
visibleMessagesMap = _ref5.visibleMessagesMap,
|
|
43988
44003
|
selectedMessagesMap = _ref5.selectedMessagesMap,
|
|
43989
44004
|
allowEditDeleteIncomingMessage = _ref5.allowEditDeleteIncomingMessage,
|
|
43990
44005
|
_ref5$tabIsActive = _ref5.tabIsActive,
|
|
@@ -43994,6 +44009,7 @@ function useChatController(_ref5) {
|
|
|
43994
44009
|
var itemElementsRef = React.useRef(new Map());
|
|
43995
44010
|
var messagesIndexMapRef = React.useRef({});
|
|
43996
44011
|
var messagesRef = React.useRef(messages);
|
|
44012
|
+
var visibleMessagesMapRef = React.useRef(visibleMessagesMap);
|
|
43997
44013
|
var channelRef = React.useRef(channel);
|
|
43998
44014
|
var lastVisibleMessageIdRef = React.useRef('');
|
|
43999
44015
|
var lastVisibleAnchorIdRef = React.useRef('');
|
|
@@ -44127,6 +44143,7 @@ function useChatController(_ref5) {
|
|
|
44127
44143
|
}, []);
|
|
44128
44144
|
React.useLayoutEffect(function () {
|
|
44129
44145
|
messagesRef.current = messages;
|
|
44146
|
+
visibleMessagesMapRef.current = visibleMessagesMap;
|
|
44130
44147
|
channelRef.current = channel;
|
|
44131
44148
|
connectionStatusRef.current = connectionStatus;
|
|
44132
44149
|
});
|
|
@@ -45596,7 +45613,7 @@ function useChatController(_ref5) {
|
|
|
45596
45613
|
var savedRestoreWindow = channelRestoreWindowMap.get(channel.id);
|
|
45597
45614
|
if (savedRestoreWindow) {
|
|
45598
45615
|
if (!channel.isLinkedChannel) {
|
|
45599
|
-
|
|
45616
|
+
dispatch(clearVisibleMessagesMapAC());
|
|
45600
45617
|
}
|
|
45601
45618
|
if (channel.backToLinkedChannel) {
|
|
45602
45619
|
restoreRef.current = {
|
|
@@ -45617,7 +45634,7 @@ function useChatController(_ref5) {
|
|
|
45617
45634
|
}
|
|
45618
45635
|
}
|
|
45619
45636
|
if (channel.backToLinkedChannel) {
|
|
45620
|
-
var visibleMessages =
|
|
45637
|
+
var visibleMessages = visibleMessagesMapRef.current;
|
|
45621
45638
|
var visibleMessagesIds = Object.values(visibleMessages).filter(function (message) {
|
|
45622
45639
|
return !!message.id;
|
|
45623
45640
|
}).sort(function (left, right) {
|
|
@@ -45633,7 +45650,7 @@ function useChatController(_ref5) {
|
|
|
45633
45650
|
return;
|
|
45634
45651
|
}
|
|
45635
45652
|
if (!channel.isLinkedChannel) {
|
|
45636
|
-
|
|
45653
|
+
dispatch(clearVisibleMessagesMapAC());
|
|
45637
45654
|
}
|
|
45638
45655
|
if (channel.newMessageCount && channel.lastDisplayedMessageId) {
|
|
45639
45656
|
suppressNextMessageChange();
|
|
@@ -45677,7 +45694,7 @@ function useChatController(_ref5) {
|
|
|
45677
45694
|
invalidateEdgeDirection('previous');
|
|
45678
45695
|
invalidateEdgeDirection('next');
|
|
45679
45696
|
suppressNextMessageChange();
|
|
45680
|
-
var isHistoryTopVisible = messagesRef.current[0] ? Object.values(
|
|
45697
|
+
var isHistoryTopVisible = messagesRef.current[0] ? Object.values(visibleMessagesMapRef.current).some(function (visibleMessage) {
|
|
45681
45698
|
var _messagesRef$current$;
|
|
45682
45699
|
return visibleMessage.id === ((_messagesRef$current$ = messagesRef.current[0]) === null || _messagesRef$current$ === void 0 ? void 0 : _messagesRef$current$.id);
|
|
45683
45700
|
}) : false;
|
|
@@ -45707,7 +45724,7 @@ function useChatController(_ref5) {
|
|
|
45707
45724
|
}, [dispatch, isViewingLatest, jumpToLatest, scrollToNewMessage]);
|
|
45708
45725
|
React.useEffect(function () {
|
|
45709
45726
|
var latestLocalRef = getMessageLocalRef(channel.lastMessage);
|
|
45710
|
-
var latestVisibleMessages = Object.values(
|
|
45727
|
+
var latestVisibleMessages = Object.values(visibleMessagesMap);
|
|
45711
45728
|
var isLatestInView = latestVisibleMessages.find(function (m) {
|
|
45712
45729
|
return m.sortKey === latestLocalRef || m.localRef === latestLocalRef;
|
|
45713
45730
|
});
|
|
@@ -45715,7 +45732,7 @@ function useChatController(_ref5) {
|
|
|
45715
45732
|
if (showScrollToNewMessageButton !== shouldShow) {
|
|
45716
45733
|
dispatch(showScrollToNewMessageButtonAC(shouldShow));
|
|
45717
45734
|
}
|
|
45718
|
-
}, [channel.lastMessage, dispatch, isViewingLatest, lastVisibleMessageId, pendingNewestCount, scrollToMentionedMessage, showScrollToNewMessageButton]);
|
|
45735
|
+
}, [channel.lastMessage, dispatch, isViewingLatest, lastVisibleMessageId, pendingNewestCount, scrollToMentionedMessage, showScrollToNewMessageButton, visibleMessagesMap]);
|
|
45719
45736
|
React.useEffect(function () {
|
|
45720
45737
|
if (!unreadScrollTo || !messages.length || loadingPrevMessages !== LOADING_STATE.LOADED || loadingNextMessages !== LOADING_STATE.LOADED) {
|
|
45721
45738
|
return;
|
|
@@ -46193,6 +46210,7 @@ var MessageList = function MessageList(_ref) {
|
|
|
46193
46210
|
var unreadScrollTo = useSelector(unreadScrollToSelector, reactRedux.shallowEqual);
|
|
46194
46211
|
var messages = useSelector(activeChannelMessagesSelector, reactRedux.shallowEqual) || [];
|
|
46195
46212
|
var unreadMessageId = useSelector(unreadMessageIdSelector, reactRedux.shallowEqual);
|
|
46213
|
+
var visibleMessagesMap = useSelector(visibleMessagesMapSelector, reactRedux.shallowEqual);
|
|
46196
46214
|
var _useState = React.useState(null),
|
|
46197
46215
|
mediaFile = _useState[0],
|
|
46198
46216
|
setMediaFile = _useState[1];
|
|
@@ -46230,6 +46248,7 @@ var MessageList = function MessageList(_ref) {
|
|
|
46230
46248
|
showScrollToNewMessageButton: showScrollToNewMessageButton,
|
|
46231
46249
|
unreadScrollTo: unreadScrollTo,
|
|
46232
46250
|
unreadMessageId: unreadMessageId,
|
|
46251
|
+
visibleMessagesMap: visibleMessagesMap,
|
|
46233
46252
|
selectedMessagesMap: selectedMessagesMap,
|
|
46234
46253
|
allowEditDeleteIncomingMessage: allowEditDeleteIncomingMessage,
|
|
46235
46254
|
dispatch: dispatch,
|
package/index.modern.js
CHANGED
|
@@ -9409,6 +9409,7 @@ var channelSlice = createSlice({
|
|
|
9409
9409
|
state.channels = sortChannelByLastMessage([].concat(updatedChannels));
|
|
9410
9410
|
},
|
|
9411
9411
|
updateChannelLastMessage: function updateChannelLastMessage(state, action) {
|
|
9412
|
+
var _updateChannel2, _updateChannel3, _state$activeChannel2;
|
|
9412
9413
|
var _action$payload5 = action.payload,
|
|
9413
9414
|
channel = _action$payload5.channel,
|
|
9414
9415
|
message = _action$payload5.message;
|
|
@@ -9439,6 +9440,9 @@ var channelSlice = createSlice({
|
|
|
9439
9440
|
state.channels = sortChannelByLastMessage([updateChannel].concat(updatedChannels));
|
|
9440
9441
|
}
|
|
9441
9442
|
}
|
|
9443
|
+
if ((_updateChannel2 = updateChannel) !== null && _updateChannel2 !== void 0 && _updateChannel2.id && ((_updateChannel3 = updateChannel) === null || _updateChannel3 === void 0 ? void 0 : _updateChannel3.id) === ((_state$activeChannel2 = state.activeChannel) === null || _state$activeChannel2 === void 0 ? void 0 : _state$activeChannel2.id)) {
|
|
9444
|
+
state.activeChannel = updateChannel;
|
|
9445
|
+
}
|
|
9442
9446
|
},
|
|
9443
9447
|
updateChannelLastMessageStatus: function updateChannelLastMessageStatus(state, action) {
|
|
9444
9448
|
var _action$payload6 = action.payload,
|
|
@@ -10692,6 +10696,19 @@ function showScrollToNewMessageButtonAC(state) {
|
|
|
10692
10696
|
state: state
|
|
10693
10697
|
});
|
|
10694
10698
|
}
|
|
10699
|
+
function setVisibleMessageAC(message) {
|
|
10700
|
+
return setVisibleMessage({
|
|
10701
|
+
message: message
|
|
10702
|
+
});
|
|
10703
|
+
}
|
|
10704
|
+
function removeVisibleMessageAC(message) {
|
|
10705
|
+
return removeVisibleMessage({
|
|
10706
|
+
message: message
|
|
10707
|
+
});
|
|
10708
|
+
}
|
|
10709
|
+
function clearVisibleMessagesMapAC() {
|
|
10710
|
+
return clearVisibleMessagesMap();
|
|
10711
|
+
}
|
|
10695
10712
|
function setUnreadScrollToAC(state) {
|
|
10696
10713
|
return setUnreadScrollTo({
|
|
10697
10714
|
state: state
|
|
@@ -11970,27 +11987,6 @@ var removeAudioRecordingFromMap = function removeAudioRecordingFromMap(channelId
|
|
|
11970
11987
|
var setDraftMessageToMap = function setDraftMessageToMap(channelId, draftMessage) {
|
|
11971
11988
|
draftMessagesMap[channelId] = draftMessage;
|
|
11972
11989
|
};
|
|
11973
|
-
var visibleMessagesMap = {};
|
|
11974
|
-
var getVisibleMessagesMap = function getVisibleMessagesMap() {
|
|
11975
|
-
return visibleMessagesMap;
|
|
11976
|
-
};
|
|
11977
|
-
var clearVisibleMessagesMap = function clearVisibleMessagesMap() {
|
|
11978
|
-
visibleMessagesMap = {};
|
|
11979
|
-
};
|
|
11980
|
-
var setMessageToVisibleMessagesMap = function setMessageToVisibleMessagesMap(message) {
|
|
11981
|
-
var localRef = getMessageLocalRef(message);
|
|
11982
|
-
if (!localRef) {
|
|
11983
|
-
return;
|
|
11984
|
-
}
|
|
11985
|
-
visibleMessagesMap[localRef] = {
|
|
11986
|
-
id: message.id,
|
|
11987
|
-
localRef: localRef,
|
|
11988
|
-
sortKey: getMessageSortKey(message).toString()
|
|
11989
|
-
};
|
|
11990
|
-
};
|
|
11991
|
-
var removeMessageFromVisibleMessagesMap = function removeMessageFromVisibleMessagesMap(message) {
|
|
11992
|
-
delete visibleMessagesMap[getMessageLocalRef(message)];
|
|
11993
|
-
};
|
|
11994
11990
|
var checkPendingPollActionConflict = function checkPendingPollActionConflict(action) {
|
|
11995
11991
|
var messageId = action.message.id || action.message.tid;
|
|
11996
11992
|
if (!messageId) return {
|
|
@@ -12161,7 +12157,8 @@ var initialState$1 = {
|
|
|
12161
12157
|
stableUnreadAnchor: {
|
|
12162
12158
|
channelId: '',
|
|
12163
12159
|
messageId: ''
|
|
12164
|
-
}
|
|
12160
|
+
},
|
|
12161
|
+
visibleMessagesMap: {}
|
|
12165
12162
|
};
|
|
12166
12163
|
var isPendingMessage = function isPendingMessage(message) {
|
|
12167
12164
|
return !message.id && !!message.tid;
|
|
@@ -12266,6 +12263,24 @@ var messageSlice = createSlice({
|
|
|
12266
12263
|
setShowScrollToNewMessageButton: function setShowScrollToNewMessageButton(state, action) {
|
|
12267
12264
|
state.showScrollToNewMessageButton = action.payload.state;
|
|
12268
12265
|
},
|
|
12266
|
+
setVisibleMessage: function setVisibleMessage(state, action) {
|
|
12267
|
+
var message = action.payload.message;
|
|
12268
|
+
var localRef = getMessageLocalRef(message);
|
|
12269
|
+
if (!localRef) {
|
|
12270
|
+
return;
|
|
12271
|
+
}
|
|
12272
|
+
state.visibleMessagesMap[localRef] = {
|
|
12273
|
+
id: message.id,
|
|
12274
|
+
localRef: localRef,
|
|
12275
|
+
sortKey: getMessageSortKey(message).toString()
|
|
12276
|
+
};
|
|
12277
|
+
},
|
|
12278
|
+
removeVisibleMessage: function removeVisibleMessage(state, action) {
|
|
12279
|
+
delete state.visibleMessagesMap[getMessageLocalRef(action.payload.message)];
|
|
12280
|
+
},
|
|
12281
|
+
clearVisibleMessagesMap: function clearVisibleMessagesMap(state) {
|
|
12282
|
+
state.visibleMessagesMap = {};
|
|
12283
|
+
},
|
|
12269
12284
|
setUnreadScrollTo: function setUnreadScrollTo(state, action) {
|
|
12270
12285
|
state.unreadScrollTo = action.payload.state;
|
|
12271
12286
|
},
|
|
@@ -12801,6 +12816,9 @@ var _messageSlice$actions = messageSlice.actions,
|
|
|
12801
12816
|
setScrollToMentionedMessage = _messageSlice$actions.setScrollToMentionedMessage,
|
|
12802
12817
|
setScrollToNewMessage = _messageSlice$actions.setScrollToNewMessage,
|
|
12803
12818
|
setShowScrollToNewMessageButton = _messageSlice$actions.setShowScrollToNewMessageButton,
|
|
12819
|
+
setVisibleMessage = _messageSlice$actions.setVisibleMessage,
|
|
12820
|
+
removeVisibleMessage = _messageSlice$actions.removeVisibleMessage,
|
|
12821
|
+
clearVisibleMessagesMap = _messageSlice$actions.clearVisibleMessagesMap,
|
|
12804
12822
|
setUnreadScrollTo = _messageSlice$actions.setUnreadScrollTo,
|
|
12805
12823
|
setMessages = _messageSlice$actions.setMessages,
|
|
12806
12824
|
addMessages = _messageSlice$actions.addMessages,
|
|
@@ -22222,8 +22240,8 @@ var getResolvedChannelLastMessage$1 = function getResolvedChannelLastMessage(cha
|
|
|
22222
22240
|
return storedChannel !== null && storedChannel !== void 0 && (_storedChannel$lastMe2 = storedChannel.lastMessage) !== null && _storedChannel$lastMe2 !== void 0 && _storedChannel$lastMe2.id ? storedChannel.lastMessage : null;
|
|
22223
22241
|
};
|
|
22224
22242
|
function handleChannelMessageEvent(args, SceytChatClient) {
|
|
22225
|
-
var _storedChannel$lastMe3, _storedChannel$lastMe4, _store$getState$Messa, _storedChannel$lastMe9, _message$
|
|
22226
|
-
var channel, message, messageToHandle, channelFilterTypes, activeChannelId, channelExists, channelForAdd, storedChannel, candidateLastMessage, resolvedLastMessage, shouldUpdateLastMessage, messages, lastMessageIsInActiveWindow, isSameLastMessage, resolvedLastMessageUpdate, _storedChannel$lastMe7, lastMessageIsVisible, messagesHasNext, existingMessage, tabIsActive, channelDataUpdate, groupName, showNotifications, _tabIsActive, _state$ThemeReducer$n, _state$ThemeReducer$n2, _state$ThemeReducer$n3, _state$ThemeReducer$n4, _state$ThemeReducer$n5, _state$ThemeReducer$n6, contactsMap, getFromContacts, state, theme, accentColor, textSecondary, messageBody;
|
|
22243
|
+
var _storedChannel$lastMe3, _storedChannel$lastMe4, _store$getState$Messa, _storedChannel$lastMe9, _message$attachments;
|
|
22244
|
+
var channel, message, messageToHandle, channelFilterTypes, activeChannelId, channelExists, channelForAdd, storedChannel, candidateLastMessage, resolvedLastMessage, shouldUpdateLastMessage, messages, lastMessageIsInActiveWindow, isSameLastMessage, resolvedLastMessageUpdate, _store$getState$Messa2, _storedChannel$lastMe7, visibleMessagesMap, lastMessageIsVisible, messagesHasNext, existingMessage, tabIsActive, channelDataUpdate, groupName, showNotifications, _tabIsActive, _state$ThemeReducer$n, _state$ThemeReducer$n2, _state$ThemeReducer$n3, _state$ThemeReducer$n4, _state$ThemeReducer$n5, _state$ThemeReducer$n6, contactsMap, getFromContacts, state, theme, accentColor, textSecondary, messageBody;
|
|
22227
22245
|
return _regenerator().w(function (_context) {
|
|
22228
22246
|
while (1) switch (_context.n) {
|
|
22229
22247
|
case 0:
|
|
@@ -22278,7 +22296,8 @@ function handleChannelMessageEvent(args, SceytChatClient) {
|
|
|
22278
22296
|
_context.n = 10;
|
|
22279
22297
|
break;
|
|
22280
22298
|
}
|
|
22281
|
-
|
|
22299
|
+
visibleMessagesMap = ((_store$getState$Messa2 = store.getState().MessageReducer) === null || _store$getState$Messa2 === void 0 ? void 0 : _store$getState$Messa2.visibleMessagesMap) || {};
|
|
22300
|
+
lastMessageIsVisible = storedChannel !== null && storedChannel !== void 0 && (_storedChannel$lastMe7 = storedChannel.lastMessage) !== null && _storedChannel$lastMe7 !== void 0 && _storedChannel$lastMe7.id ? Object.values(visibleMessagesMap).some(function (visibleMessage) {
|
|
22282
22301
|
var _storedChannel$lastMe8;
|
|
22283
22302
|
return visibleMessage.id === ((_storedChannel$lastMe8 = storedChannel.lastMessage) === null || _storedChannel$lastMe8 === void 0 ? void 0 : _storedChannel$lastMe8.id);
|
|
22284
22303
|
}) : false;
|
|
@@ -22387,19 +22406,13 @@ function handleChannelMessageEvent(args, SceytChatClient) {
|
|
|
22387
22406
|
return att.type !== attachmentTypes.link;
|
|
22388
22407
|
}) : undefined);
|
|
22389
22408
|
case 15:
|
|
22390
|
-
if (!(message.
|
|
22391
|
-
_context.n =
|
|
22409
|
+
if (!(message.user.id !== SceytChatClient.user.id)) {
|
|
22410
|
+
_context.n = 16;
|
|
22392
22411
|
break;
|
|
22393
22412
|
}
|
|
22394
22413
|
_context.n = 16;
|
|
22395
|
-
return put(markMessagesAsDeliveredAC(message.parentMessage.id, [message.id]));
|
|
22396
|
-
case 16:
|
|
22397
|
-
_context.n = 18;
|
|
22398
|
-
break;
|
|
22399
|
-
case 17:
|
|
22400
|
-
_context.n = 18;
|
|
22401
22414
|
return put(markMessagesAsDeliveredAC(channel.id, [message.id]));
|
|
22402
|
-
case
|
|
22415
|
+
case 16:
|
|
22403
22416
|
updateChannelOnAllChannels(channel.id, channelDataUpdate);
|
|
22404
22417
|
if (shouldUpdateLastMessage) {
|
|
22405
22418
|
updateChannelLastMessageOnAllChannels(channel.id, resolvedLastMessageUpdate);
|
|
@@ -22407,7 +22420,7 @@ function handleChannelMessageEvent(args, SceytChatClient) {
|
|
|
22407
22420
|
if ((_message$attachments = message.attachments) !== null && _message$attachments !== void 0 && _message$attachments.length) {
|
|
22408
22421
|
updateTabAttachmentCache(channel.id, message.attachments, message.user);
|
|
22409
22422
|
}
|
|
22410
|
-
case
|
|
22423
|
+
case 17:
|
|
22411
22424
|
return _context.a(2);
|
|
22412
22425
|
}
|
|
22413
22426
|
}, _marked$2);
|
|
@@ -23019,7 +23032,7 @@ function watchForEvents() {
|
|
|
23019
23032
|
};
|
|
23020
23033
|
});
|
|
23021
23034
|
_loop = /*#__PURE__*/_regenerator().m(function _callee3() {
|
|
23022
|
-
var _yield$take, type, args, createdChannel, channelFilterTypes, getFromContacts, channelExists, _chan, channel, joinedMember, _chan2, customLoadMembersFunctions, joinMembersEvent, membersList, updateChannelData, _channel, member, _channelExists, activeChannelId, groupName, _updateChannelData, users, blockedUsers, allChannels, _loop2, _iterator2, _step2, _users, unblockedUsers, _allChannels, _loop3, _iterator3, _step3, _channel2, removedMembers, _activeChannelId, _channelExists2, activeChannel, _updateChannelData2, _groupName, _channel3, addedMembers, _activeChannelId2, _channelExists3, _updateChannelData3, _customLoadMembersFunctions, addMembersEvent, _membersList, _groupName2, onUpdateChannel, updatedChannel, _channelExists4, subject, avatarUrl, muted, mutedTill, metadata, _channel4, fields, parsedChannelMeta, parsedMeta, _activeChannelId3, _groupName3, channelId, _channel5, _channel6, user, message, reaction, isSelf, _activeChannelId4, _state$ThemeReducer$n7, _state$ThemeReducer$n8, _state$ThemeReducer$n9, _state$ThemeReducer$n0, _state$ThemeReducer$n1, _state$ThemeReducer$n10, contactsMap, _getFromContacts, state, theme, accentColor, textSecondary, messageBody, channelUpdateParams, _pollDetailsData$chan, _pollDetailsData$chan2, _channel7, pollDetails, messageId, pollDetailsData, _activeChannelId5, addedVotes, deletedVotes, objs, _iterator4, _step4, vote, _iterator5, _step5, _vote, _i, _objs, obj, _store$getState$
|
|
23035
|
+
var _yield$take, type, args, createdChannel, channelFilterTypes, getFromContacts, channelExists, _chan, channel, joinedMember, _chan2, customLoadMembersFunctions, joinMembersEvent, membersList, updateChannelData, _channel, member, _channelExists, activeChannelId, groupName, _updateChannelData, users, blockedUsers, allChannels, _loop2, _iterator2, _step2, _users, unblockedUsers, _allChannels, _loop3, _iterator3, _step3, _channel2, removedMembers, _activeChannelId, _channelExists2, activeChannel, _updateChannelData2, _groupName, _channel3, addedMembers, _activeChannelId2, _channelExists3, _updateChannelData3, _customLoadMembersFunctions, addMembersEvent, _membersList, _groupName2, onUpdateChannel, updatedChannel, _channelExists4, subject, avatarUrl, muted, mutedTill, metadata, _channel4, fields, parsedChannelMeta, parsedMeta, _activeChannelId3, _groupName3, channelId, _channel5, _channel6, user, message, reaction, isSelf, _activeChannelId4, _state$ThemeReducer$n7, _state$ThemeReducer$n8, _state$ThemeReducer$n9, _state$ThemeReducer$n0, _state$ThemeReducer$n1, _state$ThemeReducer$n10, contactsMap, _getFromContacts, state, theme, accentColor, textSecondary, messageBody, channelUpdateParams, _pollDetailsData$chan, _pollDetailsData$chan2, _channel7, pollDetails, messageId, pollDetailsData, _activeChannelId5, addedVotes, deletedVotes, objs, _iterator4, _step4, vote, _iterator5, _step5, _vote, _i, _objs, obj, _store$getState$Messa3, key, hasNext, _i2, _objs2, _obj, _pollDetailsData$chan3, _channel8, _pollDetails, _messageId, _pollDetailsData, _activeChannelId6, _deletedVotes, _objs3, _iterator6, _step6, _vote2, _i3, _objs4, _obj2, _i4, _objs5, _obj3, _pollDetailsData2$cha, _channel9, _pollDetails2, _messageId2, _activeChannelId7, _pollDetailsData2, retractedVotes, _objs6, _iterator7, _step7, _vote4, _i5, _objs7, _obj4, _iterator8, _step8, _vote3, _channel0, _messageId3, _activeChannelId8, _obj5, _channel1, _user, _message, _reaction, channelFromMap, _isSelf, _activeChannelId9, _channelUpdateParams, _channel10, _activeChannelId0, channelExist, _channel11, _channel12, _channel13, _channel14, _channel15, _activeChannelId1, lastChannel, _channel16, _channel17, _groupName4, _channel18, _groupName5, _channel19, members, _activeChannelId10, _customLoadMembersFunctions2, updateMembersEvent, _membersList2, i, _channel20, _channel21, _channelId, from, name, status, _t, _t2, _t3, _t4;
|
|
23023
23036
|
return _regenerator().w(function (_context8) {
|
|
23024
23037
|
while (1) switch (_context8.p = _context8.n) {
|
|
23025
23038
|
case 0:
|
|
@@ -23668,7 +23681,7 @@ function watchForEvents() {
|
|
|
23668
23681
|
break;
|
|
23669
23682
|
}
|
|
23670
23683
|
key = pollDetailsData.id + "_" + obj.vote.optionId;
|
|
23671
|
-
hasNext = ((_store$getState$
|
|
23684
|
+
hasNext = ((_store$getState$Messa3 = store.getState().MessageReducer.pollVotesHasMore) === null || _store$getState$Messa3 === void 0 ? void 0 : _store$getState$Messa3[key]) || false;
|
|
23672
23685
|
if (!(obj.type === 'addOwn')) {
|
|
23673
23686
|
_context8.n = 90;
|
|
23674
23687
|
break;
|
|
@@ -28671,6 +28684,9 @@ var scrollToMentionedMessageSelector = function scrollToMentionedMessageSelector
|
|
|
28671
28684
|
var showScrollToNewMessageButtonSelector = function showScrollToNewMessageButtonSelector(store) {
|
|
28672
28685
|
return store.MessageReducer.showScrollToNewMessageButton;
|
|
28673
28686
|
};
|
|
28687
|
+
var visibleMessagesMapSelector = function visibleMessagesMapSelector(store) {
|
|
28688
|
+
return store.MessageReducer.visibleMessagesMap;
|
|
28689
|
+
};
|
|
28674
28690
|
var sendMessageInputHeightSelector = function sendMessageInputHeightSelector(store) {
|
|
28675
28691
|
return store.MessageReducer.sendMessageInputHeight;
|
|
28676
28692
|
};
|
|
@@ -35894,24 +35910,24 @@ var Message = function Message(_ref) {
|
|
|
35894
35910
|
setLastVisibleMessageId(message);
|
|
35895
35911
|
}
|
|
35896
35912
|
if (!channel.isLinkedChannel) {
|
|
35897
|
-
|
|
35913
|
+
dispatch(setVisibleMessageAC(message));
|
|
35898
35914
|
}
|
|
35899
35915
|
if (scrollToNewMessage.scrollToBottom && channel.lastMessage && compareMessagesForList(message, channel.lastMessage) >= 0) {
|
|
35900
35916
|
dispatch(scrollToNewMessageAC(false, false, false));
|
|
35901
35917
|
}
|
|
35902
35918
|
} else {
|
|
35903
35919
|
if (!channel.isLinkedChannel) {
|
|
35904
|
-
|
|
35920
|
+
dispatch(removeVisibleMessageAC(message));
|
|
35905
35921
|
}
|
|
35906
35922
|
}
|
|
35907
35923
|
}, [channel.isLinkedChannel, channel.lastMessage, dispatch, isVisible, message, scrollToNewMessage.scrollToBottom, unreadScrollTo, setLastVisibleMessageId]);
|
|
35908
35924
|
useEffect(function () {
|
|
35909
35925
|
return function () {
|
|
35910
35926
|
if (!channel.isLinkedChannel) {
|
|
35911
|
-
|
|
35927
|
+
dispatch(removeVisibleMessageAC(message));
|
|
35912
35928
|
}
|
|
35913
35929
|
};
|
|
35914
|
-
}, [channel.isLinkedChannel, message]);
|
|
35930
|
+
}, [channel.isLinkedChannel, dispatch, message]);
|
|
35915
35931
|
return /*#__PURE__*/React__default.createElement(Container$c, {
|
|
35916
35932
|
id: message.id || message.tid,
|
|
35917
35933
|
ref: messageItemRef,
|
|
@@ -39788,9 +39804,7 @@ var AllVotesPopup = function AllVotesPopup(_ref) {
|
|
|
39788
39804
|
isScrolling = _useState[0],
|
|
39789
39805
|
setIsScrolling = _useState[1];
|
|
39790
39806
|
useEffect(function () {
|
|
39791
|
-
|
|
39792
|
-
dispatch(getPollVotesAC(messageId, poll.id, optionId, POLL_VOTES_LIMIT));
|
|
39793
|
-
}
|
|
39807
|
+
dispatch(getPollVotesAC(messageId, poll.id, optionId, POLL_VOTES_LIMIT));
|
|
39794
39808
|
}, []);
|
|
39795
39809
|
useEffect(function () {
|
|
39796
39810
|
if (allVotes.length > 0 && hasMore && !isLoading && allVotes.length < POLL_VOTES_LIMIT - 1) {
|
|
@@ -43280,24 +43294,24 @@ var Message$1 = function Message(_ref) {
|
|
|
43280
43294
|
}
|
|
43281
43295
|
handleSendReadMarker();
|
|
43282
43296
|
if (!channel.isLinkedChannel) {
|
|
43283
|
-
|
|
43297
|
+
dispatch(setVisibleMessageAC(message));
|
|
43284
43298
|
}
|
|
43285
43299
|
if (scrollToNewMessage.scrollToBottom && channel.lastMessage && compareMessagesForList(message, channel.lastMessage) >= 0) {
|
|
43286
43300
|
dispatch(scrollToNewMessageAC(false, false, false));
|
|
43287
43301
|
}
|
|
43288
43302
|
} else {
|
|
43289
43303
|
if (!channel.isLinkedChannel) {
|
|
43290
|
-
|
|
43304
|
+
dispatch(removeVisibleMessageAC(message));
|
|
43291
43305
|
}
|
|
43292
43306
|
}
|
|
43293
43307
|
}, [isVisible, setLastVisibleMessageId, message.id, handleSendReadMarker, channel.isLinkedChannel, channel.lastMessage, scrollToNewMessage.scrollToBottom, dispatch, message, isTabActive]);
|
|
43294
43308
|
useEffect(function () {
|
|
43295
43309
|
return function () {
|
|
43296
43310
|
if (!channel.isLinkedChannel) {
|
|
43297
|
-
|
|
43311
|
+
dispatch(removeVisibleMessageAC(message));
|
|
43298
43312
|
}
|
|
43299
43313
|
};
|
|
43300
|
-
}, [channel.isLinkedChannel, message]);
|
|
43314
|
+
}, [channel.isLinkedChannel, dispatch, message]);
|
|
43301
43315
|
useEffect(function () {
|
|
43302
43316
|
if (!isVisible && infoPopupOpen) {
|
|
43303
43317
|
setInfoPopupOpen(false);
|
|
@@ -43984,6 +43998,7 @@ function useChatController(_ref5) {
|
|
|
43984
43998
|
showScrollToNewMessageButton = _ref5.showScrollToNewMessageButton,
|
|
43985
43999
|
unreadScrollTo = _ref5.unreadScrollTo,
|
|
43986
44000
|
unreadMessageId = _ref5.unreadMessageId,
|
|
44001
|
+
visibleMessagesMap = _ref5.visibleMessagesMap,
|
|
43987
44002
|
selectedMessagesMap = _ref5.selectedMessagesMap,
|
|
43988
44003
|
allowEditDeleteIncomingMessage = _ref5.allowEditDeleteIncomingMessage,
|
|
43989
44004
|
_ref5$tabIsActive = _ref5.tabIsActive,
|
|
@@ -43993,6 +44008,7 @@ function useChatController(_ref5) {
|
|
|
43993
44008
|
var itemElementsRef = useRef(new Map());
|
|
43994
44009
|
var messagesIndexMapRef = useRef({});
|
|
43995
44010
|
var messagesRef = useRef(messages);
|
|
44011
|
+
var visibleMessagesMapRef = useRef(visibleMessagesMap);
|
|
43996
44012
|
var channelRef = useRef(channel);
|
|
43997
44013
|
var lastVisibleMessageIdRef = useRef('');
|
|
43998
44014
|
var lastVisibleAnchorIdRef = useRef('');
|
|
@@ -44126,6 +44142,7 @@ function useChatController(_ref5) {
|
|
|
44126
44142
|
}, []);
|
|
44127
44143
|
useLayoutEffect(function () {
|
|
44128
44144
|
messagesRef.current = messages;
|
|
44145
|
+
visibleMessagesMapRef.current = visibleMessagesMap;
|
|
44129
44146
|
channelRef.current = channel;
|
|
44130
44147
|
connectionStatusRef.current = connectionStatus;
|
|
44131
44148
|
});
|
|
@@ -45595,7 +45612,7 @@ function useChatController(_ref5) {
|
|
|
45595
45612
|
var savedRestoreWindow = channelRestoreWindowMap.get(channel.id);
|
|
45596
45613
|
if (savedRestoreWindow) {
|
|
45597
45614
|
if (!channel.isLinkedChannel) {
|
|
45598
|
-
|
|
45615
|
+
dispatch(clearVisibleMessagesMapAC());
|
|
45599
45616
|
}
|
|
45600
45617
|
if (channel.backToLinkedChannel) {
|
|
45601
45618
|
restoreRef.current = {
|
|
@@ -45616,7 +45633,7 @@ function useChatController(_ref5) {
|
|
|
45616
45633
|
}
|
|
45617
45634
|
}
|
|
45618
45635
|
if (channel.backToLinkedChannel) {
|
|
45619
|
-
var visibleMessages =
|
|
45636
|
+
var visibleMessages = visibleMessagesMapRef.current;
|
|
45620
45637
|
var visibleMessagesIds = Object.values(visibleMessages).filter(function (message) {
|
|
45621
45638
|
return !!message.id;
|
|
45622
45639
|
}).sort(function (left, right) {
|
|
@@ -45632,7 +45649,7 @@ function useChatController(_ref5) {
|
|
|
45632
45649
|
return;
|
|
45633
45650
|
}
|
|
45634
45651
|
if (!channel.isLinkedChannel) {
|
|
45635
|
-
|
|
45652
|
+
dispatch(clearVisibleMessagesMapAC());
|
|
45636
45653
|
}
|
|
45637
45654
|
if (channel.newMessageCount && channel.lastDisplayedMessageId) {
|
|
45638
45655
|
suppressNextMessageChange();
|
|
@@ -45676,7 +45693,7 @@ function useChatController(_ref5) {
|
|
|
45676
45693
|
invalidateEdgeDirection('previous');
|
|
45677
45694
|
invalidateEdgeDirection('next');
|
|
45678
45695
|
suppressNextMessageChange();
|
|
45679
|
-
var isHistoryTopVisible = messagesRef.current[0] ? Object.values(
|
|
45696
|
+
var isHistoryTopVisible = messagesRef.current[0] ? Object.values(visibleMessagesMapRef.current).some(function (visibleMessage) {
|
|
45680
45697
|
var _messagesRef$current$;
|
|
45681
45698
|
return visibleMessage.id === ((_messagesRef$current$ = messagesRef.current[0]) === null || _messagesRef$current$ === void 0 ? void 0 : _messagesRef$current$.id);
|
|
45682
45699
|
}) : false;
|
|
@@ -45706,7 +45723,7 @@ function useChatController(_ref5) {
|
|
|
45706
45723
|
}, [dispatch, isViewingLatest, jumpToLatest, scrollToNewMessage]);
|
|
45707
45724
|
useEffect(function () {
|
|
45708
45725
|
var latestLocalRef = getMessageLocalRef(channel.lastMessage);
|
|
45709
|
-
var latestVisibleMessages = Object.values(
|
|
45726
|
+
var latestVisibleMessages = Object.values(visibleMessagesMap);
|
|
45710
45727
|
var isLatestInView = latestVisibleMessages.find(function (m) {
|
|
45711
45728
|
return m.sortKey === latestLocalRef || m.localRef === latestLocalRef;
|
|
45712
45729
|
});
|
|
@@ -45714,7 +45731,7 @@ function useChatController(_ref5) {
|
|
|
45714
45731
|
if (showScrollToNewMessageButton !== shouldShow) {
|
|
45715
45732
|
dispatch(showScrollToNewMessageButtonAC(shouldShow));
|
|
45716
45733
|
}
|
|
45717
|
-
}, [channel.lastMessage, dispatch, isViewingLatest, lastVisibleMessageId, pendingNewestCount, scrollToMentionedMessage, showScrollToNewMessageButton]);
|
|
45734
|
+
}, [channel.lastMessage, dispatch, isViewingLatest, lastVisibleMessageId, pendingNewestCount, scrollToMentionedMessage, showScrollToNewMessageButton, visibleMessagesMap]);
|
|
45718
45735
|
useEffect(function () {
|
|
45719
45736
|
if (!unreadScrollTo || !messages.length || loadingPrevMessages !== LOADING_STATE.LOADED || loadingNextMessages !== LOADING_STATE.LOADED) {
|
|
45720
45737
|
return;
|
|
@@ -46192,6 +46209,7 @@ var MessageList = function MessageList(_ref) {
|
|
|
46192
46209
|
var unreadScrollTo = useSelector(unreadScrollToSelector, shallowEqual);
|
|
46193
46210
|
var messages = useSelector(activeChannelMessagesSelector, shallowEqual) || [];
|
|
46194
46211
|
var unreadMessageId = useSelector(unreadMessageIdSelector, shallowEqual);
|
|
46212
|
+
var visibleMessagesMap = useSelector(visibleMessagesMapSelector, shallowEqual);
|
|
46195
46213
|
var _useState = useState(null),
|
|
46196
46214
|
mediaFile = _useState[0],
|
|
46197
46215
|
setMediaFile = _useState[1];
|
|
@@ -46229,6 +46247,7 @@ var MessageList = function MessageList(_ref) {
|
|
|
46229
46247
|
showScrollToNewMessageButton: showScrollToNewMessageButton,
|
|
46230
46248
|
unreadScrollTo: unreadScrollTo,
|
|
46231
46249
|
unreadMessageId: unreadMessageId,
|
|
46250
|
+
visibleMessagesMap: visibleMessagesMap,
|
|
46232
46251
|
selectedMessagesMap: selectedMessagesMap,
|
|
46233
46252
|
allowEditDeleteIncomingMessage: allowEditDeleteIncomingMessage,
|
|
46234
46253
|
dispatch: dispatch,
|