sceyt-chat-react-uikit 1.7.7-beta.11 → 1.7.7-beta.13

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.
@@ -15,8 +15,9 @@ interface ISystemMessageProps {
15
15
  backgroundColor?: string;
16
16
  borderRadius?: string;
17
17
  tabIsActive?: boolean;
18
+ setLastVisibleMessageId?: (messageId: string) => void;
18
19
  }
19
- declare const _default: React.MemoExoticComponent<({ message, nextMessage, connectionStatus, channel, tabIsActive, differentUserMessageSpacing, fontSize, textColor, border, backgroundColor, borderRadius, contactsMap }: ISystemMessageProps) => React.JSX.Element>;
20
+ declare const _default: React.MemoExoticComponent<({ message, nextMessage, connectionStatus, channel, tabIsActive, differentUserMessageSpacing, fontSize, textColor, border, backgroundColor, borderRadius, contactsMap, setLastVisibleMessageId }: ISystemMessageProps) => React.JSX.Element>;
20
21
  export default _default;
21
22
  export declare const Container: import("styled-components").StyledComponent<"div", any, {
22
23
  topOffset?: number | undefined;
package/index.js CHANGED
@@ -18851,7 +18851,7 @@ var addPendingMessage = function addPendingMessage(message, messageCopy, channel
18851
18851
  }
18852
18852
  };
