sceyt-chat-react-uikit 1.8.5-beta.13 → 1.8.5-beta.14

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.
@@ -44,8 +44,9 @@ export interface UseChatControllerParams {
44
44
  selectedMessagesMap: Map<string, any>;
45
45
  allowEditDeleteIncomingMessage: boolean;
46
46
  dispatch: (...args: any[]) => void;
47
+ tabIsActive?: boolean;
47
48
  }
48
- export declare function useChatController({ messages, channel, hasPrevMessages, hasNextMessages, loadingPrevMessages, loadingNextMessages, connectionStatus, scrollToNewMessage, scrollToMentionedMessage, showScrollToNewMessageButton, unreadScrollTo, unreadMessageId, selectedMessagesMap, allowEditDeleteIncomingMessage, dispatch }: UseChatControllerParams): {
49
+ export declare function useChatController({ messages, channel, hasPrevMessages, hasNextMessages, loadingPrevMessages, loadingNextMessages, connectionStatus, scrollToNewMessage, scrollToMentionedMessage, showScrollToNewMessageButton, unreadScrollTo, unreadMessageId, selectedMessagesMap, allowEditDeleteIncomingMessage, tabIsActive, dispatch }: UseChatControllerParams): {
49
50
  scrollRef: import("react").MutableRefObject<HTMLDivElement | null>;
50
51
  setLastVisibleMessageId: (message: IMessage) => void;
51
52
  handleScrollToRepliedMessage: (itemId: string, smooth?: boolean) => Promise<void>;
package/index.js CHANGED
@@ -12084,6 +12084,8 @@ function updateMessageStatusOnMap(channelId, newMarkers, isOwnMarker) {
12084
12084
  targetIds.forEach(function (messageId) {
12085
12085
  var messageShouldBeUpdated = messagesMap[channelId][messageId];
12086
12086
  if (messageShouldBeUpdated) {
12087
+ var isExplicit = explicitIds.includes(messageId);
12088
+ if (!isExplicit && shouldSkipDeliveryStatusUpdate(newMarkers.name, messageShouldBeUpdated.deliveryStatus)) return;
12087
12089
  var statusUpdatedMessage = updateMessageDeliveryStatusAndMarkers(messageShouldBeUpdated, {
12088
12090
  deliveryStatus: newMarkers.name,
12089
12091
  marker: newMarkers.marker
@@ -12516,6 +12518,7 @@ var messageSlice = createSlice({
12516
12518
  var beforeMax = isForwardMarker && maxMarkerId !== null && !!message.id ? BigInt(message.id) <= maxMarkerId : false;
12517
12519
  if (!inMap && !beforeMax) continue;
12518
12520
  if (message.state !== 'Deleted') {
12521
+ if (!inMap && shouldSkipDeliveryStatusUpdate(markerName, message.deliveryStatus)) continue;
12519
12522
  var statusUpdatedMessage = updateMessageDeliveryStatusAndMarkers(message, {
12520
12523
  deliveryStatus: markerName,
12521
12524
  marker: marker
@@ -15634,7 +15637,7 @@ var getResolvedChannelLastMessage = function getResolvedChannelLastMessage(chann
15634
15637
  };
15635
15638
  function handleChannelMessageEvent(args, SceytChatClient) {
15636
15639
  var _storedChannel$lastMe3, _storedChannel$lastMe4, _store$getState$Messa, _storedChannel$lastMe9, _message$parentMessag;
15637
- var channel, message, messageToHandle, channelFilterTypes, activeChannelId, channelExists, channelForAdd, storedChannel, candidateLastMessage, resolvedLastMessage, shouldUpdateLastMessage, messages, lastMessageIsInActiveWindow, isSameLastMessage, resolvedLastMessageUpdate, _storedChannel$lastMe7, lastMessageIsVisible, messagesHasNext, existingMessage, 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;
15640
+ 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;
15638
15641
  return _regenerator().w(function (_context) {
15639
15642
  while (1) switch (_context.n) {
15640
15643
  case 0:
@@ -15686,7 +15689,7 @@ function handleChannelMessageEvent(args, SceytChatClient) {
15686
15689
  return effects.put(updateChannelLastMessageAC(resolvedLastMessageUpdate, channelForAdd));
15687
15690
  case 4:
15688
15691
  if (!(channel.id === activeChannelId)) {
15689
- _context.n = 9;
15692
+ _context.n = 10;
15690
15693
  break;
15691
15694
  }
15692
15695
  lastMessageIsVisible = storedChannel !== null && storedChannel !== void 0 && (_storedChannel$lastMe7 = storedChannel.lastMessage) !== null && _storedChannel$lastMe7 !== void 0 && _storedChannel$lastMe7.id ? Object.values(getVisibleMessagesMap()).some(function (visibleMessage) {
@@ -15695,7 +15698,7 @@ function handleChannelMessageEvent(args, SceytChatClient) {
15695
15698
  }) : false;
15696
15699
  messagesHasNext = store.getState().MessageReducer.messagesHasNext;
15697
15700
  if (!(!messagesHasNext && lastMessageIsInActiveWindow || !messages.length || !messages)) {
15698
- _context.n = 9;
15701
+ _context.n = 10;
15699
15702
  break;
15700
15703
  }
15701
15704
  existingMessage = store.getState().MessageReducer.activeChannelMessages.find(function (m) {
@@ -15721,10 +15724,16 @@ function handleChannelMessageEvent(args, SceytChatClient) {
15721
15724
  _context.n = 8;
15722
15725
  return effects.put(loadOGMetadataForLinkAC([message], true));
15723
15726
  case 8:
15724
- if (lastMessageIsVisible) {
15725
- navigateToLatest(true);
15726
- }
15727
+ _context.n = 9;
15728
+ return effects.select(browserTabIsActiveSelector);
15727
15729
  case 9:
15730
+ tabIsActive = _context.v;
15731
+ if (lastMessageIsVisible && tabIsActive) {
15732
+ setTimeout(function () {
15733
+ navigateToLatest(true);
15734
+ }, 50);
15735
+ }
15736
+ case 10:
15728
15737
  addMessageToMap(channel.id, message);
15729
15738
  channelDataUpdate = _extends({
15730
15739
  messageCount: channelForAdd.messageCount,
@@ -15745,33 +15754,33 @@ function handleChannelMessageEvent(args, SceytChatClient) {
15745
15754
  if (storedChannel !== null && storedChannel !== void 0 && (_storedChannel$lastMe9 = storedChannel.lastMessage) !== null && _storedChannel$lastMe9 !== void 0 && _storedChannel$lastMe9.id) {
15746
15755
  appendMessageToLatestSegment(channel.id, message.id, storedChannel.lastMessage.id);
15747
15756
  }
15748
- _context.n = 10;
15757
+ _context.n = 11;
15749
15758
  return effects.put(updateChannelDataAC(channel.id, channelDataUpdate));
15750
- case 10:
15759
+ case 11:
15751
15760
  groupName = getChannelGroupName(channel);
15752
- _context.n = 11;
15761
+ _context.n = 12;
15753
15762
  return effects.put(updateSearchedChannelDataAC(channel.id, channelDataUpdate, groupName));
15754
- case 11:
15763
+ case 12:
15755
15764
  showNotifications = getShowNotifications();
15756
15765
  if (!(showNotifications && !message.silent && message.user.id !== SceytChatClient.user.id && !channel.muted)) {
15757
- _context.n = 14;
15766
+ _context.n = 15;
15758
15767
  break;
15759
15768
  }
15760
15769
  if (!(Notification.permission === 'granted')) {
15761
- _context.n = 14;
15770
+ _context.n = 15;
15762
15771
  break;
15763
15772
  }
15764
- _context.n = 12;
15773
+ _context.n = 13;
15765
15774
  return effects.select(browserTabIsActiveSelector);
15766
- case 12:
15767
- tabIsActive = _context.v;
15768
- if (!(document.visibilityState !== 'visible' || !tabIsActive || channel.id !== activeChannelId)) {
15769
- _context.n = 14;
15775
+ case 13:
15776
+ _tabIsActive = _context.v;
15777
+ if (!(document.visibilityState !== 'visible' || !_tabIsActive || channel.id !== activeChannelId)) {
15778
+ _context.n = 15;
15770
15779
  break;
15771
15780
  }
15772
- _context.n = 13;
15781
+ _context.n = 14;
15773
15782
  return effects.select(contactsMapSelector);
15774
- case 13:
15783
+ case 14:
15775
15784
  contactsMap = _context.v;
15776
15785
  getFromContacts = getShowOnlyContactUsers();
15777
15786
  state = store.getState();
@@ -15791,25 +15800,25 @@ function handleChannelMessageEvent(args, SceytChatClient) {
15791
15800
  setNotification((message === null || message === void 0 ? void 0 : message.type) === exports.MESSAGE_TYPE.VIEW_ONCE ? "Self-destructing" : messageBody, message.user, channel, undefined, message.attachments && message.attachments.length ? message.attachments.find(function (att) {
15792
15801
  return att.type !== attachmentTypes.link;
15793
15802
  }) : undefined);
15794
- case 14:
15803
+ case 15:
15795
15804
  if (!(message.repliedInThread && (_message$parentMessag = message.parentMessage) !== null && _message$parentMessag !== void 0 && _message$parentMessag.id)) {
15796
- _context.n = 16;
15805
+ _context.n = 17;
15797
15806
  break;
15798
15807
  }
15799
- _context.n = 15;
15808
+ _context.n = 16;
15800
15809
  return effects.put(markMessagesAsDeliveredAC(message.parentMessage.id, [message.id]));
15801
- case 15:
15802
- _context.n = 17;
15803
- break;
15804
15810
  case 16:
15805
- _context.n = 17;
15806
- return effects.put(markMessagesAsDeliveredAC(channel.id, [message.id]));
15811
+ _context.n = 18;
15812
+ break;
15807
15813
  case 17:
15814
+ _context.n = 18;
15815
+ return effects.put(markMessagesAsDeliveredAC(channel.id, [message.id]));
15816
+ case 18:
15808
15817
  updateChannelOnAllChannels(channel.id, channelDataUpdate);
15809
15818
  if (shouldUpdateLastMessage) {
15810
15819
  updateChannelLastMessageOnAllChannels(channel.id, resolvedLastMessageUpdate);
15811
15820
  }
15812
- case 18:
15821
+ case 19:
15813
15822
  return _context.a(2);
15814
15823
  }
15815
15824
  }, _marked$1);
@@ -42741,7 +42750,8 @@ var Message$1 = function Message(_ref) {
42741
42750
  selectedMessagesMap = _ref.selectedMessagesMap,
42742
42751
  contactsMap = _ref.contactsMap,
42743
42752
  openedMessageMenuId = _ref.openedMessageMenuId,
42744
- tabIsActive = _ref.tabIsActive,
42753
+ _ref$tabIsActive = _ref.tabIsActive,
42754
+ tabIsActive = _ref$tabIsActive === void 0 ? true : _ref$tabIsActive,
42745
42755
  connectionStatus = _ref.connectionStatus,
42746
42756
  messageTextFontSize = _ref.messageTextFontSize,
42747
42757
  messageTextLineHeight = _ref.messageTextLineHeight,
@@ -42996,14 +43006,14 @@ var Message$1 = function Message(_ref) {
42996
43006
  }
42997
43007
  if (isVisible && message.incoming && !(message.userMarkers && message.userMarkers.length && message.userMarkers.find(function (marker) {
42998
43008
  return marker.name === MESSAGE_DELIVERY_STATUS.READ;
42999
- })) && !disableAutoReadTracking && channel.newMessageCount && channel.newMessageCount > 0 && connectionStatus === CONNECTION_STATUS.CONNECTED) {
43009
+ })) && !disableAutoReadTracking && tabIsActive && channel.newMessageCount && channel.newMessageCount > 0 && connectionStatus === CONNECTION_STATUS.CONNECTED) {
43000
43010
  if (queueReadMarker) {
43001
43011
  queueReadMarker(channel.id, message.id);
43002
43012
  } else {
43003
43013
  dispatch(markMessagesAsReadAC(channel.id, [message.id]));
43004
43014
  }
43005
43015
  }
43006
- }, [dispatch, message.incoming, message.userMarkers, message.id, isVisible, channel.id, channel.newMessageCount, connectionStatus, queueReadMarker, queueDeliveredMarker, disableAutoReadTracking]);
43016
+ }, [dispatch, message.incoming, message.userMarkers, message.id, isVisible, channel.id, channel.newMessageCount, connectionStatus, queueReadMarker, queueDeliveredMarker, disableAutoReadTracking, tabIsActive]);
43007
43017
  var handleForwardMessage = React.useCallback(function (channelIds) {
43008
43018
  if (channelIds && channelIds.length) {
43009
43019
  channelIds.forEach(function (channelId) {
@@ -43057,22 +43067,17 @@ var Message$1 = function Message(_ref) {
43057
43067
  removeMessageFromVisibleMessagesMap(message);
43058
43068
  }
43059
43069
  }
43060
- }, [isVisible, setLastVisibleMessageId, message.id, handleSendReadMarker, channel.isLinkedChannel, channel.lastMessage, scrollToNewMessage.scrollToBottom, dispatch, message]);
43070
+ }, [isVisible, setLastVisibleMessageId, message.id, handleSendReadMarker, channel.isLinkedChannel, channel.lastMessage, scrollToNewMessage.scrollToBottom, dispatch, message, tabIsActive]);
43061
43071
  React.useEffect(function () {
43062
43072
  if (!isVisible && infoPopupOpen) {
43063
43073
  setInfoPopupOpen(false);
43064
43074
  }
43065
43075
  }, [isVisible, infoPopupOpen]);
43066
- useDidUpdate(function () {
43067
- if (tabIsActive) {
43068
- handleSendReadMarker();
43069
- }
43070
- }, [tabIsActive]);
43071
43076
  useDidUpdate(function () {
43072
43077
  if (connectionStatus === CONNECTION_STATUS.CONNECTED) {
43073
43078
  handleSendReadMarker();
43074
43079
  }
43075
- }, [connectionStatus]);
43080
+ }, [connectionStatus, handleSendReadMarker]);
43076
43081
  React.useEffect(function () {
43077
43082
  if (emojisPopupOpen) {
43078
43083
  var bottomPos = messageItemRef.current ? messageItemRef.current.getBoundingClientRect().bottom : 0;
@@ -43672,6 +43677,8 @@ function useChatController(_ref3) {
43672
43677
  unreadMessageId = _ref3.unreadMessageId,
43673
43678
  selectedMessagesMap = _ref3.selectedMessagesMap,
43674
43679
  allowEditDeleteIncomingMessage = _ref3.allowEditDeleteIncomingMessage,
43680
+ _ref3$tabIsActive = _ref3.tabIsActive,
43681
+ tabIsActive = _ref3$tabIsActive === void 0 ? true : _ref3$tabIsActive,
43675
43682
  dispatch = _ref3.dispatch;
43676
43683
  var scrollRef = React.useRef(null);
43677
43684
  var itemElementsRef = React.useRef(new Map());
@@ -43944,7 +43951,7 @@ function useChatController(_ref3) {
43944
43951
  }, lockDuration);
43945
43952
  }, [clearJumpScrollingLock]);
43946
43953
  var queueVisibleUnreadCheck = React.useCallback(function () {
43947
- if (pendingVisibleUnreadFrameRef.current !== null || unreadScrollTo) {
43954
+ if (pendingVisibleUnreadFrameRef.current !== null || unreadScrollTo || !tabIsActive) {
43948
43955
  return;
43949
43956
  }
43950
43957
  pendingVisibleUnreadFrameRef.current = requestAnimationFrame(function () {
@@ -43988,7 +43995,7 @@ function useChatController(_ref3) {
43988
43995
  registerLocallyReadUnreadMessages(ids.length);
43989
43996
  dispatch(markMessagesAsReadAC(channel.id, ids));
43990
43997
  });
43991
- }, [channel.id, channel.lastDisplayedMessageId, channel.newMessageCount, dispatch, hasNext, messages, registerLocallyReadUnreadMessages, unreadScrollTo]);
43998
+ }, [channel.id, channel.lastDisplayedMessageId, channel.newMessageCount, dispatch, hasNext, messages, registerLocallyReadUnreadMessages, unreadScrollTo, tabIsActive]);
43992
43999
  var timelineItems = React.useMemo(function () {
43993
44000
  var unreadStartIndex = getUnreadDividerIndex(messages, unreadMessageId);
43994
44001
  return messages.flatMap(function (message, index) {
@@ -45786,7 +45793,8 @@ var MessageList = function MessageList(_ref) {
45786
45793
  unreadMessageId: unreadMessageId,
45787
45794
  selectedMessagesMap: selectedMessagesMap,
45788
45795
  allowEditDeleteIncomingMessage: allowEditDeleteIncomingMessage,
45789
- dispatch: dispatch
45796
+ dispatch: dispatch,
45797
+ tabIsActive: browserTabIsActive
45790
45798
  }),
45791
45799
  scrollRef = _useChatController.scrollRef,
45792
45800
  setLastVisibleMessageId = _useChatController.setLastVisibleMessageId,
package/index.modern.js CHANGED
@@ -12083,6 +12083,8 @@ function updateMessageStatusOnMap(channelId, newMarkers, isOwnMarker) {
12083
12083
  targetIds.forEach(function (messageId) {
12084
12084
  var messageShouldBeUpdated = messagesMap[channelId][messageId];
12085
12085
  if (messageShouldBeUpdated) {
12086
+ var isExplicit = explicitIds.includes(messageId);
12087
+ if (!isExplicit && shouldSkipDeliveryStatusUpdate(newMarkers.name, messageShouldBeUpdated.deliveryStatus)) return;
12086
12088
  var statusUpdatedMessage = updateMessageDeliveryStatusAndMarkers(messageShouldBeUpdated, {
12087
12089
  deliveryStatus: newMarkers.name,
12088
12090
  marker: newMarkers.marker
@@ -12515,6 +12517,7 @@ var messageSlice = createSlice({
12515
12517
  var beforeMax = isForwardMarker && maxMarkerId !== null && !!message.id ? BigInt(message.id) <= maxMarkerId : false;
12516
12518
  if (!inMap && !beforeMax) continue;
12517
12519
  if (message.state !== 'Deleted') {
12520
+ if (!inMap && shouldSkipDeliveryStatusUpdate(markerName, message.deliveryStatus)) continue;
12518
12521
  var statusUpdatedMessage = updateMessageDeliveryStatusAndMarkers(message, {
12519
12522
  deliveryStatus: markerName,
12520
12523
  marker: marker
@@ -15633,7 +15636,7 @@ var getResolvedChannelLastMessage = function getResolvedChannelLastMessage(chann
15633
15636
  };
15634
15637
  function handleChannelMessageEvent(args, SceytChatClient) {
15635
15638
  var _storedChannel$lastMe3, _storedChannel$lastMe4, _store$getState$Messa, _storedChannel$lastMe9, _message$parentMessag;
15636
- var channel, message, messageToHandle, channelFilterTypes, activeChannelId, channelExists, channelForAdd, storedChannel, candidateLastMessage, resolvedLastMessage, shouldUpdateLastMessage, messages, lastMessageIsInActiveWindow, isSameLastMessage, resolvedLastMessageUpdate, _storedChannel$lastMe7, lastMessageIsVisible, messagesHasNext, existingMessage, 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;
15639
+ 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;
15637
15640
  return _regenerator().w(function (_context) {
15638
15641
  while (1) switch (_context.n) {
15639
15642
  case 0:
@@ -15685,7 +15688,7 @@ function handleChannelMessageEvent(args, SceytChatClient) {
15685
15688
  return put(updateChannelLastMessageAC(resolvedLastMessageUpdate, channelForAdd));
15686
15689
  case 4:
15687
15690
  if (!(channel.id === activeChannelId)) {
15688
- _context.n = 9;
15691
+ _context.n = 10;
15689
15692
  break;
15690
15693
  }
15691
15694
  lastMessageIsVisible = storedChannel !== null && storedChannel !== void 0 && (_storedChannel$lastMe7 = storedChannel.lastMessage) !== null && _storedChannel$lastMe7 !== void 0 && _storedChannel$lastMe7.id ? Object.values(getVisibleMessagesMap()).some(function (visibleMessage) {
@@ -15694,7 +15697,7 @@ function handleChannelMessageEvent(args, SceytChatClient) {
15694
15697
  }) : false;
15695
15698
  messagesHasNext = store.getState().MessageReducer.messagesHasNext;
15696
15699
  if (!(!messagesHasNext && lastMessageIsInActiveWindow || !messages.length || !messages)) {
15697
- _context.n = 9;
15700
+ _context.n = 10;
15698
15701
  break;
15699
15702
  }
15700
15703
  existingMessage = store.getState().MessageReducer.activeChannelMessages.find(function (m) {
@@ -15720,10 +15723,16 @@ function handleChannelMessageEvent(args, SceytChatClient) {
15720
15723
  _context.n = 8;
15721
15724
  return put(loadOGMetadataForLinkAC([message], true));
15722
15725
  case 8:
15723
- if (lastMessageIsVisible) {
15724
- navigateToLatest(true);
15725
- }
15726
+ _context.n = 9;
15727
+ return select(browserTabIsActiveSelector);
15726
15728
  case 9:
15729
+ tabIsActive = _context.v;
15730
+ if (lastMessageIsVisible && tabIsActive) {
15731
+ setTimeout(function () {
15732
+ navigateToLatest(true);
15733
+ }, 50);
15734
+ }
15735
+ case 10:
15727
15736
  addMessageToMap(channel.id, message);
15728
15737
  channelDataUpdate = _extends({
15729
15738
  messageCount: channelForAdd.messageCount,
@@ -15744,33 +15753,33 @@ function handleChannelMessageEvent(args, SceytChatClient) {
15744
15753
  if (storedChannel !== null && storedChannel !== void 0 && (_storedChannel$lastMe9 = storedChannel.lastMessage) !== null && _storedChannel$lastMe9 !== void 0 && _storedChannel$lastMe9.id) {
15745
15754
  appendMessageToLatestSegment(channel.id, message.id, storedChannel.lastMessage.id);
15746
15755
  }
15747
- _context.n = 10;
15756
+ _context.n = 11;
15748
15757
  return put(updateChannelDataAC(channel.id, channelDataUpdate));
15749
- case 10:
15758
+ case 11:
15750
15759
  groupName = getChannelGroupName(channel);
15751
- _context.n = 11;
15760
+ _context.n = 12;
15752
15761
  return put(updateSearchedChannelDataAC(channel.id, channelDataUpdate, groupName));
15753
- case 11:
15762
+ case 12:
15754
15763
  showNotifications = getShowNotifications();
15755
15764
  if (!(showNotifications && !message.silent && message.user.id !== SceytChatClient.user.id && !channel.muted)) {
15756
- _context.n = 14;
15765
+ _context.n = 15;
15757
15766
  break;
15758
15767
  }
15759
15768
  if (!(Notification.permission === 'granted')) {
15760
- _context.n = 14;
15769
+ _context.n = 15;
15761
15770
  break;
15762
15771
  }
15763
- _context.n = 12;
15772
+ _context.n = 13;
15764
15773
  return select(browserTabIsActiveSelector);
15765
- case 12:
15766
- tabIsActive = _context.v;
15767
- if (!(document.visibilityState !== 'visible' || !tabIsActive || channel.id !== activeChannelId)) {
15768
- _context.n = 14;
15774
+ case 13:
15775
+ _tabIsActive = _context.v;
15776
+ if (!(document.visibilityState !== 'visible' || !_tabIsActive || channel.id !== activeChannelId)) {
15777
+ _context.n = 15;
15769
15778
  break;
15770
15779
  }
15771
- _context.n = 13;
15780
+ _context.n = 14;
15772
15781
  return select(contactsMapSelector);
15773
- case 13:
15782
+ case 14:
15774
15783
  contactsMap = _context.v;
15775
15784
  getFromContacts = getShowOnlyContactUsers();
15776
15785
  state = store.getState();
@@ -15790,25 +15799,25 @@ function handleChannelMessageEvent(args, SceytChatClient) {
15790
15799
  setNotification((message === null || message === void 0 ? void 0 : message.type) === MESSAGE_TYPE.VIEW_ONCE ? "Self-destructing" : messageBody, message.user, channel, undefined, message.attachments && message.attachments.length ? message.attachments.find(function (att) {
15791
15800
  return att.type !== attachmentTypes.link;
15792
15801
  }) : undefined);
15793
- case 14:
15802
+ case 15:
15794
15803
  if (!(message.repliedInThread && (_message$parentMessag = message.parentMessage) !== null && _message$parentMessag !== void 0 && _message$parentMessag.id)) {
15795
- _context.n = 16;
15804
+ _context.n = 17;
15796
15805
  break;
15797
15806
  }
15798
- _context.n = 15;
15807
+ _context.n = 16;
15799
15808
  return put(markMessagesAsDeliveredAC(message.parentMessage.id, [message.id]));
15800
- case 15:
15801
- _context.n = 17;
15802
- break;
15803
15809
  case 16:
15804
- _context.n = 17;
15805
- return put(markMessagesAsDeliveredAC(channel.id, [message.id]));
15810
+ _context.n = 18;
15811
+ break;
15806
15812
  case 17:
15813
+ _context.n = 18;
15814
+ return put(markMessagesAsDeliveredAC(channel.id, [message.id]));
15815
+ case 18:
15807
15816
  updateChannelOnAllChannels(channel.id, channelDataUpdate);
15808
15817
  if (shouldUpdateLastMessage) {
15809
15818
  updateChannelLastMessageOnAllChannels(channel.id, resolvedLastMessageUpdate);
15810
15819
  }
15811
- case 18:
15820
+ case 19:
15812
15821
  return _context.a(2);
15813
15822
  }
15814
15823
  }, _marked$1);
@@ -42740,7 +42749,8 @@ var Message$1 = function Message(_ref) {
42740
42749
  selectedMessagesMap = _ref.selectedMessagesMap,
42741
42750
  contactsMap = _ref.contactsMap,
42742
42751
  openedMessageMenuId = _ref.openedMessageMenuId,
42743
- tabIsActive = _ref.tabIsActive,
42752
+ _ref$tabIsActive = _ref.tabIsActive,
42753
+ tabIsActive = _ref$tabIsActive === void 0 ? true : _ref$tabIsActive,
42744
42754
  connectionStatus = _ref.connectionStatus,
42745
42755
  messageTextFontSize = _ref.messageTextFontSize,
42746
42756
  messageTextLineHeight = _ref.messageTextLineHeight,
@@ -42995,14 +43005,14 @@ var Message$1 = function Message(_ref) {
42995
43005
  }
42996
43006
  if (isVisible && message.incoming && !(message.userMarkers && message.userMarkers.length && message.userMarkers.find(function (marker) {
42997
43007
  return marker.name === MESSAGE_DELIVERY_STATUS.READ;
42998
- })) && !disableAutoReadTracking && channel.newMessageCount && channel.newMessageCount > 0 && connectionStatus === CONNECTION_STATUS.CONNECTED) {
43008
+ })) && !disableAutoReadTracking && tabIsActive && channel.newMessageCount && channel.newMessageCount > 0 && connectionStatus === CONNECTION_STATUS.CONNECTED) {
42999
43009
  if (queueReadMarker) {
43000
43010
  queueReadMarker(channel.id, message.id);
43001
43011
  } else {
43002
43012
  dispatch(markMessagesAsReadAC(channel.id, [message.id]));
43003
43013
  }
43004
43014
  }
43005
- }, [dispatch, message.incoming, message.userMarkers, message.id, isVisible, channel.id, channel.newMessageCount, connectionStatus, queueReadMarker, queueDeliveredMarker, disableAutoReadTracking]);
43015
+ }, [dispatch, message.incoming, message.userMarkers, message.id, isVisible, channel.id, channel.newMessageCount, connectionStatus, queueReadMarker, queueDeliveredMarker, disableAutoReadTracking, tabIsActive]);
43006
43016
  var handleForwardMessage = useCallback(function (channelIds) {
43007
43017
  if (channelIds && channelIds.length) {
43008
43018
  channelIds.forEach(function (channelId) {
@@ -43056,22 +43066,17 @@ var Message$1 = function Message(_ref) {
43056
43066
  removeMessageFromVisibleMessagesMap(message);
43057
43067
  }
43058
43068
  }
43059
- }, [isVisible, setLastVisibleMessageId, message.id, handleSendReadMarker, channel.isLinkedChannel, channel.lastMessage, scrollToNewMessage.scrollToBottom, dispatch, message]);
43069
+ }, [isVisible, setLastVisibleMessageId, message.id, handleSendReadMarker, channel.isLinkedChannel, channel.lastMessage, scrollToNewMessage.scrollToBottom, dispatch, message, tabIsActive]);
43060
43070
  useEffect(function () {
43061
43071
  if (!isVisible && infoPopupOpen) {
43062
43072
  setInfoPopupOpen(false);
43063
43073
  }
43064
43074
  }, [isVisible, infoPopupOpen]);
43065
- useDidUpdate(function () {
43066
- if (tabIsActive) {
43067
- handleSendReadMarker();
43068
- }
43069
- }, [tabIsActive]);
43070
43075
  useDidUpdate(function () {
43071
43076
  if (connectionStatus === CONNECTION_STATUS.CONNECTED) {
43072
43077
  handleSendReadMarker();
43073
43078
  }
43074
- }, [connectionStatus]);
43079
+ }, [connectionStatus, handleSendReadMarker]);
43075
43080
  useEffect(function () {
43076
43081
  if (emojisPopupOpen) {
43077
43082
  var bottomPos = messageItemRef.current ? messageItemRef.current.getBoundingClientRect().bottom : 0;
@@ -43671,6 +43676,8 @@ function useChatController(_ref3) {
43671
43676
  unreadMessageId = _ref3.unreadMessageId,
43672
43677
  selectedMessagesMap = _ref3.selectedMessagesMap,
43673
43678
  allowEditDeleteIncomingMessage = _ref3.allowEditDeleteIncomingMessage,
43679
+ _ref3$tabIsActive = _ref3.tabIsActive,
43680
+ tabIsActive = _ref3$tabIsActive === void 0 ? true : _ref3$tabIsActive,
43674
43681
  dispatch = _ref3.dispatch;
43675
43682
  var scrollRef = useRef(null);
43676
43683
  var itemElementsRef = useRef(new Map());
@@ -43943,7 +43950,7 @@ function useChatController(_ref3) {
43943
43950
  }, lockDuration);
43944
43951
  }, [clearJumpScrollingLock]);
43945
43952
  var queueVisibleUnreadCheck = useCallback(function () {
43946
- if (pendingVisibleUnreadFrameRef.current !== null || unreadScrollTo) {
43953
+ if (pendingVisibleUnreadFrameRef.current !== null || unreadScrollTo || !tabIsActive) {
43947
43954
  return;
43948
43955
  }
43949
43956
  pendingVisibleUnreadFrameRef.current = requestAnimationFrame(function () {
@@ -43987,7 +43994,7 @@ function useChatController(_ref3) {
43987
43994
  registerLocallyReadUnreadMessages(ids.length);
43988
43995
  dispatch(markMessagesAsReadAC(channel.id, ids));
43989
43996
  });
43990
- }, [channel.id, channel.lastDisplayedMessageId, channel.newMessageCount, dispatch, hasNext, messages, registerLocallyReadUnreadMessages, unreadScrollTo]);
43997
+ }, [channel.id, channel.lastDisplayedMessageId, channel.newMessageCount, dispatch, hasNext, messages, registerLocallyReadUnreadMessages, unreadScrollTo, tabIsActive]);
43991
43998
  var timelineItems = useMemo(function () {
43992
43999
  var unreadStartIndex = getUnreadDividerIndex(messages, unreadMessageId);
43993
44000
  return messages.flatMap(function (message, index) {
@@ -45785,7 +45792,8 @@ var MessageList = function MessageList(_ref) {
45785
45792
  unreadMessageId: unreadMessageId,
45786
45793
  selectedMessagesMap: selectedMessagesMap,
45787
45794
  allowEditDeleteIncomingMessage: allowEditDeleteIncomingMessage,
45788
- dispatch: dispatch
45795
+ dispatch: dispatch,
45796
+ tabIsActive: browserTabIsActive
45789
45797
  }),
45790
45798
  scrollRef = _useChatController.scrollRef,
45791
45799
  setLastVisibleMessageId = _useChatController.setLastVisibleMessageId,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sceyt-chat-react-uikit",
3
- "version": "1.8.5-beta.13",
3
+ "version": "1.8.5-beta.14",
4
4
  "description": "Interactive React UI Components for Sceyt Chat.",
5
5
  "author": "Sceyt",
6
6
  "license": "MIT",