sceyt-chat-react-uikit 1.8.7-beta.17 → 1.8.7-beta.19
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 +80 -54
- package/index.modern.js +80 -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;
|
|
@@ -24564,22 +24577,27 @@ function getChannels(action) {
|
|
|
24564
24577
|
mappedChannels = _yield$call.channels;
|
|
24565
24578
|
channelsForUpdateLastReactionMessage = _yield$call.channelsForUpdateLastReactionMessage;
|
|
24566
24579
|
_loop = /*#__PURE__*/_regenerator().m(function _callee() {
|
|
24567
|
-
var
|
|
24580
|
+
var _store$getState$Chann;
|
|
24581
|
+
var channelId, pendingLastMessage, currentReduxLastMessage, resolvedLastMessage, mappedChannel, mapEntry;
|
|
24568
24582
|
return _regenerator().w(function (_context2) {
|
|
24569
24583
|
while (1) switch (_context2.n) {
|
|
24570
24584
|
case 0:
|
|
24571
24585
|
channelId = _Object$keys[_i];
|
|
24572
24586
|
pendingLastMessage = pendingLastMessages[channelId];
|
|
24587
|
+
currentReduxLastMessage = (_store$getState$Chann = store.getState().ChannelReducer.channels.find(function (ch) {
|
|
24588
|
+
return ch.id === channelId;
|
|
24589
|
+
})) === null || _store$getState$Chann === void 0 ? void 0 : _store$getState$Chann.lastMessage;
|
|
24590
|
+
resolvedLastMessage = currentReduxLastMessage !== null && currentReduxLastMessage !== void 0 && currentReduxLastMessage.id && !pendingLastMessage.id ? currentReduxLastMessage : pendingLastMessage;
|
|
24573
24591
|
mappedChannel = mappedChannels.find(function (ch) {
|
|
24574
24592
|
return ch.id === channelId;
|
|
24575
24593
|
});
|
|
24576
24594
|
if (mappedChannel) {
|
|
24577
|
-
mappedChannel.lastMessage =
|
|
24595
|
+
mappedChannel.lastMessage = resolvedLastMessage;
|
|
24578
24596
|
}
|
|
24579
24597
|
mapEntry = getChannelFromMap(channelId);
|
|
24580
24598
|
if (mapEntry) {
|
|
24581
24599
|
setChannelInMap(_extends({}, mapEntry, {
|
|
24582
|
-
lastMessage:
|
|
24600
|
+
lastMessage: resolvedLastMessage
|
|
24583
24601
|
}));
|
|
24584
24602
|
}
|
|
24585
24603
|
case 1:
|
|
@@ -28672,6 +28690,9 @@ var scrollToMentionedMessageSelector = function scrollToMentionedMessageSelector
|
|
|
28672
28690
|
var showScrollToNewMessageButtonSelector = function showScrollToNewMessageButtonSelector(store) {
|
|
28673
28691
|
return store.MessageReducer.showScrollToNewMessageButton;
|
|
28674
28692
|
};
|
|
28693
|
+
var visibleMessagesMapSelector = function visibleMessagesMapSelector(store) {
|
|
28694
|
+
return store.MessageReducer.visibleMessagesMap;
|
|
28695
|
+
};
|
|
28675
28696
|
var sendMessageInputHeightSelector = function sendMessageInputHeightSelector(store) {
|
|
28676
28697
|
return store.MessageReducer.sendMessageInputHeight;
|
|
28677
28698
|
};
|
|
@@ -35895,24 +35916,24 @@ var Message = function Message(_ref) {
|
|
|
35895
35916
|
setLastVisibleMessageId(message);
|
|
35896
35917
|
}
|
|
35897
35918
|
if (!channel.isLinkedChannel) {
|
|
35898
|
-
|
|
35919
|
+
dispatch(setVisibleMessageAC(message));
|
|
35899
35920
|
}
|
|
35900
35921
|
if (scrollToNewMessage.scrollToBottom && channel.lastMessage && compareMessagesForList(message, channel.lastMessage) >= 0) {
|
|
35901
35922
|
dispatch(scrollToNewMessageAC(false, false, false));
|
|
35902
35923
|
}
|
|
35903
35924
|
} else {
|
|
35904
35925
|
if (!channel.isLinkedChannel) {
|
|
35905
|
-
|
|
35926
|
+
dispatch(removeVisibleMessageAC(message));
|
|
35906
35927
|
}
|
|
35907
35928
|
}
|
|
35908
35929
|
}, [channel.isLinkedChannel, channel.lastMessage, dispatch, isVisible, message, scrollToNewMessage.scrollToBottom, unreadScrollTo, setLastVisibleMessageId]);
|
|
35909
35930
|
React.useEffect(function () {
|
|
35910
35931
|
return function () {
|
|
35911
35932
|
if (!channel.isLinkedChannel) {
|
|
35912
|
-
|
|
35933
|
+
dispatch(removeVisibleMessageAC(message));
|
|
35913
35934
|
}
|
|
35914
35935
|
};
|
|
35915
|
-
}, [channel.isLinkedChannel, message]);
|
|
35936
|
+
}, [channel.isLinkedChannel, dispatch, message]);
|
|
35916
35937
|
return /*#__PURE__*/React__default.createElement(Container$c, {
|
|
35917
35938
|
id: message.id || message.tid,
|
|
35918
35939
|
ref: messageItemRef,
|
|
@@ -43279,24 +43300,24 @@ var Message$1 = function Message(_ref) {
|
|
|
43279
43300
|
}
|
|
43280
43301
|
handleSendReadMarker();
|
|
43281
43302
|
if (!channel.isLinkedChannel) {
|
|
43282
|
-
|
|
43303
|
+
dispatch(setVisibleMessageAC(message));
|
|
43283
43304
|
}
|
|
43284
43305
|
if (scrollToNewMessage.scrollToBottom && channel.lastMessage && compareMessagesForList(message, channel.lastMessage) >= 0) {
|
|
43285
43306
|
dispatch(scrollToNewMessageAC(false, false, false));
|
|
43286
43307
|
}
|
|
43287
43308
|
} else {
|
|
43288
43309
|
if (!channel.isLinkedChannel) {
|
|
43289
|
-
|
|
43310
|
+
dispatch(removeVisibleMessageAC(message));
|
|
43290
43311
|
}
|
|
43291
43312
|
}
|
|
43292
43313
|
}, [isVisible, setLastVisibleMessageId, message.id, handleSendReadMarker, channel.isLinkedChannel, channel.lastMessage, scrollToNewMessage.scrollToBottom, dispatch, message, isTabActive]);
|
|
43293
43314
|
React.useEffect(function () {
|
|
43294
43315
|
return function () {
|
|
43295
43316
|
if (!channel.isLinkedChannel) {
|
|
43296
|
-
|
|
43317
|
+
dispatch(removeVisibleMessageAC(message));
|
|
43297
43318
|
}
|
|
43298
43319
|
};
|
|
43299
|
-
}, [channel.isLinkedChannel, message]);
|
|
43320
|
+
}, [channel.isLinkedChannel, dispatch, message]);
|
|
43300
43321
|
React.useEffect(function () {
|
|
43301
43322
|
if (!isVisible && infoPopupOpen) {
|
|
43302
43323
|
setInfoPopupOpen(false);
|
|
@@ -43983,6 +44004,7 @@ function useChatController(_ref5) {
|
|
|
43983
44004
|
showScrollToNewMessageButton = _ref5.showScrollToNewMessageButton,
|
|
43984
44005
|
unreadScrollTo = _ref5.unreadScrollTo,
|
|
43985
44006
|
unreadMessageId = _ref5.unreadMessageId,
|
|
44007
|
+
visibleMessagesMap = _ref5.visibleMessagesMap,
|
|
43986
44008
|
selectedMessagesMap = _ref5.selectedMessagesMap,
|
|
43987
44009
|
allowEditDeleteIncomingMessage = _ref5.allowEditDeleteIncomingMessage,
|
|
43988
44010
|
_ref5$tabIsActive = _ref5.tabIsActive,
|
|
@@ -43992,6 +44014,7 @@ function useChatController(_ref5) {
|
|
|
43992
44014
|
var itemElementsRef = React.useRef(new Map());
|
|
43993
44015
|
var messagesIndexMapRef = React.useRef({});
|
|
43994
44016
|
var messagesRef = React.useRef(messages);
|
|
44017
|
+
var visibleMessagesMapRef = React.useRef(visibleMessagesMap);
|
|
43995
44018
|
var channelRef = React.useRef(channel);
|
|
43996
44019
|
var lastVisibleMessageIdRef = React.useRef('');
|
|
43997
44020
|
var lastVisibleAnchorIdRef = React.useRef('');
|
|
@@ -44125,6 +44148,7 @@ function useChatController(_ref5) {
|
|
|
44125
44148
|
}, []);
|
|
44126
44149
|
React.useLayoutEffect(function () {
|
|
44127
44150
|
messagesRef.current = messages;
|
|
44151
|
+
visibleMessagesMapRef.current = visibleMessagesMap;
|
|
44128
44152
|
channelRef.current = channel;
|
|
44129
44153
|
connectionStatusRef.current = connectionStatus;
|
|
44130
44154
|
});
|
|
@@ -45594,7 +45618,7 @@ function useChatController(_ref5) {
|
|
|
45594
45618
|
var savedRestoreWindow = channelRestoreWindowMap.get(channel.id);
|
|
45595
45619
|
if (savedRestoreWindow) {
|
|
45596
45620
|
if (!channel.isLinkedChannel) {
|
|
45597
|
-
|
|
45621
|
+
dispatch(clearVisibleMessagesMapAC());
|
|
45598
45622
|
}
|
|
45599
45623
|
if (channel.backToLinkedChannel) {
|
|
45600
45624
|
restoreRef.current = {
|
|
@@ -45615,7 +45639,7 @@ function useChatController(_ref5) {
|
|
|
45615
45639
|
}
|
|
45616
45640
|
}
|
|
45617
45641
|
if (channel.backToLinkedChannel) {
|
|
45618
|
-
var visibleMessages =
|
|
45642
|
+
var visibleMessages = visibleMessagesMapRef.current;
|
|
45619
45643
|
var visibleMessagesIds = Object.values(visibleMessages).filter(function (message) {
|
|
45620
45644
|
return !!message.id;
|
|
45621
45645
|
}).sort(function (left, right) {
|
|
@@ -45631,7 +45655,7 @@ function useChatController(_ref5) {
|
|
|
45631
45655
|
return;
|
|
45632
45656
|
}
|
|
45633
45657
|
if (!channel.isLinkedChannel) {
|
|
45634
|
-
|
|
45658
|
+
dispatch(clearVisibleMessagesMapAC());
|
|
45635
45659
|
}
|
|
45636
45660
|
if (channel.newMessageCount && channel.lastDisplayedMessageId) {
|
|
45637
45661
|
suppressNextMessageChange();
|
|
@@ -45675,7 +45699,7 @@ function useChatController(_ref5) {
|
|
|
45675
45699
|
invalidateEdgeDirection('previous');
|
|
45676
45700
|
invalidateEdgeDirection('next');
|
|
45677
45701
|
suppressNextMessageChange();
|
|
45678
|
-
var isHistoryTopVisible = messagesRef.current[0] ? Object.values(
|
|
45702
|
+
var isHistoryTopVisible = messagesRef.current[0] ? Object.values(visibleMessagesMapRef.current).some(function (visibleMessage) {
|
|
45679
45703
|
var _messagesRef$current$;
|
|
45680
45704
|
return visibleMessage.id === ((_messagesRef$current$ = messagesRef.current[0]) === null || _messagesRef$current$ === void 0 ? void 0 : _messagesRef$current$.id);
|
|
45681
45705
|
}) : false;
|
|
@@ -45705,7 +45729,7 @@ function useChatController(_ref5) {
|
|
|
45705
45729
|
}, [dispatch, isViewingLatest, jumpToLatest, scrollToNewMessage]);
|
|
45706
45730
|
React.useEffect(function () {
|
|
45707
45731
|
var latestLocalRef = getMessageLocalRef(channel.lastMessage);
|
|
45708
|
-
var latestVisibleMessages = Object.values(
|
|
45732
|
+
var latestVisibleMessages = Object.values(visibleMessagesMap);
|
|
45709
45733
|
var isLatestInView = latestVisibleMessages.find(function (m) {
|
|
45710
45734
|
return m.sortKey === latestLocalRef || m.localRef === latestLocalRef;
|
|
45711
45735
|
});
|
|
@@ -45713,7 +45737,7 @@ function useChatController(_ref5) {
|
|
|
45713
45737
|
if (showScrollToNewMessageButton !== shouldShow) {
|
|
45714
45738
|
dispatch(showScrollToNewMessageButtonAC(shouldShow));
|
|
45715
45739
|
}
|
|
45716
|
-
}, [channel.lastMessage, dispatch, isViewingLatest, lastVisibleMessageId, pendingNewestCount, scrollToMentionedMessage, showScrollToNewMessageButton]);
|
|
45740
|
+
}, [channel.lastMessage, dispatch, isViewingLatest, lastVisibleMessageId, pendingNewestCount, scrollToMentionedMessage, showScrollToNewMessageButton, visibleMessagesMap]);
|
|
45717
45741
|
React.useEffect(function () {
|
|
45718
45742
|
if (!unreadScrollTo || !messages.length || loadingPrevMessages !== LOADING_STATE.LOADED || loadingNextMessages !== LOADING_STATE.LOADED) {
|
|
45719
45743
|
return;
|
|
@@ -46191,6 +46215,7 @@ var MessageList = function MessageList(_ref) {
|
|
|
46191
46215
|
var unreadScrollTo = useSelector(unreadScrollToSelector, reactRedux.shallowEqual);
|
|
46192
46216
|
var messages = useSelector(activeChannelMessagesSelector, reactRedux.shallowEqual) || [];
|
|
46193
46217
|
var unreadMessageId = useSelector(unreadMessageIdSelector, reactRedux.shallowEqual);
|
|
46218
|
+
var visibleMessagesMap = useSelector(visibleMessagesMapSelector, reactRedux.shallowEqual);
|
|
46194
46219
|
var _useState = React.useState(null),
|
|
46195
46220
|
mediaFile = _useState[0],
|
|
46196
46221
|
setMediaFile = _useState[1];
|
|
@@ -46228,6 +46253,7 @@ var MessageList = function MessageList(_ref) {
|
|
|
46228
46253
|
showScrollToNewMessageButton: showScrollToNewMessageButton,
|
|
46229
46254
|
unreadScrollTo: unreadScrollTo,
|
|
46230
46255
|
unreadMessageId: unreadMessageId,
|
|
46256
|
+
visibleMessagesMap: visibleMessagesMap,
|
|
46231
46257
|
selectedMessagesMap: selectedMessagesMap,
|
|
46232
46258
|
allowEditDeleteIncomingMessage: allowEditDeleteIncomingMessage,
|
|
46233
46259
|
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;
|
|
@@ -24563,22 +24576,27 @@ function getChannels(action) {
|
|
|
24563
24576
|
mappedChannels = _yield$call.channels;
|
|
24564
24577
|
channelsForUpdateLastReactionMessage = _yield$call.channelsForUpdateLastReactionMessage;
|
|
24565
24578
|
_loop = /*#__PURE__*/_regenerator().m(function _callee() {
|
|
24566
|
-
var
|
|
24579
|
+
var _store$getState$Chann;
|
|
24580
|
+
var channelId, pendingLastMessage, currentReduxLastMessage, resolvedLastMessage, mappedChannel, mapEntry;
|
|
24567
24581
|
return _regenerator().w(function (_context2) {
|
|
24568
24582
|
while (1) switch (_context2.n) {
|
|
24569
24583
|
case 0:
|
|
24570
24584
|
channelId = _Object$keys[_i];
|
|
24571
24585
|
pendingLastMessage = pendingLastMessages[channelId];
|
|
24586
|
+
currentReduxLastMessage = (_store$getState$Chann = store.getState().ChannelReducer.channels.find(function (ch) {
|
|
24587
|
+
return ch.id === channelId;
|
|
24588
|
+
})) === null || _store$getState$Chann === void 0 ? void 0 : _store$getState$Chann.lastMessage;
|
|
24589
|
+
resolvedLastMessage = currentReduxLastMessage !== null && currentReduxLastMessage !== void 0 && currentReduxLastMessage.id && !pendingLastMessage.id ? currentReduxLastMessage : pendingLastMessage;
|
|
24572
24590
|
mappedChannel = mappedChannels.find(function (ch) {
|
|
24573
24591
|
return ch.id === channelId;
|
|
24574
24592
|
});
|
|
24575
24593
|
if (mappedChannel) {
|
|
24576
|
-
mappedChannel.lastMessage =
|
|
24594
|
+
mappedChannel.lastMessage = resolvedLastMessage;
|
|
24577
24595
|
}
|
|
24578
24596
|
mapEntry = getChannelFromMap(channelId);
|
|
24579
24597
|
if (mapEntry) {
|
|
24580
24598
|
setChannelInMap(_extends({}, mapEntry, {
|
|
24581
|
-
lastMessage:
|
|
24599
|
+
lastMessage: resolvedLastMessage
|
|
24582
24600
|
}));
|
|
24583
24601
|
}
|
|
24584
24602
|
case 1:
|
|
@@ -28671,6 +28689,9 @@ var scrollToMentionedMessageSelector = function scrollToMentionedMessageSelector
|
|
|
28671
28689
|
var showScrollToNewMessageButtonSelector = function showScrollToNewMessageButtonSelector(store) {
|
|
28672
28690
|
return store.MessageReducer.showScrollToNewMessageButton;
|
|
28673
28691
|
};
|
|
28692
|
+
var visibleMessagesMapSelector = function visibleMessagesMapSelector(store) {
|
|
28693
|
+
return store.MessageReducer.visibleMessagesMap;
|
|
28694
|
+
};
|
|
28674
28695
|
var sendMessageInputHeightSelector = function sendMessageInputHeightSelector(store) {
|
|
28675
28696
|
return store.MessageReducer.sendMessageInputHeight;
|
|
28676
28697
|
};
|
|
@@ -35894,24 +35915,24 @@ var Message = function Message(_ref) {
|
|
|
35894
35915
|
setLastVisibleMessageId(message);
|
|
35895
35916
|
}
|
|
35896
35917
|
if (!channel.isLinkedChannel) {
|
|
35897
|
-
|
|
35918
|
+
dispatch(setVisibleMessageAC(message));
|
|
35898
35919
|
}
|
|
35899
35920
|
if (scrollToNewMessage.scrollToBottom && channel.lastMessage && compareMessagesForList(message, channel.lastMessage) >= 0) {
|
|
35900
35921
|
dispatch(scrollToNewMessageAC(false, false, false));
|
|
35901
35922
|
}
|
|
35902
35923
|
} else {
|
|
35903
35924
|
if (!channel.isLinkedChannel) {
|
|
35904
|
-
|
|
35925
|
+
dispatch(removeVisibleMessageAC(message));
|
|
35905
35926
|
}
|
|
35906
35927
|
}
|
|
35907
35928
|
}, [channel.isLinkedChannel, channel.lastMessage, dispatch, isVisible, message, scrollToNewMessage.scrollToBottom, unreadScrollTo, setLastVisibleMessageId]);
|
|
35908
35929
|
useEffect(function () {
|
|
35909
35930
|
return function () {
|
|
35910
35931
|
if (!channel.isLinkedChannel) {
|
|
35911
|
-
|
|
35932
|
+
dispatch(removeVisibleMessageAC(message));
|
|
35912
35933
|
}
|
|
35913
35934
|
};
|
|
35914
|
-
}, [channel.isLinkedChannel, message]);
|
|
35935
|
+
}, [channel.isLinkedChannel, dispatch, message]);
|
|
35915
35936
|
return /*#__PURE__*/React__default.createElement(Container$c, {
|
|
35916
35937
|
id: message.id || message.tid,
|
|
35917
35938
|
ref: messageItemRef,
|
|
@@ -43278,24 +43299,24 @@ var Message$1 = function Message(_ref) {
|
|
|
43278
43299
|
}
|
|
43279
43300
|
handleSendReadMarker();
|
|
43280
43301
|
if (!channel.isLinkedChannel) {
|
|
43281
|
-
|
|
43302
|
+
dispatch(setVisibleMessageAC(message));
|
|
43282
43303
|
}
|
|
43283
43304
|
if (scrollToNewMessage.scrollToBottom && channel.lastMessage && compareMessagesForList(message, channel.lastMessage) >= 0) {
|
|
43284
43305
|
dispatch(scrollToNewMessageAC(false, false, false));
|
|
43285
43306
|
}
|
|
43286
43307
|
} else {
|
|
43287
43308
|
if (!channel.isLinkedChannel) {
|
|
43288
|
-
|
|
43309
|
+
dispatch(removeVisibleMessageAC(message));
|
|
43289
43310
|
}
|
|
43290
43311
|
}
|
|
43291
43312
|
}, [isVisible, setLastVisibleMessageId, message.id, handleSendReadMarker, channel.isLinkedChannel, channel.lastMessage, scrollToNewMessage.scrollToBottom, dispatch, message, isTabActive]);
|
|
43292
43313
|
useEffect(function () {
|
|
43293
43314
|
return function () {
|
|
43294
43315
|
if (!channel.isLinkedChannel) {
|
|
43295
|
-
|
|
43316
|
+
dispatch(removeVisibleMessageAC(message));
|
|
43296
43317
|
}
|
|
43297
43318
|
};
|
|
43298
|
-
}, [channel.isLinkedChannel, message]);
|
|
43319
|
+
}, [channel.isLinkedChannel, dispatch, message]);
|
|
43299
43320
|
useEffect(function () {
|
|
43300
43321
|
if (!isVisible && infoPopupOpen) {
|
|
43301
43322
|
setInfoPopupOpen(false);
|
|
@@ -43982,6 +44003,7 @@ function useChatController(_ref5) {
|
|
|
43982
44003
|
showScrollToNewMessageButton = _ref5.showScrollToNewMessageButton,
|
|
43983
44004
|
unreadScrollTo = _ref5.unreadScrollTo,
|
|
43984
44005
|
unreadMessageId = _ref5.unreadMessageId,
|
|
44006
|
+
visibleMessagesMap = _ref5.visibleMessagesMap,
|
|
43985
44007
|
selectedMessagesMap = _ref5.selectedMessagesMap,
|
|
43986
44008
|
allowEditDeleteIncomingMessage = _ref5.allowEditDeleteIncomingMessage,
|
|
43987
44009
|
_ref5$tabIsActive = _ref5.tabIsActive,
|
|
@@ -43991,6 +44013,7 @@ function useChatController(_ref5) {
|
|
|
43991
44013
|
var itemElementsRef = useRef(new Map());
|
|
43992
44014
|
var messagesIndexMapRef = useRef({});
|
|
43993
44015
|
var messagesRef = useRef(messages);
|
|
44016
|
+
var visibleMessagesMapRef = useRef(visibleMessagesMap);
|
|
43994
44017
|
var channelRef = useRef(channel);
|
|
43995
44018
|
var lastVisibleMessageIdRef = useRef('');
|
|
43996
44019
|
var lastVisibleAnchorIdRef = useRef('');
|
|
@@ -44124,6 +44147,7 @@ function useChatController(_ref5) {
|
|
|
44124
44147
|
}, []);
|
|
44125
44148
|
useLayoutEffect(function () {
|
|
44126
44149
|
messagesRef.current = messages;
|
|
44150
|
+
visibleMessagesMapRef.current = visibleMessagesMap;
|
|
44127
44151
|
channelRef.current = channel;
|
|
44128
44152
|
connectionStatusRef.current = connectionStatus;
|
|
44129
44153
|
});
|
|
@@ -45593,7 +45617,7 @@ function useChatController(_ref5) {
|
|
|
45593
45617
|
var savedRestoreWindow = channelRestoreWindowMap.get(channel.id);
|
|
45594
45618
|
if (savedRestoreWindow) {
|
|
45595
45619
|
if (!channel.isLinkedChannel) {
|
|
45596
|
-
|
|
45620
|
+
dispatch(clearVisibleMessagesMapAC());
|
|
45597
45621
|
}
|
|
45598
45622
|
if (channel.backToLinkedChannel) {
|
|
45599
45623
|
restoreRef.current = {
|
|
@@ -45614,7 +45638,7 @@ function useChatController(_ref5) {
|
|
|
45614
45638
|
}
|
|
45615
45639
|
}
|
|
45616
45640
|
if (channel.backToLinkedChannel) {
|
|
45617
|
-
var visibleMessages =
|
|
45641
|
+
var visibleMessages = visibleMessagesMapRef.current;
|
|
45618
45642
|
var visibleMessagesIds = Object.values(visibleMessages).filter(function (message) {
|
|
45619
45643
|
return !!message.id;
|
|
45620
45644
|
}).sort(function (left, right) {
|
|
@@ -45630,7 +45654,7 @@ function useChatController(_ref5) {
|
|
|
45630
45654
|
return;
|
|
45631
45655
|
}
|
|
45632
45656
|
if (!channel.isLinkedChannel) {
|
|
45633
|
-
|
|
45657
|
+
dispatch(clearVisibleMessagesMapAC());
|
|
45634
45658
|
}
|
|
45635
45659
|
if (channel.newMessageCount && channel.lastDisplayedMessageId) {
|
|
45636
45660
|
suppressNextMessageChange();
|
|
@@ -45674,7 +45698,7 @@ function useChatController(_ref5) {
|
|
|
45674
45698
|
invalidateEdgeDirection('previous');
|
|
45675
45699
|
invalidateEdgeDirection('next');
|
|
45676
45700
|
suppressNextMessageChange();
|
|
45677
|
-
var isHistoryTopVisible = messagesRef.current[0] ? Object.values(
|
|
45701
|
+
var isHistoryTopVisible = messagesRef.current[0] ? Object.values(visibleMessagesMapRef.current).some(function (visibleMessage) {
|
|
45678
45702
|
var _messagesRef$current$;
|
|
45679
45703
|
return visibleMessage.id === ((_messagesRef$current$ = messagesRef.current[0]) === null || _messagesRef$current$ === void 0 ? void 0 : _messagesRef$current$.id);
|
|
45680
45704
|
}) : false;
|
|
@@ -45704,7 +45728,7 @@ function useChatController(_ref5) {
|
|
|
45704
45728
|
}, [dispatch, isViewingLatest, jumpToLatest, scrollToNewMessage]);
|
|
45705
45729
|
useEffect(function () {
|
|
45706
45730
|
var latestLocalRef = getMessageLocalRef(channel.lastMessage);
|
|
45707
|
-
var latestVisibleMessages = Object.values(
|
|
45731
|
+
var latestVisibleMessages = Object.values(visibleMessagesMap);
|
|
45708
45732
|
var isLatestInView = latestVisibleMessages.find(function (m) {
|
|
45709
45733
|
return m.sortKey === latestLocalRef || m.localRef === latestLocalRef;
|
|
45710
45734
|
});
|
|
@@ -45712,7 +45736,7 @@ function useChatController(_ref5) {
|
|
|
45712
45736
|
if (showScrollToNewMessageButton !== shouldShow) {
|
|
45713
45737
|
dispatch(showScrollToNewMessageButtonAC(shouldShow));
|
|
45714
45738
|
}
|
|
45715
|
-
}, [channel.lastMessage, dispatch, isViewingLatest, lastVisibleMessageId, pendingNewestCount, scrollToMentionedMessage, showScrollToNewMessageButton]);
|
|
45739
|
+
}, [channel.lastMessage, dispatch, isViewingLatest, lastVisibleMessageId, pendingNewestCount, scrollToMentionedMessage, showScrollToNewMessageButton, visibleMessagesMap]);
|
|
45716
45740
|
useEffect(function () {
|
|
45717
45741
|
if (!unreadScrollTo || !messages.length || loadingPrevMessages !== LOADING_STATE.LOADED || loadingNextMessages !== LOADING_STATE.LOADED) {
|
|
45718
45742
|
return;
|
|
@@ -46190,6 +46214,7 @@ var MessageList = function MessageList(_ref) {
|
|
|
46190
46214
|
var unreadScrollTo = useSelector(unreadScrollToSelector, shallowEqual);
|
|
46191
46215
|
var messages = useSelector(activeChannelMessagesSelector, shallowEqual) || [];
|
|
46192
46216
|
var unreadMessageId = useSelector(unreadMessageIdSelector, shallowEqual);
|
|
46217
|
+
var visibleMessagesMap = useSelector(visibleMessagesMapSelector, shallowEqual);
|
|
46193
46218
|
var _useState = useState(null),
|
|
46194
46219
|
mediaFile = _useState[0],
|
|
46195
46220
|
setMediaFile = _useState[1];
|
|
@@ -46227,6 +46252,7 @@ var MessageList = function MessageList(_ref) {
|
|
|
46227
46252
|
showScrollToNewMessageButton: showScrollToNewMessageButton,
|
|
46228
46253
|
unreadScrollTo: unreadScrollTo,
|
|
46229
46254
|
unreadMessageId: unreadMessageId,
|
|
46255
|
+
visibleMessagesMap: visibleMessagesMap,
|
|
46230
46256
|
selectedMessagesMap: selectedMessagesMap,
|
|
46231
46257
|
allowEditDeleteIncomingMessage: allowEditDeleteIncomingMessage,
|
|
46232
46258
|
dispatch: dispatch,
|