sceyt-chat-react-uikit 1.7.1-beta.16 → 1.7.1-beta.17
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/index.js +203 -174
- package/index.modern.js +203 -174
- package/package.json +1 -1
package/index.modern.js
CHANGED
|
@@ -10319,6 +10319,7 @@ var initialState$1 = {
|
|
|
10319
10319
|
attachmentsUploadingState: {},
|
|
10320
10320
|
scrollToMessage: null,
|
|
10321
10321
|
scrollToMessageHighlight: true,
|
|
10322
|
+
scrollToMessageBehavior: 'smooth',
|
|
10322
10323
|
scrollToMentionedMessage: false,
|
|
10323
10324
|
reactionsList: [],
|
|
10324
10325
|
reactionsHasNext: true,
|
|
@@ -10345,6 +10346,7 @@ var messageSlice = createSlice({
|
|
|
10345
10346
|
setScrollToMessage: function setScrollToMessage(state, action) {
|
|
10346
10347
|
state.scrollToMessage = action.payload.messageId;
|
|
10347
10348
|
state.scrollToMessageHighlight = action.payload.highlight;
|
|
10349
|
+
state.scrollToMessageBehavior = action.payload.behavior || 'smooth';
|
|
10348
10350
|
},
|
|
10349
10351
|
setScrollToMentionedMessage: function setScrollToMentionedMessage(state, action) {
|
|
10350
10352
|
state.scrollToMentionedMessage = action.payload.isScrollToMentionedMessage;
|
|
@@ -11596,7 +11598,7 @@ function setMessageToEditAC(message) {
|
|
|
11596
11598
|
message: message
|
|
11597
11599
|
});
|
|
11598
11600
|
}
|
|
11599
|
-
function getMessagesAC(channel, loadWithLastMessage, messageId, limit, withDeliveredMessages, highlight) {
|
|
11601
|
+
function getMessagesAC(channel, loadWithLastMessage, messageId, limit, withDeliveredMessages, highlight, behavior) {
|
|
11600
11602
|
if (highlight === void 0) {
|
|
11601
11603
|
highlight = true;
|
|
11602
11604
|
}
|
|
@@ -11608,7 +11610,8 @@ function getMessagesAC(channel, loadWithLastMessage, messageId, limit, withDeliv
|
|
|
11608
11610
|
messageId: messageId,
|
|
11609
11611
|
limit: limit,
|
|
11610
11612
|
withDeliveredMessages: withDeliveredMessages,
|
|
11611
|
-
highlight: highlight
|
|
11613
|
+
highlight: highlight,
|
|
11614
|
+
behavior: behavior
|
|
11612
11615
|
}
|
|
11613
11616
|
};
|
|
11614
11617
|
}
|
|
@@ -11622,13 +11625,14 @@ function getMessageAC(channelId, messageId, limit) {
|
|
|
11622
11625
|
}
|
|
11623
11626
|
};
|
|
11624
11627
|
}
|
|
11625
|
-
function setScrollToMessagesAC(messageId, highlight) {
|
|
11628
|
+
function setScrollToMessagesAC(messageId, highlight, behavior) {
|
|
11626
11629
|
if (highlight === void 0) {
|
|
11627
11630
|
highlight = true;
|
|
11628
11631
|
}
|
|
11629
11632
|
return setScrollToMessage({
|
|
11630
11633
|
messageId: messageId || '',
|
|
11631
|
-
highlight: highlight
|
|
11634
|
+
highlight: highlight,
|
|
11635
|
+
behavior: behavior
|
|
11632
11636
|
});
|
|
11633
11637
|
}
|
|
11634
11638
|
function setScrollToMentionedMessageAC(isScrollToMentionedMessage) {
|
|
@@ -17089,6 +17093,9 @@ var scrollToMessageSelector = function scrollToMessageSelector(store) {
|
|
|
17089
17093
|
var scrollToMessageHighlightSelector = function scrollToMessageHighlightSelector(store) {
|
|
17090
17094
|
return store.MessageReducer.scrollToMessageHighlight;
|
|
17091
17095
|
};
|
|
17096
|
+
var scrollToMessageBehaviorSelector = function scrollToMessageBehaviorSelector(store) {
|
|
17097
|
+
return store.MessageReducer.scrollToMessageBehavior;
|
|
17098
|
+
};
|
|
17092
17099
|
var reactionsListSelector = function reactionsListSelector(store) {
|
|
17093
17100
|
return store.MessageReducer.reactionsList;
|
|
17094
17101
|
};
|
|
@@ -18482,7 +18489,7 @@ function editMessage(action) {
|
|
|
18482
18489
|
}, _marked6$1, null, [[0, 5]]);
|
|
18483
18490
|
}
|
|
18484
18491
|
function getMessagesQuery(action) {
|
|
18485
|
-
var _action$payload, channel, loadWithLastMessage, messageId, limit, withDeliveredMessages, highlight, SceytChatClient, messageQueryBuilder, messageQuery, cachedMessages, result, allMessages, havLastMessage, secondResult, sentMessages, messagesMap, filteredSentMessages, _allMessages, messageIndex, maxLengthPart, _secondResult, thirdResult, _secondResult2, _thirdResult, _secondResult3, _secondResult4, updatedMessages, pendingMessages, _messagesMap, filteredPendingMessages, _t9;
|
|
18492
|
+
var _action$payload, channel, loadWithLastMessage, messageId, limit, withDeliveredMessages, highlight, behavior, SceytChatClient, messageQueryBuilder, messageQuery, cachedMessages, result, allMessages, havLastMessage, secondResult, sentMessages, messagesMap, filteredSentMessages, _allMessages, messageIndex, maxLengthPart, _secondResult, thirdResult, _secondResult2, _thirdResult, _secondResult3, _secondResult4, updatedMessages, pendingMessages, _messagesMap, filteredPendingMessages, _t9;
|
|
18486
18493
|
return _regenerator().w(function (_context9) {
|
|
18487
18494
|
while (1) switch (_context9.p = _context9.n) {
|
|
18488
18495
|
case 0:
|
|
@@ -18490,7 +18497,7 @@ function getMessagesQuery(action) {
|
|
|
18490
18497
|
_context9.n = 1;
|
|
18491
18498
|
return put(setMessagesLoadingStateAC(LOADING_STATE.LOADING));
|
|
18492
18499
|
case 1:
|
|
18493
|
-
_action$payload = action.payload, channel = _action$payload.channel, loadWithLastMessage = _action$payload.loadWithLastMessage, messageId = _action$payload.messageId, limit = _action$payload.limit, withDeliveredMessages = _action$payload.withDeliveredMessages, highlight = _action$payload.highlight;
|
|
18500
|
+
_action$payload = action.payload, channel = _action$payload.channel, loadWithLastMessage = _action$payload.loadWithLastMessage, messageId = _action$payload.messageId, limit = _action$payload.limit, withDeliveredMessages = _action$payload.withDeliveredMessages, highlight = _action$payload.highlight, behavior = _action$payload.behavior;
|
|
18494
18501
|
if (!(channel.id && !channel.isMockChannel)) {
|
|
18495
18502
|
_context9.n = 47;
|
|
18496
18503
|
break;
|
|
@@ -18576,7 +18583,7 @@ function getMessagesQuery(action) {
|
|
|
18576
18583
|
break;
|
|
18577
18584
|
}
|
|
18578
18585
|
_context9.n = 12;
|
|
18579
|
-
return put(setScrollToMessagesAC(messageId, highlight));
|
|
18586
|
+
return put(setScrollToMessagesAC(messageId, highlight, behavior));
|
|
18580
18587
|
case 12:
|
|
18581
18588
|
_context9.n = 45;
|
|
18582
18589
|
break;
|
|
@@ -18639,7 +18646,7 @@ function getMessagesQuery(action) {
|
|
|
18639
18646
|
setHasNextCached(false);
|
|
18640
18647
|
case 22:
|
|
18641
18648
|
_context9.n = 23;
|
|
18642
|
-
return put(setScrollToMessagesAC(messageId));
|
|
18649
|
+
return put(setScrollToMessagesAC(messageId, true, behavior));
|
|
18643
18650
|
case 23:
|
|
18644
18651
|
_context9.n = 24;
|
|
18645
18652
|
return put(setMessagesLoadingStateAC(LOADING_STATE.LOADED));
|
|
@@ -26121,6 +26128,7 @@ var Message = function Message(_ref) {
|
|
|
26121
26128
|
var _useColor = useColors(),
|
|
26122
26129
|
textOnPrimary = _useColor[THEME_COLORS.TEXT_ON_PRIMARY],
|
|
26123
26130
|
overlayBackground = _useColor[THEME_COLORS.OVERLAY_BACKGROUND];
|
|
26131
|
+
var scrollToNewMessage = useSelector(scrollToNewMessageSelector);
|
|
26124
26132
|
var dispatch = useDispatch();
|
|
26125
26133
|
var ChatClient = getClient();
|
|
26126
26134
|
var user = ChatClient.user;
|
|
@@ -26139,7 +26147,19 @@ var Message = function Message(_ref) {
|
|
|
26139
26147
|
};
|
|
26140
26148
|
useEffect(function () {
|
|
26141
26149
|
if (isVisible) {
|
|
26150
|
+
var _channel$lastMessage;
|
|
26142
26151
|
handleSendReadMarker();
|
|
26152
|
+
if (!channel.isLinkedChannel) {
|
|
26153
|
+
setMessageToVisibleMessagesMap(message);
|
|
26154
|
+
}
|
|
26155
|
+
if (scrollToNewMessage.scrollToBottom && ((message === null || message === void 0 ? void 0 : message.id) === ((_channel$lastMessage = channel.lastMessage) === null || _channel$lastMessage === void 0 ? void 0 : _channel$lastMessage.id) || !(message !== null && message !== void 0 && message.id))) {
|
|
26156
|
+
dispatch(scrollToNewMessageAC(false, false, false));
|
|
26157
|
+
dispatch(setMessagesLoadingStateAC(LOADING_STATE.LOADED));
|
|
26158
|
+
}
|
|
26159
|
+
} else {
|
|
26160
|
+
if (!channel.isLinkedChannel) {
|
|
26161
|
+
removeMessageFromVisibleMessagesMap(message);
|
|
26162
|
+
}
|
|
26143
26163
|
}
|
|
26144
26164
|
}, [isVisible]);
|
|
26145
26165
|
useDidUpdate(function () {
|
|
@@ -32792,14 +32812,6 @@ var HiddenMessageProperty;
|
|
|
32792
32812
|
})(HiddenMessageProperty || (HiddenMessageProperty = {}));
|
|
32793
32813
|
|
|
32794
32814
|
var _templateObject$D, _templateObject2$y, _templateObject3$s, _templateObject4$o, _templateObject5$k, _templateObject6$h, _templateObject7$f, _templateObject8$e, _templateObject9$c, _templateObject0$b, _templateObject1$8;
|
|
32795
|
-
var loadFromServer = false;
|
|
32796
|
-
var loadDirection = '';
|
|
32797
|
-
var nextDisable = false;
|
|
32798
|
-
var prevDisable = false;
|
|
32799
|
-
var scrollToBottom = false;
|
|
32800
|
-
var shouldLoadMessages;
|
|
32801
|
-
var loading = false;
|
|
32802
|
-
var messagesIndexMap = {};
|
|
32803
32815
|
var CreateMessageDateDivider = function CreateMessageDateDivider(_ref) {
|
|
32804
32816
|
var lastIndex = _ref.lastIndex,
|
|
32805
32817
|
currentMessageDate = _ref.currentMessageDate,
|
|
@@ -33009,6 +33021,7 @@ var MessageList = function MessageList(_ref2) {
|
|
|
33009
33021
|
var scrollToMentionedMessage = useSelector(scrollToMentionedMessageSelector, shallowEqual);
|
|
33010
33022
|
var scrollToRepliedMessage = useSelector(scrollToMessageSelector, shallowEqual);
|
|
33011
33023
|
var scrollToMessageHighlight = useSelector(scrollToMessageHighlightSelector, shallowEqual);
|
|
33024
|
+
var scrollToMessageBehavior = useSelector(scrollToMessageBehaviorSelector, shallowEqual);
|
|
33012
33025
|
var browserTabIsActive = useSelector(browserTabIsActiveSelector, shallowEqual);
|
|
33013
33026
|
var hasNextMessages = useSelector(messagesHasNextSelector, shallowEqual);
|
|
33014
33027
|
var hasPrevMessages = useSelector(messagesHasPrevSelector, shallowEqual);
|
|
@@ -33049,35 +33062,39 @@ var MessageList = function MessageList(_ref2) {
|
|
|
33049
33062
|
setShouldPreserveScroll = _useState0[1];
|
|
33050
33063
|
var messageForReply = {};
|
|
33051
33064
|
var attachmentsSelected = false;
|
|
33052
|
-
var
|
|
33065
|
+
var _useState1 = useState(''),
|
|
33066
|
+
topDateLabel = _useState1[0],
|
|
33067
|
+
setTopDateLabel = _useState1[1];
|
|
33053
33068
|
var scrollRef = useRef(null);
|
|
33069
|
+
var loadFromServerRef = useRef(false);
|
|
33070
|
+
var loadDirectionRef = useRef('');
|
|
33071
|
+
var nextDisableRef = useRef(false);
|
|
33072
|
+
var prevDisableRef = useRef(false);
|
|
33073
|
+
var scrollToBottomRef = useRef(false);
|
|
33074
|
+
var shouldLoadMessagesRef = useRef('');
|
|
33075
|
+
var loadingRef = useRef(false);
|
|
33076
|
+
var messagesIndexMapRef = useRef({});
|
|
33077
|
+
var scrollRafRef = useRef(null);
|
|
33054
33078
|
var renderTopDate = function renderTopDate() {
|
|
33055
|
-
var
|
|
33056
|
-
|
|
33079
|
+
var container = scrollRef.current;
|
|
33080
|
+
if (!container) return;
|
|
33081
|
+
var dateLabels = container.querySelectorAll('.divider');
|
|
33057
33082
|
var text = '';
|
|
33058
33083
|
for (var i = dateLabels.length - 1; i >= 0; i--) {
|
|
33059
|
-
var _dateLabel$firstChild;
|
|
33060
33084
|
var dateLabel = dateLabels[i];
|
|
33061
|
-
|
|
33062
|
-
|
|
33063
|
-
text = span
|
|
33064
|
-
span.style.display = 'none';
|
|
33065
|
-
} else {
|
|
33066
|
-
span.style.display = 'block';
|
|
33085
|
+
if (!text && container.scrollTop > dateLabel.offsetTop) {
|
|
33086
|
+
var span = (dateLabel === null || dateLabel === void 0 ? void 0 : dateLabel.firstChild) && dateLabel.firstChild.firstChild;
|
|
33087
|
+
text = span ? span.innerText || '' : '';
|
|
33067
33088
|
}
|
|
33068
33089
|
}
|
|
33069
|
-
|
|
33070
|
-
messageTopDate.innerText = text;
|
|
33071
|
-
messageTopDate.style.display = 'inline';
|
|
33072
|
-
} else {
|
|
33073
|
-
messageTopDate.style.display = 'none';
|
|
33074
|
-
}
|
|
33090
|
+
setTopDateLabel(text);
|
|
33075
33091
|
};
|
|
33076
|
-
var handleMessagesListScroll = useCallback(function (
|
|
33092
|
+
var handleMessagesListScroll = useCallback(function () {
|
|
33077
33093
|
try {
|
|
33094
|
+
var target = scrollRef.current;
|
|
33095
|
+
if (!target) return Promise.resolve();
|
|
33078
33096
|
if (scrollToMentionedMessage) {
|
|
33079
|
-
|
|
33080
|
-
if (_target.scrollTop <= -50 || channel.lastMessage.id !== messages[messages.length - 1].id) {
|
|
33097
|
+
if (target.scrollTop <= -50 || channel.lastMessage.id !== messages[messages.length - 1].id) {
|
|
33081
33098
|
dispatch(showScrollToNewMessageButtonAC(true));
|
|
33082
33099
|
} else {
|
|
33083
33100
|
dispatch(showScrollToNewMessageButtonAC(false));
|
|
@@ -33090,7 +33107,6 @@ var MessageList = function MessageList(_ref2) {
|
|
|
33090
33107
|
setShowTopDate(false);
|
|
33091
33108
|
}, 1000);
|
|
33092
33109
|
renderTopDate();
|
|
33093
|
-
var target = event.target;
|
|
33094
33110
|
var forceLoadPrevMessages = false;
|
|
33095
33111
|
if (-target.scrollTop + target.offsetHeight + 30 > target.scrollHeight) {
|
|
33096
33112
|
forceLoadPrevMessages = true;
|
|
@@ -33105,51 +33121,68 @@ var MessageList = function MessageList(_ref2) {
|
|
|
33105
33121
|
}
|
|
33106
33122
|
if (scrollToReply) {
|
|
33107
33123
|
target.scrollTop = scrollToReply;
|
|
33108
|
-
|
|
33109
|
-
|
|
33110
|
-
|
|
33111
|
-
|
|
33112
|
-
|
|
33113
|
-
|
|
33114
|
-
|
|
33115
|
-
|
|
33116
|
-
|
|
33117
|
-
|
|
33118
|
-
|
|
33119
|
-
if (!getHasPrevCached()) {
|
|
33120
|
-
loadFromServer = true;
|
|
33121
|
-
}
|
|
33122
|
-
nextDisable = true;
|
|
33124
|
+
return Promise.resolve();
|
|
33125
|
+
}
|
|
33126
|
+
var currentIndex = messagesIndexMapRef.current[lastVisibleMessageId];
|
|
33127
|
+
var hasIndex = typeof currentIndex === 'number';
|
|
33128
|
+
if (hasIndex && currentIndex < 15 || forceLoadPrevMessages) {
|
|
33129
|
+
if (connectionStatus === CONNECTION_STATUS.CONNECTED && !scrollToNewMessage.scrollToBottom && hasPrevMessages) {
|
|
33130
|
+
if (loadingRef.current || messagesLoading === LOADING_STATE.LOADING || prevDisableRef.current) {
|
|
33131
|
+
shouldLoadMessagesRef.current = 'prev';
|
|
33132
|
+
} else {
|
|
33133
|
+
if (shouldLoadMessagesRef.current === 'prev') {
|
|
33134
|
+
shouldLoadMessagesRef.current = '';
|
|
33123
33135
|
}
|
|
33136
|
+
loadDirectionRef.current = 'prev';
|
|
33137
|
+
handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.PREV, LOAD_MAX_MESSAGE_COUNT);
|
|
33138
|
+
if (!getHasPrevCached()) {
|
|
33139
|
+
loadFromServerRef.current = true;
|
|
33140
|
+
}
|
|
33141
|
+
nextDisableRef.current = true;
|
|
33124
33142
|
}
|
|
33125
33143
|
}
|
|
33126
|
-
|
|
33127
|
-
|
|
33128
|
-
|
|
33129
|
-
|
|
33130
|
-
|
|
33131
|
-
|
|
33132
|
-
|
|
33133
|
-
|
|
33134
|
-
loadDirection = 'next';
|
|
33135
|
-
prevDisable = true;
|
|
33136
|
-
handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.NEXT, LOAD_MAX_MESSAGE_COUNT);
|
|
33144
|
+
}
|
|
33145
|
+
if (hasIndex && currentIndex >= messages.length - 15 || target.scrollTop === 0) {
|
|
33146
|
+
if (connectionStatus === CONNECTION_STATUS.CONNECTED && !scrollToNewMessage.scrollToBottom && (hasNextMessages || getHasNextCached())) {
|
|
33147
|
+
if (loadingRef.current || messagesLoading === LOADING_STATE.LOADING || nextDisableRef.current) {
|
|
33148
|
+
shouldLoadMessagesRef.current = 'next';
|
|
33149
|
+
} else {
|
|
33150
|
+
if (shouldLoadMessagesRef.current === 'next') {
|
|
33151
|
+
shouldLoadMessagesRef.current = '';
|
|
33137
33152
|
}
|
|
33153
|
+
loadDirectionRef.current = 'next';
|
|
33154
|
+
prevDisableRef.current = true;
|
|
33155
|
+
handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.NEXT, LOAD_MAX_MESSAGE_COUNT);
|
|
33138
33156
|
}
|
|
33139
33157
|
}
|
|
33140
|
-
|
|
33141
|
-
|
|
33142
|
-
|
|
33158
|
+
}
|
|
33159
|
+
if (hasIndex && currentIndex > messages.length - 10) {
|
|
33160
|
+
nextDisableRef.current = false;
|
|
33143
33161
|
}
|
|
33144
33162
|
return Promise.resolve();
|
|
33145
33163
|
} catch (e) {
|
|
33146
33164
|
return Promise.reject(e);
|
|
33147
33165
|
}
|
|
33148
|
-
}, [channel === null || channel === void 0 ? void 0 : (_channel$lastMessage = channel.lastMessage) === null || _channel$lastMessage === void 0 ? void 0 : _channel$lastMessage.id, messages, scrollToMentionedMessage, scrollToNewMessage, messagesLoading, hasPrevMessages, hasNextMessages,
|
|
33166
|
+
}, [channel === null || channel === void 0 ? void 0 : (_channel$lastMessage = channel.lastMessage) === null || _channel$lastMessage === void 0 ? void 0 : _channel$lastMessage.id, messages, scrollToMentionedMessage, scrollToNewMessage, messagesLoading, hasPrevMessages, hasNextMessages, lastVisibleMessageId, connectionStatus, getHasPrevCached, getHasNextCached, scrollToReply]);
|
|
33167
|
+
var onScroll = useCallback(function () {
|
|
33168
|
+
if (scrollRafRef.current !== null) return;
|
|
33169
|
+
scrollRafRef.current = window.requestAnimationFrame(function () {
|
|
33170
|
+
scrollRafRef.current = null;
|
|
33171
|
+
handleMessagesListScroll();
|
|
33172
|
+
});
|
|
33173
|
+
}, [handleMessagesListScroll]);
|
|
33174
|
+
useEffect(function () {
|
|
33175
|
+
return function () {
|
|
33176
|
+
if (scrollRafRef.current !== null) {
|
|
33177
|
+
cancelAnimationFrame(scrollRafRef.current);
|
|
33178
|
+
scrollRafRef.current = null;
|
|
33179
|
+
}
|
|
33180
|
+
};
|
|
33181
|
+
}, []);
|
|
33149
33182
|
var handleScrollToRepliedMessage = function handleScrollToRepliedMessage(messageId) {
|
|
33150
33183
|
try {
|
|
33151
|
-
|
|
33152
|
-
|
|
33184
|
+
prevDisableRef.current = true;
|
|
33185
|
+
nextDisableRef.current = true;
|
|
33153
33186
|
if (messages.findIndex(function (msg) {
|
|
33154
33187
|
return msg.id === messageId;
|
|
33155
33188
|
}) >= 10) {
|
|
@@ -33163,8 +33196,8 @@ var MessageList = function MessageList(_ref2) {
|
|
|
33163
33196
|
var positiveValue = repliedMessage.offsetTop - scrollRef.current.offsetHeight / 2 < 0 ? repliedMessage.offsetTop - scrollRef.current.offsetHeight * -1 : repliedMessage.offsetTop - scrollRef.current.offsetHeight / 2;
|
|
33164
33197
|
setTimeout(function () {
|
|
33165
33198
|
repliedMessage.classList.remove('highlight');
|
|
33166
|
-
|
|
33167
|
-
|
|
33199
|
+
prevDisableRef.current = false;
|
|
33200
|
+
nextDisableRef.current = false;
|
|
33168
33201
|
}, 1000 + positiveValue * 0.1);
|
|
33169
33202
|
}
|
|
33170
33203
|
} else {
|
|
@@ -33185,10 +33218,10 @@ var MessageList = function MessageList(_ref2) {
|
|
|
33185
33218
|
var hasNextCached = getHasNextCached();
|
|
33186
33219
|
if (messagesLoading === LOADING_STATE.LOADED && connectionStatus === CONNECTION_STATUS.CONNECTED) {
|
|
33187
33220
|
if (direction === MESSAGE_LOAD_DIRECTION.PREV && firstMessageId && (hasPrevMessages || hasPrevCached)) {
|
|
33188
|
-
|
|
33221
|
+
loadingRef.current = true;
|
|
33189
33222
|
dispatch(loadMoreMessagesAC(channel.id, limit, direction, firstMessageId, hasPrevMessages));
|
|
33190
33223
|
} else if (direction === MESSAGE_LOAD_DIRECTION.NEXT && lastMessageId && (hasNextMessages || hasNextCached)) {
|
|
33191
|
-
|
|
33224
|
+
loadingRef.current = true;
|
|
33192
33225
|
dispatch(loadMoreMessagesAC(channel.id, limit, direction, lastMessageId, hasNextMessages));
|
|
33193
33226
|
}
|
|
33194
33227
|
}
|
|
@@ -33219,39 +33252,42 @@ var MessageList = function MessageList(_ref2) {
|
|
|
33219
33252
|
setIsDragging(false);
|
|
33220
33253
|
}
|
|
33221
33254
|
};
|
|
33255
|
+
var readDroppedFiles = function readDroppedFiles(e) {
|
|
33256
|
+
return new Promise(function (resolve) {
|
|
33257
|
+
var fileList = Object.values(e.dataTransfer.files);
|
|
33258
|
+
var attachmentsFiles = [];
|
|
33259
|
+
var readFiles = 0;
|
|
33260
|
+
var errorCount = 0;
|
|
33261
|
+
fileList.forEach(function (attachment) {
|
|
33262
|
+
var fileReader = new FileReader();
|
|
33263
|
+
fileReader.onload = function (event) {
|
|
33264
|
+
var file = event.target.result;
|
|
33265
|
+
attachmentsFiles.push({
|
|
33266
|
+
name: attachment.name,
|
|
33267
|
+
data: file,
|
|
33268
|
+
type: attachment.type
|
|
33269
|
+
});
|
|
33270
|
+
readFiles++;
|
|
33271
|
+
if (readFiles + errorCount === fileList.length) {
|
|
33272
|
+
resolve(attachmentsFiles);
|
|
33273
|
+
}
|
|
33274
|
+
};
|
|
33275
|
+
fileReader.onerror = function () {
|
|
33276
|
+
errorCount++;
|
|
33277
|
+
if (readFiles + errorCount === fileList.length) {
|
|
33278
|
+
resolve(attachmentsFiles);
|
|
33279
|
+
}
|
|
33280
|
+
};
|
|
33281
|
+
fileReader.readAsDataURL(attachment);
|
|
33282
|
+
});
|
|
33283
|
+
});
|
|
33284
|
+
};
|
|
33222
33285
|
var handleDropFile = function handleDropFile(e) {
|
|
33223
33286
|
e.preventDefault();
|
|
33224
33287
|
e.stopPropagation();
|
|
33225
33288
|
setIsDragging(false);
|
|
33226
33289
|
if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {
|
|
33227
|
-
|
|
33228
|
-
new Promise(function (resolve) {
|
|
33229
|
-
var attachmentsFiles = [];
|
|
33230
|
-
var readFiles = 0;
|
|
33231
|
-
var errorCount = 0;
|
|
33232
|
-
fileList.forEach(function (attachment) {
|
|
33233
|
-
var fileReader = new FileReader();
|
|
33234
|
-
fileReader.onload = function (event) {
|
|
33235
|
-
var file = event.target.result;
|
|
33236
|
-
attachmentsFiles.push({
|
|
33237
|
-
name: attachment.name,
|
|
33238
|
-
data: file,
|
|
33239
|
-
type: attachment.type
|
|
33240
|
-
});
|
|
33241
|
-
readFiles++;
|
|
33242
|
-
if (readFiles + errorCount === fileList.length) {
|
|
33243
|
-
resolve(attachmentsFiles);
|
|
33244
|
-
}
|
|
33245
|
-
};
|
|
33246
|
-
fileReader.onerror = function () {
|
|
33247
|
-
errorCount++;
|
|
33248
|
-
if (readFiles + errorCount === fileList.length) {
|
|
33249
|
-
resolve(attachmentsFiles);
|
|
33250
|
-
}
|
|
33251
|
-
};
|
|
33252
|
-
fileReader.readAsDataURL(attachment);
|
|
33253
|
-
});
|
|
33254
|
-
}).then(function (result) {
|
|
33290
|
+
readDroppedFiles(e).then(function (result) {
|
|
33255
33291
|
dispatch(setDraggedAttachmentsAC(result, 'file'));
|
|
33256
33292
|
})["catch"](function (error) {
|
|
33257
33293
|
console.error('Error in handleDropFile:', error);
|
|
@@ -33264,34 +33300,7 @@ var MessageList = function MessageList(_ref2) {
|
|
|
33264
33300
|
e.stopPropagation();
|
|
33265
33301
|
setIsDragging(false);
|
|
33266
33302
|
if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {
|
|
33267
|
-
|
|
33268
|
-
new Promise(function (resolve) {
|
|
33269
|
-
var attachmentsFiles = [];
|
|
33270
|
-
var readFiles = 0;
|
|
33271
|
-
var errorCount = 0;
|
|
33272
|
-
fileList.forEach(function (attachment) {
|
|
33273
|
-
var fileReader = new FileReader();
|
|
33274
|
-
fileReader.onload = function (event) {
|
|
33275
|
-
var file = event.target.result;
|
|
33276
|
-
attachmentsFiles.push({
|
|
33277
|
-
name: attachment.name,
|
|
33278
|
-
data: file,
|
|
33279
|
-
type: attachment.type
|
|
33280
|
-
});
|
|
33281
|
-
readFiles++;
|
|
33282
|
-
if (readFiles + errorCount === fileList.length) {
|
|
33283
|
-
resolve(attachmentsFiles);
|
|
33284
|
-
}
|
|
33285
|
-
};
|
|
33286
|
-
fileReader.onerror = function () {
|
|
33287
|
-
errorCount++;
|
|
33288
|
-
if (readFiles + errorCount === fileList.length) {
|
|
33289
|
-
resolve(attachmentsFiles);
|
|
33290
|
-
}
|
|
33291
|
-
};
|
|
33292
|
-
fileReader.readAsDataURL(attachment);
|
|
33293
|
-
});
|
|
33294
|
-
}).then(function (result) {
|
|
33303
|
+
readDroppedFiles(e).then(function (result) {
|
|
33295
33304
|
dispatch(setDraggedAttachmentsAC(result, 'media'));
|
|
33296
33305
|
})["catch"](function (error) {
|
|
33297
33306
|
console.error('Error in handleDropMedia:', error);
|
|
@@ -33303,21 +33312,21 @@ var MessageList = function MessageList(_ref2) {
|
|
|
33303
33312
|
var _messages, _channel$lastMessage2;
|
|
33304
33313
|
if (messages.length > 0 && ((_messages = messages[messages.length - 1]) === null || _messages === void 0 ? void 0 : _messages.id) === ((_channel$lastMessage2 = channel.lastMessage) === null || _channel$lastMessage2 === void 0 ? void 0 : _channel$lastMessage2.id) && scrollRef.current && scrollRef.current.scrollTop > -50 && !showScrollToNewMessageButton) {
|
|
33305
33314
|
dispatch(showScrollToNewMessageButtonAC(false));
|
|
33306
|
-
|
|
33315
|
+
prevDisableRef.current = false;
|
|
33307
33316
|
}
|
|
33308
33317
|
}, [messages, channel === null || channel === void 0 ? void 0 : (_channel$lastMessage3 = channel.lastMessage) === null || _channel$lastMessage3 === void 0 ? void 0 : _channel$lastMessage3.id, scrollRef === null || scrollRef === void 0 ? void 0 : (_scrollRef$current = scrollRef.current) === null || _scrollRef$current === void 0 ? void 0 : _scrollRef$current.scrollTop, showScrollToNewMessageButton]);
|
|
33309
33318
|
useEffect(function () {
|
|
33310
33319
|
if (scrollToRepliedMessage) {
|
|
33311
|
-
|
|
33320
|
+
loadingRef.current = false;
|
|
33312
33321
|
scrollRef.current.style.scrollBehavior = 'inherit';
|
|
33313
33322
|
var repliedMessage = document.getElementById(scrollToRepliedMessage);
|
|
33314
33323
|
if (repliedMessage) {
|
|
33315
33324
|
setScrollToReply(repliedMessage && repliedMessage.offsetTop - (channel.backToLinkedChannel ? 0 : 200));
|
|
33316
33325
|
scrollRef.current.scrollTo({
|
|
33317
33326
|
top: repliedMessage && repliedMessage.offsetTop - (channel.backToLinkedChannel ? 0 : 200),
|
|
33318
|
-
behavior:
|
|
33327
|
+
behavior: scrollToMessageBehavior
|
|
33319
33328
|
});
|
|
33320
|
-
scrollRef.current.style.scrollBehavior =
|
|
33329
|
+
scrollRef.current.style.scrollBehavior = scrollToMessageBehavior;
|
|
33321
33330
|
if (!channel.backToLinkedChannel && scrollToMessageHighlight) {
|
|
33322
33331
|
repliedMessage && repliedMessage.classList.add('highlight');
|
|
33323
33332
|
}
|
|
@@ -33327,9 +33336,9 @@ var MessageList = function MessageList(_ref2) {
|
|
|
33327
33336
|
var _repliedMessage = document.getElementById(scrollToRepliedMessage);
|
|
33328
33337
|
_repliedMessage && _repliedMessage.classList.remove('highlight');
|
|
33329
33338
|
}
|
|
33330
|
-
|
|
33339
|
+
prevDisableRef.current = false;
|
|
33331
33340
|
setScrollToReply(null);
|
|
33332
|
-
scrollRef.current.style.scrollBehavior = '
|
|
33341
|
+
scrollRef.current.style.scrollBehavior = 'instant';
|
|
33333
33342
|
}, 1000 + positiveValue * 0.1);
|
|
33334
33343
|
}
|
|
33335
33344
|
dispatch(setScrollToMessagesAC(null));
|
|
@@ -33345,15 +33354,15 @@ var MessageList = function MessageList(_ref2) {
|
|
|
33345
33354
|
});
|
|
33346
33355
|
}
|
|
33347
33356
|
} else {
|
|
33348
|
-
|
|
33349
|
-
|
|
33357
|
+
nextDisableRef.current = true;
|
|
33358
|
+
prevDisableRef.current = true;
|
|
33350
33359
|
scrollRef.current.scrollTo({
|
|
33351
33360
|
top: 0,
|
|
33352
33361
|
behavior: 'smooth'
|
|
33353
33362
|
});
|
|
33354
33363
|
dispatch(showScrollToNewMessageButtonAC(false));
|
|
33355
33364
|
setTimeout(function () {
|
|
33356
|
-
|
|
33365
|
+
prevDisableRef.current = false;
|
|
33357
33366
|
}, 800);
|
|
33358
33367
|
}
|
|
33359
33368
|
}
|
|
@@ -33371,11 +33380,18 @@ var MessageList = function MessageList(_ref2) {
|
|
|
33371
33380
|
useEffect(function () {
|
|
33372
33381
|
setHasNextCached(false);
|
|
33373
33382
|
setHasPrevCached(false);
|
|
33383
|
+
messagesIndexMapRef.current = {};
|
|
33384
|
+
loadFromServerRef.current = false;
|
|
33385
|
+
loadDirectionRef.current = '';
|
|
33386
|
+
nextDisableRef.current = false;
|
|
33387
|
+
prevDisableRef.current = false;
|
|
33388
|
+
shouldLoadMessagesRef.current = '';
|
|
33389
|
+
loadingRef.current = false;
|
|
33374
33390
|
if (channel.backToLinkedChannel) {
|
|
33375
33391
|
var visibleMessages = getVisibleMessagesMap();
|
|
33376
33392
|
var visibleMessagesIds = Object.keys(visibleMessages);
|
|
33377
33393
|
var messageId = visibleMessagesIds[visibleMessagesIds.length - 1];
|
|
33378
|
-
dispatch(getMessagesAC(channel, undefined, messageId));
|
|
33394
|
+
dispatch(getMessagesAC(channel, undefined, messageId, undefined, undefined, undefined, 'instant'));
|
|
33379
33395
|
setUnreadMessageId(messageId);
|
|
33380
33396
|
} else {
|
|
33381
33397
|
if (!channel.isLinkedChannel) {
|
|
@@ -33398,9 +33414,9 @@ var MessageList = function MessageList(_ref2) {
|
|
|
33398
33414
|
}
|
|
33399
33415
|
setPreviousScrollTop(0);
|
|
33400
33416
|
setShouldPreserveScroll(false);
|
|
33401
|
-
|
|
33402
|
-
|
|
33403
|
-
|
|
33417
|
+
nextDisableRef.current = false;
|
|
33418
|
+
prevDisableRef.current = false;
|
|
33419
|
+
scrollToBottomRef.current = true;
|
|
33404
33420
|
setAllowEditDeleteIncomingMessage(allowEditDeleteIncomingMessage);
|
|
33405
33421
|
}, [channel.id]);
|
|
33406
33422
|
useEffect(function () {
|
|
@@ -33424,35 +33440,36 @@ var MessageList = function MessageList(_ref2) {
|
|
|
33424
33440
|
setShouldPreserveScroll(true);
|
|
33425
33441
|
}
|
|
33426
33442
|
}
|
|
33427
|
-
if (
|
|
33428
|
-
if (
|
|
33443
|
+
if (loadingRef.current) {
|
|
33444
|
+
if (loadDirectionRef.current !== 'next') {
|
|
33429
33445
|
var lastVisibleMessage = document.getElementById(lastVisibleMessageId);
|
|
33430
33446
|
if (lastVisibleMessage) {
|
|
33431
33447
|
scrollRef.current.style.scrollBehavior = 'inherit';
|
|
33432
33448
|
scrollRef.current.scrollTop = lastVisibleMessage.offsetTop;
|
|
33433
33449
|
scrollRef.current.style.scrollBehavior = 'smooth';
|
|
33434
33450
|
}
|
|
33435
|
-
if (
|
|
33451
|
+
if (loadFromServerRef.current) {
|
|
33436
33452
|
setTimeout(function () {
|
|
33437
|
-
|
|
33438
|
-
|
|
33439
|
-
|
|
33440
|
-
|
|
33453
|
+
loadingRef.current = false;
|
|
33454
|
+
loadFromServerRef.current = false;
|
|
33455
|
+
nextDisableRef.current = false;
|
|
33456
|
+
var currentIndex = messagesIndexMapRef.current[lastVisibleMessageId];
|
|
33457
|
+
if (shouldLoadMessagesRef.current === 'prev' && typeof currentIndex === 'number' && currentIndex < 15) {
|
|
33441
33458
|
handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.PREV, LOAD_MAX_MESSAGE_COUNT);
|
|
33442
33459
|
}
|
|
33443
|
-
if (
|
|
33460
|
+
if (shouldLoadMessagesRef.current === 'next' && typeof currentIndex === 'number' && currentIndex > messages.length - 15) {
|
|
33444
33461
|
handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.NEXT, LOAD_MAX_MESSAGE_COUNT);
|
|
33445
33462
|
}
|
|
33446
33463
|
}, 50);
|
|
33447
33464
|
} else {
|
|
33448
|
-
|
|
33449
|
-
if (
|
|
33465
|
+
loadingRef.current = false;
|
|
33466
|
+
if (shouldLoadMessagesRef.current === 'prev') {
|
|
33450
33467
|
handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.PREV, LOAD_MAX_MESSAGE_COUNT);
|
|
33451
|
-
|
|
33468
|
+
shouldLoadMessagesRef.current = '';
|
|
33452
33469
|
}
|
|
33453
|
-
if (
|
|
33470
|
+
if (shouldLoadMessagesRef.current === 'next') {
|
|
33454
33471
|
handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.NEXT, LOAD_MAX_MESSAGE_COUNT);
|
|
33455
|
-
|
|
33472
|
+
shouldLoadMessagesRef.current = '';
|
|
33456
33473
|
}
|
|
33457
33474
|
}
|
|
33458
33475
|
} else {
|
|
@@ -33462,22 +33479,26 @@ var MessageList = function MessageList(_ref2) {
|
|
|
33462
33479
|
scrollRef.current.scrollTop = _lastVisibleMessage.offsetTop - scrollRef.current.offsetHeight + _lastVisibleMessage.offsetHeight;
|
|
33463
33480
|
scrollRef.current.style.scrollBehavior = 'smooth';
|
|
33464
33481
|
}
|
|
33465
|
-
|
|
33466
|
-
|
|
33467
|
-
if (
|
|
33482
|
+
loadingRef.current = false;
|
|
33483
|
+
prevDisableRef.current = false;
|
|
33484
|
+
if (shouldLoadMessagesRef.current === 'prev') {
|
|
33468
33485
|
handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.PREV, LOAD_MAX_MESSAGE_COUNT);
|
|
33469
|
-
|
|
33486
|
+
shouldLoadMessagesRef.current = '';
|
|
33470
33487
|
}
|
|
33471
|
-
if (
|
|
33488
|
+
if (shouldLoadMessagesRef.current === 'next') {
|
|
33472
33489
|
handleLoadMoreMessages(MESSAGE_LOAD_DIRECTION.NEXT, LOAD_MAX_MESSAGE_COUNT);
|
|
33473
|
-
|
|
33490
|
+
shouldLoadMessagesRef.current = '';
|
|
33474
33491
|
}
|
|
33475
33492
|
}
|
|
33476
33493
|
}
|
|
33477
33494
|
renderTopDate();
|
|
33478
|
-
if (
|
|
33479
|
-
|
|
33480
|
-
|
|
33495
|
+
if (scrollToBottomRef.current) {
|
|
33496
|
+
if (channel.backToLinkedChannel) {
|
|
33497
|
+
dispatch(scrollToNewMessageAC(false));
|
|
33498
|
+
} else {
|
|
33499
|
+
dispatch(scrollToNewMessageAC(true));
|
|
33500
|
+
}
|
|
33501
|
+
scrollToBottomRef.current = false;
|
|
33481
33502
|
}
|
|
33482
33503
|
if (shouldPreserveScroll && scrollRef.current && previousScrollTop > 0) {
|
|
33483
33504
|
requestAnimationFrame(function () {
|
|
@@ -33494,9 +33515,9 @@ var MessageList = function MessageList(_ref2) {
|
|
|
33494
33515
|
useEffect(function () {
|
|
33495
33516
|
log.info('connection status is changed.. .... ', connectionStatus, 'channel ... ', channel);
|
|
33496
33517
|
if (connectionStatus === CONNECTION_STATUS.CONNECTED) {
|
|
33497
|
-
|
|
33498
|
-
|
|
33499
|
-
|
|
33518
|
+
loadingRef.current = false;
|
|
33519
|
+
prevDisableRef.current = false;
|
|
33520
|
+
nextDisableRef.current = false;
|
|
33500
33521
|
clearMessagesMap();
|
|
33501
33522
|
removeAllMessages();
|
|
33502
33523
|
if (channel.id) {
|
|
@@ -33505,7 +33526,8 @@ var MessageList = function MessageList(_ref2) {
|
|
|
33505
33526
|
}
|
|
33506
33527
|
}, [connectionStatus]);
|
|
33507
33528
|
useEffect(function () {
|
|
33508
|
-
|
|
33529
|
+
var unreadScrollTo = getUnreadScrollTo();
|
|
33530
|
+
if (channel.newMessageCount && channel.newMessageCount > 0 && unreadScrollTo) {
|
|
33509
33531
|
if (scrollRef.current) {
|
|
33510
33532
|
scrollRef.current.style.scrollBehavior = 'inherit';
|
|
33511
33533
|
}
|
|
@@ -33518,7 +33540,14 @@ var MessageList = function MessageList(_ref2) {
|
|
|
33518
33540
|
setUnreadScrollTo(false);
|
|
33519
33541
|
}
|
|
33520
33542
|
}
|
|
33521
|
-
});
|
|
33543
|
+
}, [channel.id, channel.newMessageCount, channel.lastDisplayedMessageId]);
|
|
33544
|
+
useEffect(function () {
|
|
33545
|
+
return function () {
|
|
33546
|
+
if (hideTopDateTimeout.current) {
|
|
33547
|
+
clearTimeout(hideTopDateTimeout.current);
|
|
33548
|
+
}
|
|
33549
|
+
};
|
|
33550
|
+
}, []);
|
|
33522
33551
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, isDragging && !(attachmentsPreview !== null && attachmentsPreview !== void 0 && attachmentsPreview.show && mediaFile) && (/*#__PURE__*/React__default.createElement(DragAndDropContainer, {
|
|
33523
33552
|
id: 'draggingContainer',
|
|
33524
33553
|
draggable: true,
|
|
@@ -33561,14 +33590,12 @@ var MessageList = function MessageList(_ref2) {
|
|
|
33561
33590
|
dateDividerBackgroundColor: dateDividerBackgroundColor || overlayBackground,
|
|
33562
33591
|
dateDividerBorderRadius: dateDividerBorderRadius,
|
|
33563
33592
|
topOffset: scrollRef && scrollRef.current && scrollRef.current.offsetTop
|
|
33564
|
-
}, /*#__PURE__*/React__default.createElement("span", {
|
|
33565
|
-
ref: messageTopDateRef
|
|
33566
|
-
}))), /*#__PURE__*/React__default.createElement(Container$h, {
|
|
33593
|
+
}, /*#__PURE__*/React__default.createElement("span", null, topDateLabel))), /*#__PURE__*/React__default.createElement(Container$h, {
|
|
33567
33594
|
id: 'scrollableDiv',
|
|
33568
33595
|
className: isScrolling ? 'show-scrollbar' : '',
|
|
33569
33596
|
ref: scrollRef,
|
|
33570
33597
|
stopScrolling: stopScrolling,
|
|
33571
|
-
onScroll:
|
|
33598
|
+
onScroll: onScroll,
|
|
33572
33599
|
onMouseEnter: function onMouseEnter() {
|
|
33573
33600
|
return setIsScrolling(true);
|
|
33574
33601
|
},
|
|
@@ -33587,8 +33614,10 @@ var MessageList = function MessageList(_ref2) {
|
|
|
33587
33614
|
var prevMessage = messages[index - 1];
|
|
33588
33615
|
var nextMessage = messages[index + 1];
|
|
33589
33616
|
var isUnreadMessage = !!(unreadMessageId && unreadMessageId === message.id && nextMessage) && !channel.backToLinkedChannel;
|
|
33590
|
-
|
|
33591
|
-
return /*#__PURE__*/React__default.createElement(React__default.Fragment,
|
|
33617
|
+
messagesIndexMapRef.current[message.id] = index;
|
|
33618
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, {
|
|
33619
|
+
key: message.id || message.tid
|
|
33620
|
+
}, /*#__PURE__*/React__default.createElement(CreateMessageDateDivider, {
|
|
33592
33621
|
noMargin: !isUnreadMessage && prevMessage && prevMessage.type === 'system' && message.type !== 'system',
|
|
33593
33622
|
theme: theme,
|
|
33594
33623
|
lastIndex: false,
|