18853
18853
  function sendMessage(action) {
18854
- var payload, message, connectionState, channelId, sendAttachmentsAsSeparateMessage, isAddToPendingMessagesMap, pendingMessages, channel, SceytChatClient, createChannelData, mentionedUserIds, customUploader, linkAttachment, attachmentsToSend, messagesToSend, mediaAttachments, _loop, i, messageBuilder, messageToSend, messageCopy, _loop2, _i, _t2;
18854
+ var payload, message, connectionState, channelId, sendAttachmentsAsSeparateMessage, isAddToPendingMessagesMap, pendingMessages, channel, SceytChatClient, createChannelData, mentionedUserIds, customUploader, linkAttachment, attachmentsToSend, messagesToSend, mediaAttachments, _loop, i, messageBuilder, messageToSend, _loop2, _i, _t2;
18855
18855
  return _regenerator().w(function (_context3) {
18856
18856
  while (1) switch (_context3.p = _context3.n) {
18857
18857
  case 0:
@@ -19022,10 +19022,7 @@ function sendMessage(action) {
19022
19022
  messageBuilder.setReplyInThread();
19023
19023
  }
19024
19024
  messageToSend = action.type === RESEND_MESSAGE ? action.payload.message : messageBuilder.create();
19025
- messageCopy = _extends({}, messageToSend, {
19026
- createdAt: new Date(Date.now())
19027
- });
19028
- pendingMessages.push(_extends({}, messageCopy, {
19025
+ pendingMessages.push(_extends({}, messageToSend, {
19029
19026
  attachments: message.attachments
19030
19027
  }));
19031
19028
  messageToSend = _extends({}, messageToSend, {
@@ -19035,22 +19032,28 @@ function sendMessage(action) {
19035
19032
  }
19036
19033
  case 11:
19037
19034
  _loop2 = /*#__PURE__*/_regenerator().m(function _callee2() {
19038
- var messageAttachment, messageToSend, _messageCopy, activeChannelId, _attachmentsToSend, linkAttachmentToSend, linkAttachmentBuilder, messageResponse, k, pendingAttachment, attachmentsToUpdate, currentAttachmentsMap, messageUpdateData, messageToUpdate, channelUpdateParam, pendingMessage, _t;
19035
+ var messageAttachment, messageToSend, messageCopy, activeChannelId, _attachmentsToSend, linkAttachmentToSend, linkAttachmentBuilder, messageResponse, k, pendingAttachment, attachmentsToUpdate, currentAttachmentsMap, messageUpdateData, messageToUpdate, channelUpdateParam, pendingMessage, _t;
19039
19036
  return _regenerator().w(function (_context2) {
19040
19037
  while (1) switch (_context2.p = _context2.n) {
19041
19038
  case 0:
19042
19039
  messageAttachment = messagesToSend[_i].attachments;
19043
19040
  messageToSend = messagesToSend[_i];
19044
19041
  _context2.p = 1;
19045
- _messageCopy = JSON.parse(JSON.stringify(messagesToSend[_i]));
19042
+ messageCopy = JSON.parse(JSON.stringify(messagesToSend[_i]));
19046
19043
  activeChannelId = getActiveChannelId();
19047
19044
  if (action.type !== RESEND_MESSAGE) {
19048
- addMessageToMap(channel.id, messageToSend);
19045
+ addMessageToMap(channel.id, _extends({}, messageToSend, {
19046
+ createdAt: new Date(Date.now())
19047
+ }));
19049
19048
  if (activeChannelId === channel.id) {
19050
- addAllMessages([messageToSend], MESSAGE_LOAD_DIRECTION.NEXT);
19049
+ addAllMessages([_extends({}, messageToSend, {
19050
+ createdAt: new Date(Date.now())
19051
+ })], MESSAGE_LOAD_DIRECTION.NEXT);
19051
19052
  }
19052
19053
  if (activeChannelId === channel.id) {
19053
- store.dispatch(addMessageAC(messageToSend));
19054
+ store.dispatch(addMessageAC(_extends({}, messageToSend, {
19055
+ createdAt: new Date(Date.now())
19056
+ })));
19054
19057
  }
19055
19058
  store.dispatch(scrollToNewMessageAC(true));
19056
19059
  }
@@ -19064,7 +19067,7 @@ function sendMessage(action) {
19064
19067
  break;
19065
19068
  }
19066
19069
  _context2.n = 2;
19067
- return effects.call(handleUploadAttachments, messageAttachment || [], _messageCopy, channel);
19070
+ return effects.call(handleUploadAttachments, messageAttachment || [], messageCopy, channel);
19068
19071
  case 2:
19069
19072
  _attachmentsToSend = _context2.v;
19070
19073
  case 3:
@@ -19250,7 +19253,7 @@ function sendMessage(action) {
19250
19253
  }, _marked$3, null, [[1, 15]]);
19251
19254
  }
19252
19255
  function sendTextMessage(action) {
19253
- var payload, message, connectionState, channelId, isAddToPendingMessagesMap, channel, sendMessageTid, pendingMessage, activeChannelId, SceytChatClient, createChannelData, mentionedUserIds, attachments, attachmentBuilder, att, messageBuilder, messageToSend, _activeChannelId, _messageResponse, messageResponse, messageUpdateData, messageToUpdate, channelUpdateParam, _t3;
19256
+ var payload, message, connectionState, channelId, isAddToPendingMessagesMap, channel, sendMessageTid, pendingMessage, activeChannelId, SceytChatClient, createChannelData, mentionedUserIds, attachments, attachmentBuilder, att, messageBuilder, createdMessage, messageToSend, _activeChannelId, _messageResponse, messageResponse, messageUpdateData, messageToUpdate, channelUpdateParam, _t3;
19254
19257
  return _regenerator().w(function (_context4) {
19255
19258
  while (1) switch (_context4.p = _context4.n) {
19256
19259
  case 0:
@@ -19313,13 +19316,15 @@ function sendTextMessage(action) {
19313
19316
  if (message.repliedInThread) {
19314
19317
  messageBuilder.setReplyInThread();
19315
19318
  }
19316
- messageToSend = action.type === RESEND_MESSAGE ? action.payload.message : messageBuilder.create();
19317
- pendingMessage = JSON.parse(JSON.stringify(_extends({}, messageToSend, {
19318
- attachments: message === null || message === void 0 ? void 0 : message.attachments,
19319
+ createdMessage = action.type === RESEND_MESSAGE ? action.payload.message : messageBuilder.create();
19320
+ messageToSend = _extends({}, createdMessage, action.type === RESEND_MESSAGE ? {
19321
+ attachments: message === null || message === void 0 ? void 0 : message.attachments
19322
+ } : {});
19323
+ pendingMessage = _extends({}, messageToSend, {
19319
19324
  createdAt: new Date(Date.now()),
19320
19325
  mentionedUsers: message.mentionedUsers,
19321
19326
  parentMessage: message.parentMessage
19322
- })));
19327
+ });
19323
19328
  sendMessageTid = messageToSend.tid;
19324
19329
  if (pendingMessage && pendingMessage.metadata) {
19325
19330
  pendingMessage.metadata = JSON.parse(pendingMessage.metadata);
@@ -29269,7 +29274,8 @@ var Message = function Message(_ref) {
29269
29274
  border = _ref.border,
29270
29275
  backgroundColor = _ref.backgroundColor,
29271
29276
  borderRadius = _ref.borderRadius,
29272
- contactsMap = _ref.contactsMap;
29277
+ contactsMap = _ref.contactsMap,
29278
+ setLastVisibleMessageId = _ref.setLastVisibleMessageId;
29273
29279
  var _useColor = useColors(),
29274
29280
  textOnPrimary = _useColor[THEME_COLORS.TEXT_ON_PRIMARY],
29275
29281
  overlayBackground = _useColor[THEME_COLORS.OVERLAY_BACKGROUND];
@@ -29280,19 +29286,23 @@ var Message = function Message(_ref) {
29280
29286
  var getFromContacts = getShowOnlyContactUsers();
29281
29287
  var messageItemRef = React.useRef();
29282
29288
  var isVisible = useOnScreen(messageItemRef);
29289
+ var unreadScrollTo = useSelector(unreadScrollToSelector);
29283
29290
  var messageMetas = React.useMemo(function () {
29284
29291
  return isJSON(message.metadata) ? JSON.parse(message.metadata) : message.metadata;
29285
29292
  }, [message.metadata]);
29286
29293
  var handleSendReadMarker = function handleSendReadMarker() {
29287
29294
  if (isVisible && message.incoming && !(message.userMarkers && message.userMarkers.length && message.userMarkers.find(function (marker) {
29288
29295
  return marker.name === MESSAGE_DELIVERY_STATUS.READ;
29289
- })) && connectionStatus === CONNECTION_STATUS.CONNECTED) {
29296
+ })) && channel.newMessageCount && channel.newMessageCount > 0 && connectionStatus === CONNECTION_STATUS.CONNECTED && !unreadScrollTo) {
29290
29297
  dispatch(markMessagesAsReadAC(channel.id, [message.id]));
29291
29298
  }
29292
29299
  };
29293
29300
  React.useEffect(function () {
29294
- if (isVisible) {
29301
+ if (isVisible && !unreadScrollTo) {
29295
29302
  var _channel$lastMessage;
29303
+ if (setLastVisibleMessageId) {
29304
+ setLastVisibleMessageId(message.id);
29305
+ }
29296
29306
  handleSendReadMarker();
29297
29307
  if (!channel.isLinkedChannel) {
29298
29308
  setMessageToVisibleMessagesMap(message);
@@ -29306,7 +29316,7 @@ var Message = function Message(_ref) {
29306
29316
  removeMessageFromVisibleMessagesMap(message);
29307
29317
  }
29308
29318
  }
29309
- }, [isVisible]);
29319
+ }, [isVisible, unreadScrollTo]);
29310
29320
  useDidUpdate(function () {
29311
29321
  if (tabIsActive) {
29312
29322
  handleSendReadMarker();
@@ -38622,7 +38632,8 @@ var MessageList = function MessageList(_ref2) {
38622
38632
  textColor: dateDividerTextColor,
38623
38633
  border: dateDividerBorder,
38624
38634
  backgroundColor: dateDividerBackgroundColor,
38625
- borderRadius: dateDividerBorderRadius
38635
+ borderRadius: dateDividerBorderRadius,
38636
+ setLastVisibleMessageId: _setLastVisibleMessageId
38626
38637
  })) : (/*#__PURE__*/React__default.createElement(MessageWrapper, {
38627
38638
  key: message.id || message.tid,
38628
38639
  id: message.id,
package/index.modern.js CHANGED
@@ -18850,7 +18850,7 @@ var addPendingMessage = function addPendingMessage(message, messageCopy, channel
18850
18850
  }
18851
18851
  };
18852
18852
  function sendMessage(action) {
18853
- var payload, message, connectionState, channelId, sendAttachmentsAsSeparateMessage, isAddToPendingMessagesMap, pendingMessages, channel, SceytChatClient, createChannelData, mentionedUserIds, customUploader, linkAttachment, attachmentsToSend, messagesToSend, mediaAttachments, _loop, i, messageBuilder, messageToSend, messageCopy, _loop2, _i, _t2;
18853
+ var payload, message, connectionState, channelId, sendAttachmentsAsSeparateMessage, isAddToPendingMessagesMap, pendingMessages, channel, SceytChatClient, createChannelData, mentionedUserIds, customUploader, linkAttachment, attachmentsToSend, messagesToSend, mediaAttachments, _loop, i, messageBuilder, messageToSend, _loop2, _i, _t2;
18854
18854
  return _regenerator().w(function (_context3) {
18855
18855
  while (1) switch (_context3.p = _context3.n) {
18856
18856
  case 0:
@@ -19021,10 +19021,7 @@ function sendMessage(action) {
19021
19021
  messageBuilder.setReplyInThread();
19022
19022
  }
19023
19023
  messageToSend = action.type === RESEND_MESSAGE ? action.payload.message : messageBuilder.create();
19024
- messageCopy = _extends({}, messageToSend, {
19025
- createdAt: new Date(Date.now())
19026
- });
19027
- pendingMessages.push(_extends({}, messageCopy, {
19024
+ pendingMessages.push(_extends({}, messageToSend, {
19028
19025
  attachments: message.attachments
19029
19026
  }));
19030
19027
  messageToSend = _extends({}, messageToSend, {
@@ -19034,22 +19031,28 @@ function sendMessage(action) {
19034
19031
  }
19035
19032
  case 11:
19036
19033
  _loop2 = /*#__PURE__*/_regenerator().m(function _callee2() {
19037
- var messageAttachment, messageToSend, _messageCopy, activeChannelId, _attachmentsToSend, linkAttachmentToSend, linkAttachmentBuilder, messageResponse, k, pendingAttachment, attachmentsToUpdate, currentAttachmentsMap, messageUpdateData, messageToUpdate, channelUpdateParam, pendingMessage, _t;
19034
+ var messageAttachment, messageToSend, messageCopy, activeChannelId, _attachmentsToSend, linkAttachmentToSend, linkAttachmentBuilder, messageResponse, k, pendingAttachment, attachmentsToUpdate, currentAttachmentsMap, messageUpdateData, messageToUpdate, channelUpdateParam, pendingMessage, _t;
19038
19035
  return _regenerator().w(function (_context2) {
19039
19036
  while (1) switch (_context2.p = _context2.n) {
19040
19037
  case 0:
19041
19038
  messageAttachment = messagesToSend[_i].attachments;
19042
19039
  messageToSend = messagesToSend[_i];
19043
19040
  _context2.p = 1;
19044
- _messageCopy = JSON.parse(JSON.stringify(messagesToSend[_i]));
19041
+ messageCopy = JSON.parse(JSON.stringify(messagesToSend[_i]));
19045
19042
  activeChannelId = getActiveChannelId();
19046
19043
  if (action.type !== RESEND_MESSAGE) {
19047
- addMessageToMap(channel.id, messageToSend);
19044
+ addMessageToMap(channel.id, _extends({}, messageToSend, {
19045
+ createdAt: new Date(Date.now())
19046
+ }));
19048
19047
  if (activeChannelId === channel.id) {
19049
- addAllMessages([messageToSend], MESSAGE_LOAD_DIRECTION.NEXT);
19048
+ addAllMessages([_extends({}, messageToSend, {
19049
+ createdAt: new Date(Date.now())
19050
+ })], MESSAGE_LOAD_DIRECTION.NEXT);
19050
19051
  }
19051
19052
  if (activeChannelId === channel.id) {
19052
- store.dispatch(addMessageAC(messageToSend));
19053
+ store.dispatch(addMessageAC(_extends({}, messageToSend, {
19054
+ createdAt: new Date(Date.now())
19055
+ })));
19053
19056
  }
19054
19057
  store.dispatch(scrollToNewMessageAC(true));
19055
19058
  }
@@ -19063,7 +19066,7 @@ function sendMessage(action) {
19063
19066
  break;
19064
19067
  }
19065
19068
  _context2.n = 2;
19066
- return call(handleUploadAttachments, messageAttachment || [], _messageCopy, channel);
19069
+ return call(handleUploadAttachments, messageAttachment || [], messageCopy, channel);
19067
19070
  case 2:
19068
19071
  _attachmentsToSend = _context2.v;
19069
19072
  case 3:
@@ -19249,7 +19252,7 @@ function sendMessage(action) {
19249
19252
  }, _marked$3, null, [[1, 15]]);
19250
19253
  }
19251
19254
  function sendTextMessage(action) {
19252
- var payload, message, connectionState, channelId, isAddToPendingMessagesMap, channel, sendMessageTid, pendingMessage, activeChannelId, SceytChatClient, createChannelData, mentionedUserIds, attachments, attachmentBuilder, att, messageBuilder, messageToSend, _activeChannelId, _messageResponse, messageResponse, messageUpdateData, messageToUpdate, channelUpdateParam, _t3;
19255
+ var payload, message, connectionState, channelId, isAddToPendingMessagesMap, channel, sendMessageTid, pendingMessage, activeChannelId, SceytChatClient, createChannelData, mentionedUserIds, attachments, attachmentBuilder, att, messageBuilder, createdMessage, messageToSend, _activeChannelId, _messageResponse, messageResponse, messageUpdateData, messageToUpdate, channelUpdateParam, _t3;
19253
19256
  return _regenerator().w(function (_context4) {
19254
19257
  while (1) switch (_context4.p = _context4.n) {
19255
19258
  case 0:
@@ -19312,13 +19315,15 @@ function sendTextMessage(action) {
19312
19315
  if (message.repliedInThread) {
19313
19316
  messageBuilder.setReplyInThread();
19314
19317
  }
19315
- messageToSend = action.type === RESEND_MESSAGE ? action.payload.message : messageBuilder.create();
19316
- pendingMessage = JSON.parse(JSON.stringify(_extends({}, messageToSend, {
19317
- attachments: message === null || message === void 0 ? void 0 : message.attachments,
19318
+ createdMessage = action.type === RESEND_MESSAGE ? action.payload.message : messageBuilder.create();
19319
+ messageToSend = _extends({}, createdMessage, action.type === RESEND_MESSAGE ? {
19320
+ attachments: message === null || message === void 0 ? void 0 : message.attachments
19321
+ } : {});
19322
+ pendingMessage = _extends({}, messageToSend, {
19318
19323
  createdAt: new Date(Date.now()),
19319
19324
  mentionedUsers: message.mentionedUsers,
19320
19325
  parentMessage: message.parentMessage
19321
- })));
19326
+ });
19322
19327
  sendMessageTid = messageToSend.tid;
19323
19328
  if (pendingMessage && pendingMessage.metadata) {
19324
19329
  pendingMessage.metadata = JSON.parse(pendingMessage.metadata);
@@ -29268,7 +29273,8 @@ var Message = function Message(_ref) {
29268
29273
  border = _ref.border,
29269
29274
  backgroundColor = _ref.backgroundColor,
29270
29275
  borderRadius = _ref.borderRadius,
29271
- contactsMap = _ref.contactsMap;
29276
+ contactsMap = _ref.contactsMap,
29277
+ setLastVisibleMessageId = _ref.setLastVisibleMessageId;
29272
29278
  var _useColor = useColors(),
29273
29279
  textOnPrimary = _useColor[THEME_COLORS.TEXT_ON_PRIMARY],
29274
29280
  overlayBackground = _useColor[THEME_COLORS.OVERLAY_BACKGROUND];
@@ -29279,19 +29285,23 @@ var Message = function Message(_ref) {
29279
29285
  var getFromContacts = getShowOnlyContactUsers();
29280
29286
  var messageItemRef = useRef();
29281
29287
  var isVisible = useOnScreen(messageItemRef);
29288
+ var unreadScrollTo = useSelector(unreadScrollToSelector);
29282
29289
  var messageMetas = useMemo(function () {
29283
29290
  return isJSON(message.metadata) ? JSON.parse(message.metadata) : message.metadata;
29284
29291
  }, [message.metadata]);
29285
29292
  var handleSendReadMarker = function handleSendReadMarker() {
29286
29293
  if (isVisible && message.incoming && !(message.userMarkers && message.userMarkers.length && message.userMarkers.find(function (marker) {
29287
29294
  return marker.name === MESSAGE_DELIVERY_STATUS.READ;
29288
- })) && connectionStatus === CONNECTION_STATUS.CONNECTED) {
29295
+ })) && channel.newMessageCount && channel.newMessageCount > 0 && connectionStatus === CONNECTION_STATUS.CONNECTED && !unreadScrollTo) {
29289
29296
  dispatch(markMessagesAsReadAC(channel.id, [message.id]));
29290
29297
  }
29291
29298
  };
29292
29299
  useEffect(function () {
29293
- if (isVisible) {
29300
+ if (isVisible && !unreadScrollTo) {
29294
29301
  var _channel$lastMessage;
29302
+ if (setLastVisibleMessageId) {
29303
+ setLastVisibleMessageId(message.id);
29304
+ }
29295
29305
  handleSendReadMarker();
29296
29306
  if (!channel.isLinkedChannel) {
29297
29307
  setMessageToVisibleMessagesMap(message);
@@ -29305,7 +29315,7 @@ var Message = function Message(_ref) {
29305
29315
  removeMessageFromVisibleMessagesMap(message);
29306
29316
  }
29307
29317
  }
29308
- }, [isVisible]);
29318
+ }, [isVisible, unreadScrollTo]);
29309
29319
  useDidUpdate(function () {
29310
29320
  if (tabIsActive) {
29311
29321
  handleSendReadMarker();
@@ -38621,7 +38631,8 @@ var MessageList = function MessageList(_ref2) {
38621
38631
  textColor: dateDividerTextColor,
38622
38632
  border: dateDividerBorder,
38623
38633
  backgroundColor: dateDividerBackgroundColor,
38624
- borderRadius: dateDividerBorderRadius
38634
+ borderRadius: dateDividerBorderRadius,
38635
+ setLastVisibleMessageId: _setLastVisibleMessageId
38625
38636
  })) : (/*#__PURE__*/React__default.createElement(MessageWrapper, {
38626
38637
  key: message.id || message.tid,
38627
38638
  id: message.id,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sceyt-chat-react-uikit",
3
- "version": "1.7.7-beta.11",
3
+ "version": "1.7.7-beta.13",
4
4
  "description": "Interactive React UI Components for Sceyt Chat.",
5
5
  "author": "Sceyt",
6
6
  "license": "MIT",