sceyt-chat-react-uikit 1.6.9-beta.17 → 1.6.9-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/index.js CHANGED
@@ -10075,18 +10075,29 @@ function updateMessageOnMap(channelId, updatedMessage) {
10075
10075
  }
10076
10076
  }
10077
10077
  }
10078
+ var updatedMessageData = null;
10078
10079
  if (messagesMap[channelId]) {
10079
- messagesMap[channelId] = messagesMap[channelId].map(function (mes) {
10080
+ messagesMap[channelId].map(function (mes) {
10080
10081
  if (mes.tid === updatedMessage.messageId || mes.id === updatedMessage.messageId) {
10081
10082
  if (updatedMessage.params.state === MESSAGE_STATUS.DELETE) {
10082
- return _extends({}, updatedMessage.params);
10083
+ updatedMessageData = _extends({}, updatedMessage.params);
10084
+ return updatedMessageData;
10083
10085
  } else {
10084
- return _extends({}, mes, updatedMessage.params);
10086
+ var _updatedMessage$param;
10087
+ updatedMessageData = _extends({}, mes, updatedMessage.params, {
10088
+ attachments: [].concat(mes.attachments, ((_updatedMessage$param = updatedMessage.params) === null || _updatedMessage$param === void 0 ? void 0 : _updatedMessage$param.attachments) || []).filter(function (att, index, self) {
10089
+ return index === self.findIndex(function (t) {
10090
+ return t.url === att.url && t.type === att.type && t.name === att.name;
10091
+ });
10092
+ })
10093
+ });
10094
+ return updatedMessage;
10085
10095
  }
10086
10096
  }
10087
10097
  return mes;
10088
10098
  });
10089
10099
  }
10100
+ return updatedMessageData;
10090
10101
  }
10091
10102
  function addReactionToMessageOnMap(channelId, message, reaction, isSelf) {
10092
10103
  if (messagesMap[channelId]) {
@@ -10330,7 +10341,6 @@ var messageSlice = createSlice({
10330
10341
  reducers: {
10331
10342
  addMessage: function addMessage(state, action) {
10332
10343
  var message = action.payload.message;
10333
- log.info('addMessage ... ', message);
10334
10344
  state.activeChannelMessages.push(message);
10335
10345
  },
10336
10346
  deleteMessageFromList: function deleteMessageFromList(state, action) {
@@ -10448,11 +10458,48 @@ var messageSlice = createSlice({
10448
10458
  state.activeChannelMessages.push(params);
10449
10459
  }
10450
10460
  },
10451
- addReactionToMessage: function addReactionToMessage(state, action) {
10461
+ updateMessageAttachment: function updateMessageAttachment(state, action) {
10452
10462
  var _action$payload4 = action.payload,
10453
- message = _action$payload4.message,
10454
- reaction = _action$payload4.reaction,
10455
- isSelf = _action$payload4.isSelf;
10463
+ url = _action$payload4.url,
10464
+ messageId = _action$payload4.messageId,
10465
+ params = _action$payload4.params;
10466
+ state.activeChannelMessages = state.activeChannelMessages.map(function (message) {
10467
+ if (message.id === messageId) {
10468
+ for (var index = 0; index < message.attachments.length; index++) {
10469
+ var attachment = message.attachments[index];
10470
+ if (attachment.url === url) {
10471
+ message.attachments[index] = _extends({}, attachment, params);
10472
+ }
10473
+ }
10474
+ }
10475
+ if (message.attachments.length) {
10476
+ var detachedAttachments = message.attachments.map(function (att) {
10477
+ var _att$user, _att$user2;
10478
+ return _extends({}, att, {
10479
+ user: _extends({}, att.user, {
10480
+ metadata: _extends({}, ((_att$user = att.user) === null || _att$user === void 0 ? void 0 : _att$user.metadata) || {}),
10481
+ presence: _extends({}, ((_att$user2 = att.user) === null || _att$user2 === void 0 ? void 0 : _att$user2.presence) || {})
10482
+ })
10483
+ });
10484
+ });
10485
+ updateMessageOnAllMessages(messageId, {
10486
+ attachments: detachedAttachments
10487
+ });
10488
+ updateMessageOnMap(message.channelId, {
10489
+ messageId: messageId,
10490
+ params: {
10491
+ attachments: detachedAttachments
10492
+ }
10493
+ });
10494
+ }
10495
+ return message;
10496
+ });
10497
+ },
10498
+ addReactionToMessage: function addReactionToMessage(state, action) {
10499
+ var _action$payload5 = action.payload,
10500
+ message = _action$payload5.message,
10501
+ reaction = _action$payload5.reaction,
10502
+ isSelf = _action$payload5.isSelf;
10456
10503
  state.activeChannelMessages = state.activeChannelMessages.map(function (msg) {
10457
10504
  if (msg.id === message.id) {
10458
10505
  var slfReactions = [].concat(msg.userReactions);
@@ -10472,10 +10519,10 @@ var messageSlice = createSlice({
10472
10519
  });
10473
10520
  },
10474
10521
  deleteReactionFromMessage: function deleteReactionFromMessage(state, action) {
10475
- var _action$payload5 = action.payload,
10476
- reaction = _action$payload5.reaction,
10477
- message = _action$payload5.message,
10478
- isSelf = _action$payload5.isSelf;
10522
+ var _action$payload6 = action.payload,
10523
+ reaction = _action$payload6.reaction,
10524
+ message = _action$payload6.message,
10525
+ isSelf = _action$payload6.isSelf;
10479
10526
  state.activeChannelMessages = state.activeChannelMessages.map(function (msg) {
10480
10527
  if (msg.id === message.id) {
10481
10528
  var userReactions = msg.userReactions;
@@ -10524,9 +10571,9 @@ var messageSlice = createSlice({
10524
10571
  (_state$activeTabAttac = state.activeTabAttachments).push.apply(_state$activeTabAttac, action.payload.attachments);
10525
10572
  },
10526
10573
  addAttachmentsForPopup: function addAttachmentsForPopup(state, action) {
10527
- var _action$payload6 = action.payload,
10528
- attachments = _action$payload6.attachments,
10529
- direction = _action$payload6.direction;
10574
+ var _action$payload7 = action.payload,
10575
+ attachments = _action$payload7.attachments,
10576
+ direction = _action$payload7.direction;
10530
10577
  if (direction === 'prev') {
10531
10578
  var _state$attachmentsFor;
10532
10579
  (_state$attachmentsFor = state.attachmentsForPopup).push.apply(_state$attachmentsFor, attachments);
@@ -10542,11 +10589,11 @@ var messageSlice = createSlice({
10542
10589
  state.attachmentForPopupHasNext = action.payload.hasPrev;
10543
10590
  },
10544
10591
  updateUploadProgress: function updateUploadProgress(state, action) {
10545
- var _action$payload7 = action.payload,
10546
- uploaded = _action$payload7.uploaded,
10547
- total = _action$payload7.total,
10548
- attachmentId = _action$payload7.attachmentId,
10549
- progress = _action$payload7.progress;
10592
+ var _action$payload8 = action.payload,
10593
+ uploaded = _action$payload8.uploaded,
10594
+ total = _action$payload8.total,
10595
+ attachmentId = _action$payload8.attachmentId,
10596
+ progress = _action$payload8.progress;
10550
10597
  var updateData = {
10551
10598
  uploaded: uploaded,
10552
10599
  total: total,
@@ -10570,23 +10617,23 @@ var messageSlice = createSlice({
10570
10617
  state.messageForReply = action.payload.message;
10571
10618
  },
10572
10619
  uploadAttachmentCompilation: function uploadAttachmentCompilation(state, action) {
10573
- var _action$payload8 = action.payload,
10574
- attachmentUploadingState = _action$payload8.attachmentUploadingState,
10575
- attachmentId = _action$payload8.attachmentId;
10620
+ var _action$payload9 = action.payload,
10621
+ attachmentUploadingState = _action$payload9.attachmentUploadingState,
10622
+ attachmentId = _action$payload9.attachmentId;
10576
10623
  state.attachmentsUploadingState[attachmentId] = attachmentUploadingState;
10577
10624
  },
10578
10625
  setReactionsList: function setReactionsList(state, action) {
10579
- var _action$payload9 = action.payload,
10580
- reactions = _action$payload9.reactions,
10581
- hasNext = _action$payload9.hasNext;
10626
+ var _action$payload0 = action.payload,
10627
+ reactions = _action$payload0.reactions,
10628
+ hasNext = _action$payload0.hasNext;
10582
10629
  state.reactionsHasNext = hasNext;
10583
10630
  state.reactionsList = [].concat(reactions);
10584
10631
  },
10585
10632
  addReactionsToList: function addReactionsToList(state, action) {
10586
10633
  var _state$reactionsList;
10587
- var _action$payload0 = action.payload,
10588
- reactions = _action$payload0.reactions,
10589
- hasNext = _action$payload0.hasNext;
10634
+ var _action$payload1 = action.payload,
10635
+ reactions = _action$payload1.reactions,
10636
+ hasNext = _action$payload1.hasNext;
10590
10637
  state.reactionsHasNext = hasNext;
10591
10638
  (_state$reactionsList = state.reactionsList).push.apply(_state$reactionsList, reactions);
10592
10639
  },
@@ -10647,6 +10694,7 @@ var _messageSlice$actions = messageSlice.actions,
10647
10694
  addMessages = _messageSlice$actions.addMessages,
10648
10695
  updateMessagesStatus = _messageSlice$actions.updateMessagesStatus,
10649
10696
  updateMessage = _messageSlice$actions.updateMessage,
10697
+ updateMessageAttachment = _messageSlice$actions.updateMessageAttachment,
10650
10698
  addReactionToMessage = _messageSlice$actions.addReactionToMessage,
10651
10699
  deleteReactionFromMessage = _messageSlice$actions.deleteReactionFromMessage,
10652
10700
  setHasPrevMessages = _messageSlice$actions.setHasPrevMessages,
@@ -11738,6 +11786,13 @@ function setMessagesHasNextAC(hasNext) {
11738
11786
  hasNext: hasNext
11739
11787
  });
11740
11788
  }
11789
+ function setUpdateMessageAttachmentAC(url, messageId, params) {
11790
+ return updateMessageAttachment({
11791
+ url: url,
11792
+ messageId: messageId,
11793
+ params: params
11794
+ });
11795
+ }
11741
11796
  function updateMessageAC(messageId, params, addIfNotExists) {
11742
11797
  return updateMessage({
11743
11798
  messageId: messageId,
@@ -17153,12 +17208,6 @@ var addPendingMessage = function addPendingMessage(message, messageCopy, channel
17153
17208
  addMessageToMap(channel.id, messageToAdd);
17154
17209
  addAllMessages([messageToAdd], MESSAGE_LOAD_DIRECTION.NEXT);
17155
17210
  setPendingMessages(channel.id, [messageToAdd]);
17156
- var hasNextMessages = store.getState().MessageReducer.messagesHasNext;
17157
- var activeChannelMessages = store.getState().MessageReducer.activeChannelMessages;
17158
- var isLatestMessageInChannelMessages = activeChannelMessages[activeChannelMessages.length - 1].id === channel.lastMessage.id;
17159
- if (hasNextMessages || !isLatestMessageInChannelMessages) {
17160
- store.dispatch(getMessagesAC(channel, true, channel.lastMessage.id, undefined, undefined, false));
17161
- }
17162
17211
  store.dispatch(scrollToNewMessageAC(true));
17163
17212
  store.dispatch(addMessageAC(messageToAdd));
17164
17213
  return Promise.resolve();
@@ -18332,7 +18381,7 @@ function editMessage(action) {
18332
18381
  }, _marked6$1, null, [[0, 5]]);
18333
18382
  }
18334
18383
  function getMessagesQuery(action) {
18335
- 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, pendingMessages, _messagesMap, filteredPendingMessages, index, mes, _t9;
18384
+ 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, index, mes, _t9;
18336
18385
  return _regenerator().w(function (_context9) {
18337
18386
  while (1) switch (_context9.p = _context9.n) {
18338
18387
  case 0:
@@ -18342,7 +18391,7 @@ function getMessagesQuery(action) {
18342
18391
  case 1:
18343
18392
  _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;
18344
18393
  if (!(channel.id && !channel.isMockChannel)) {
18345
- _context9.n = 47;
18394
+ _context9.n = 48;
18346
18395
  break;
18347
18396
  }
18348
18397
  SceytChatClient = getClient();
@@ -18428,7 +18477,7 @@ function getMessagesQuery(action) {
18428
18477
  _context9.n = 12;
18429
18478
  return effects.put(setScrollToMessagesAC(messageId, highlight));
18430
18479
  case 12:
18431
- _context9.n = 44;
18480
+ _context9.n = 45;
18432
18481
  break;
18433
18482
  case 13:
18434
18483
  if (!messageId) {
@@ -18494,7 +18543,7 @@ function getMessagesQuery(action) {
18494
18543
  _context9.n = 24;
18495
18544
  return effects.put(setMessagesLoadingStateAC(LOADING_STATE.LOADED));
18496
18545
  case 24:
18497
- _context9.n = 44;
18546
+ _context9.n = 45;
18498
18547
  break;
18499
18548
  case 25:
18500
18549
  if (!(channel.newMessageCount && channel.lastDisplayedMessageId)) {
@@ -18566,7 +18615,7 @@ function getMessagesQuery(action) {
18566
18615
  _context9.n = 37;
18567
18616
  return effects.put(setMessagesAC(JSON.parse(JSON.stringify(result.messages))));
18568
18617
  case 37:
18569
- _context9.n = 44;
18618
+ _context9.n = 45;
18570
18619
  break;
18571
18620
  case 38:
18572
18621
  setAllMessages([]);
@@ -18595,22 +18644,29 @@ function getMessagesQuery(action) {
18595
18644
  result.messages = [].concat(_secondResult4.messages, result.messages);
18596
18645
  result.hasNext = _secondResult4.hasNext;
18597
18646
  case 42:
18647
+ updatedMessages = [];
18598
18648
  result.messages.forEach(function (msg) {
18599
- updateMessageOnMap(channel.id, {
18649
+ var updatedMessage = updateMessageOnMap(channel.id, {
18600
18650
  messageId: msg.id,
18601
18651
  params: msg
18602
18652
  });
18603
- updateMessageOnAllMessages(msg.id, msg);
18653
+ updateMessageOnAllMessages(msg.id, updatedMessage || msg);
18654
+ updatedMessages.push(updatedMessage || msg);
18604
18655
  });
18656
+ setMessagesToMap(channel.id, updatedMessages);
18657
+ setAllMessages([].concat(updatedMessages));
18605
18658
  _context9.n = 43;
18606
- return effects.put(setMessagesHasPrevAC(result.hasNext));
18659
+ return effects.put(setMessagesAC(JSON.parse(JSON.stringify(updatedMessages))));
18607
18660
  case 43:
18608
18661
  _context9.n = 44;
18609
- return effects.put(setMessagesHasNextAC(false));
18662
+ return effects.put(setMessagesHasPrevAC(result.hasNext));
18610
18663
  case 44:
18664
+ _context9.n = 45;
18665
+ return effects.put(setMessagesHasNextAC(false));
18666
+ case 45:
18611
18667
  pendingMessages = getPendingMessages(channel.id);
18612
18668
  if (!(pendingMessages && pendingMessages.length)) {
18613
- _context9.n = 46;
18669
+ _context9.n = 47;
18614
18670
  break;
18615
18671
  }
18616
18672
  _messagesMap = {};
@@ -18620,40 +18676,40 @@ function getMessagesQuery(action) {
18620
18676
  filteredPendingMessages = pendingMessages.filter(function (msg) {
18621
18677
  return !_messagesMap[msg.tid || ''];
18622
18678
  });
18623
- _context9.n = 45;
18679
+ _context9.n = 46;
18624
18680
  return effects.put(addMessagesAC(filteredPendingMessages, MESSAGE_LOAD_DIRECTION.NEXT));
18625
- case 45:
18681
+ case 46:
18626
18682
  for (index = 0; index < filteredPendingMessages.length; index++) {
18627
18683
  mes = filteredPendingMessages[index];
18628
18684
  removePendingMessageFromMap(channel === null || channel === void 0 ? void 0 : channel.id, mes.tid || mes.id);
18629
18685
  }
18630
- case 46:
18631
- _context9.n = 48;
18632
- break;
18633
18686
  case 47:
18687
+ _context9.n = 49;
18688
+ break;
18689
+ case 48:
18634
18690
  if (!channel.isMockChannel) {
18635
- _context9.n = 48;
18691
+ _context9.n = 49;
18636
18692
  break;
18637
18693
  }
18638
- _context9.n = 48;
18694
+ _context9.n = 49;
18639
18695
  return effects.put(setMessagesAC([]));
18640
- case 48:
18641
- _context9.n = 50;
18642
- break;
18643
18696
  case 49:
18644
- _context9.p = 49;
18645
- _t9 = _context9.v;
18646
- log.error('error in message query', _t9);
18697
+ _context9.n = 51;
18698
+ break;
18647
18699
  case 50:
18648
18700
  _context9.p = 50;
18649
- _context9.n = 51;
18650
- return effects.put(setMessagesLoadingStateAC(LOADING_STATE.LOADED));
18701
+ _t9 = _context9.v;
18702
+ log.error('error in message query', _t9);
18651
18703
  case 51:
18652
- return _context9.f(50);
18704
+ _context9.p = 51;
18705
+ _context9.n = 52;
18706
+ return effects.put(setMessagesLoadingStateAC(LOADING_STATE.LOADED));
18653
18707
  case 52:
18708
+ return _context9.f(51);
18709
+ case 53:
18654
18710
  return _context9.a(2);
18655
18711
  }
18656
- }, _marked7$1, null, [[0, 49, 50, 52]]);
18712
+ }, _marked7$1, null, [[0, 50, 51, 53]]);
18657
18713
  }
18658
18714
  function loadMoreMessages(action) {
18659
18715
  var payload, limit, direction, channelId, messageId, hasNext, SceytChatClient, messageQueryBuilder, messageQuery, result, _t0;
@@ -20895,7 +20951,15 @@ var ChannelMessageText = function ChannelMessageText(_ref2) {
20895
20951
  color: textPrimary
20896
20952
  }, ":"), typingOrRecording.isTyping ? 'typing' : 'recording', "...")), !isTypingOrRecording && (draftMessageText ? (/*#__PURE__*/React__default.createElement(DraftMessageText, {
20897
20953
  color: textSecondary
20898
- }, audioRecording && /*#__PURE__*/React__default.createElement(SvgVoiceIcon, null), draftMessageText)) : lastMessage.state === MESSAGE_STATUS.DELETE ? 'Message was deleted.' : lastMessage.type === 'system' ? (lastMessage.user && (lastMessage.user.id === user.id ? 'You ' : makeUsername(lastMessage.user && contactsMap && contactsMap[lastMessage.user.id], lastMessage.user, getFromContacts))) + " " + (lastMessage.body === 'CC' ? 'created this channel' : lastMessage.body === 'CG' ? 'created this group' : lastMessage.body === 'AM' ? " added " + (lastMessageMetas && lastMessageMetas.m && lastMessageMetas.m.slice(0, 5).map(function (mem) {
20954
+ }, audioRecording && /*#__PURE__*/React__default.createElement(SvgVoiceIcon, null), MessageTextFormat({
20955
+ text: draftMessageText,
20956
+ message: lastMessage,
20957
+ contactsMap: contactsMap,
20958
+ getFromContacts: getFromContacts,
20959
+ isLastMessage: true,
20960
+ accentColor: accentColor,
20961
+ textSecondary: textSecondary
20962
+ }))) : lastMessage.state === MESSAGE_STATUS.DELETE ? 'Message was deleted.' : lastMessage.type === 'system' ? (lastMessage.user && (lastMessage.user.id === user.id ? 'You ' : makeUsername(lastMessage.user && contactsMap && contactsMap[lastMessage.user.id], lastMessage.user, getFromContacts))) + " " + (lastMessage.body === 'CC' ? 'created this channel' : lastMessage.body === 'CG' ? 'created this group' : lastMessage.body === 'AM' ? " added " + (lastMessageMetas && lastMessageMetas.m && lastMessageMetas.m.slice(0, 5).map(function (mem) {
20899
20963
  return mem === user.id ? ' You' : " " + systemMessageUserName(mem, contactsMap && contactsMap[mem], lastMessage.mentionedUsers);
20900
20964
  })) + " " + (lastMessageMetas && lastMessageMetas.m && lastMessageMetas.m.length > 5 ? "and " + (lastMessageMetas.m.length - 5) + " more" : '') : lastMessage.body === 'RM' ? " removed " + (lastMessageMetas && lastMessageMetas.m && lastMessageMetas.m.slice(0, 5).map(function (mem) {
20901
20965
  return mem === user.id ? ' You' : " " + systemMessageUserName(mem, contactsMap && contactsMap[mem], lastMessage.mentionedUsers);
@@ -20965,11 +21029,14 @@ var Channel = function Channel(_ref3) {
20965
21029
  var _useState = React.useState(),
20966
21030
  draftMessageText = _useState[0],
20967
21031
  setDraftMessageText = _useState[1];
21032
+ var _useState2 = React.useState(),
21033
+ draftMessage = _useState2[0],
21034
+ setDraftMessage = _useState2[1];
20968
21035
  var lastMessage = channel.lastReactedMessage || channel.lastMessage;
20969
21036
  var lastMessageMetas = lastMessage && lastMessage.type === 'system' && lastMessage.metadata && (isJSON(lastMessage.metadata) ? JSON.parse(lastMessage.metadata) : lastMessage.metadata);
20970
- var _useState2 = React.useState(0),
20971
- statusWidth = _useState2[0],
20972
- setStatusWidth = _useState2[1];
21037
+ var _useState3 = React.useState(0),
21038
+ statusWidth = _useState3[0],
21039
+ setStatusWidth = _useState3[1];
20973
21040
  var avatarName = channel.subject || (isDirectChannel && directChannelUser ? directChannelUser.firstName || directChannelUser.id : isSelfChannel ? 'Me' : '');
20974
21041
  var handleChangeActiveChannel = function handleChangeActiveChannel(chan) {
20975
21042
  if (activeChannel.id !== chan.id) {
@@ -20993,17 +21060,25 @@ var Channel = function Channel(_ref3) {
20993
21060
  if (channelDraftMessage || draftAudioRecording) {
20994
21061
  if (channelDraftMessage) {
20995
21062
  setDraftMessageText(channelDraftMessage.text);
21063
+ setDraftMessage({
21064
+ mentionedUsers: channelDraftMessage.mentionedMembers,
21065
+ body: channelDraftMessage.text,
21066
+ bodyAttributes: channelDraftMessage.bodyAttributes
21067
+ });
20996
21068
  } else if (draftAudioRecording) {
20997
21069
  setDraftMessageText('Voice');
21070
+ setDraftMessage(undefined);
20998
21071
  }
20999
21072
  } else if (draftMessageText) {
21000
21073
  setDraftMessageText(undefined);
21074
+ setDraftMessage(undefined);
21001
21075
  }
21002
21076
  }
21003
21077
  }, [activeChannel.id]);
21004
21078
  React.useEffect(function () {
21005
21079
  if (channelDraftIsRemoved && channelDraftIsRemoved === channel.id) {
21006
21080
  setDraftMessageText(undefined);
21081
+ setDraftMessage(undefined);
21007
21082
  dispatch(setChannelDraftMessageIsRemovedAC());
21008
21083
  }
21009
21084
  }, [channelDraftIsRemoved]);
@@ -21050,7 +21125,7 @@ var Channel = function Channel(_ref3) {
21050
21125
  textPrimary: textPrimary,
21051
21126
  textSecondary: textSecondary,
21052
21127
  draftMessageText: draftMessageText,
21053
- lastMessage: lastMessage,
21128
+ lastMessage: draftMessage || lastMessage,
21054
21129
  isDirectChannel: isDirectChannel
21055
21130
  });
21056
21131
  }, [typingOrRecording === null || typingOrRecording === void 0 ? void 0 : typingOrRecording.isTyping, typingOrRecording === null || typingOrRecording === void 0 ? void 0 : typingOrRecording.isRecording, draftMessageText, lastMessage, user, contactsMap, getFromContacts, lastMessageMetas, accentColor, typingOrRecording, channel, isDirectChannel]);
@@ -23129,7 +23204,8 @@ var ChannelList = function ChannelList(_ref) {
23129
23204
  channelAvatarSize = _ref.channelAvatarSize,
23130
23205
  channelAvatarTextSize = _ref.channelAvatarTextSize,
23131
23206
  searchChannelInputFontSize = _ref.searchChannelInputFontSize,
23132
- searchedChannelsTitleFontSize = _ref.searchedChannelsTitleFontSize;
23207
+ searchedChannelsTitleFontSize = _ref.searchedChannelsTitleFontSize,
23208
+ searchChannelsPadding = _ref.searchChannelsPadding;
23133
23209
  var _useColor = useColors(),
23134
23210
  background = _useColor[THEME_COLORS.BACKGROUND],
23135
23211
  textPrimary = _useColor[THEME_COLORS.TEXT_PRIMARY],
@@ -23366,7 +23442,8 @@ var ChannelList = function ChannelList(_ref) {
23366
23442
  }, /*#__PURE__*/React__default.createElement(ChannelListHeader, {
23367
23443
  withCustomList: !!List,
23368
23444
  maxWidth: channelListRef.current && ((_channelListRef$curre2 = channelListRef.current) === null || _channelListRef$curre2 === void 0 ? void 0 : _channelListRef$curre2.clientWidth) || 0,
23369
- borderColor: borderColor
23445
+ borderColor: borderColor,
23446
+ padding: searchChannelsPadding
23370
23447
  }, Profile, showSearch && searchChannelsPosition === 'inline' ? (/*#__PURE__*/React__default.createElement(ChannelSearch, {
23371
23448
  inline: true,
23372
23449
  borderRadius: searchInputBorderRadius,
@@ -23689,8 +23766,10 @@ var NoData = styled__default.div(_templateObject8$4 || (_templateObject8$4 = _ta
23689
23766
  return props.color;
23690
23767
  });
23691
23768
  var LoadingWrapper = styled__default.div(_templateObject9$4 || (_templateObject9$4 = _taggedTemplateLiteralLoose(["\n position: absolute;\n left: calc(50% - 20px);\n top: calc(50% - 20px);\n"])));
23692
- var ChannelListHeader = styled__default.div(_templateObject0$3 || (_templateObject0$3 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n flex-direction: row;\n justify-content: space-between;\n max-width: ", ";\n padding: 12px;\n padding-left: 22px;\n box-sizing: border-box;\n padding-left: ", ";\n border-right: ", ";\n"])), function (props) {
23769
+ var ChannelListHeader = styled__default.div(_templateObject0$3 || (_templateObject0$3 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n flex-direction: row;\n justify-content: space-between;\n max-width: ", ";\n padding: ", ";\n padding-left: 22px;\n box-sizing: border-box;\n padding-left: ", ";\n border-right: ", ";\n"])), function (props) {
23693
23770
  return props.maxWidth ? props.maxWidth + "px" : 'inherit';
23771
+ }, function (props) {
23772
+ return props.padding || '12px';
23694
23773
  }, function (props) {
23695
23774
  return props.withoutProfile && '52px';
23696
23775
  }, function (props) {
@@ -29227,7 +29306,15 @@ var Attachment = function Attachment(_ref) {
29227
29306
  if (downloadIsCancelled) {
29228
29307
  setDownloadIsCancelled(false);
29229
29308
  if (customDownloader) {
29230
- customDownloader(attachment.url, false, function () {}, messageType).then(function (url) {
29309
+ customDownloader(attachment.url, false, function (progress) {
29310
+ var loadedRes = progress.loaded && progress.loaded / progress.total;
29311
+ var uploadPercent = loadedRes && loadedRes * 100;
29312
+ setSizeProgress({
29313
+ loaded: progress.loaded || 0,
29314
+ total: progress.total || 0
29315
+ });
29316
+ setProgress(uploadPercent);
29317
+ }, messageType).then(function (url) {
29231
29318
  downloadImage(url);
29232
29319
  });
29233
29320
  } else {
@@ -29355,23 +29442,35 @@ var Attachment = function Attachment(_ref) {
29355
29442
  }
29356
29443
  }, [attachmentUrl]);
29357
29444
  React.useEffect(function () {
29358
- if (connectionStatus === CONNECTION_STATUS.CONNECTED && attachment.id && !(attachment.type === attachmentTypes.file || attachment.type === attachmentTypes.link)) {
29445
+ if (!attachment.attachmentUrl && connectionStatus === CONNECTION_STATUS.CONNECTED && attachment.id && !(attachment.type === attachmentTypes.file || attachment.type === attachmentTypes.link)) {
29359
29446
  getAttachmentUrlFromCache(attachment.url).then(function (cachedUrl) {
29360
29447
  try {
29361
29448
  if (attachment.type === 'image' && !isPreview) {
29362
29449
  if (cachedUrl) {
29363
29450
  setAttachmentUrl(cachedUrl);
29451
+ dispatch(setUpdateMessageAttachmentAC(attachment.url, attachment.messageId, {
29452
+ attachmentUrl: cachedUrl
29453
+ }));
29364
29454
  setIsCached(true);
29365
29455
  } else {
29366
29456
  setIsCached(false);
29367
29457
  setDownloadingFile(true);
29368
29458
  if (customDownloader) {
29369
- customDownloader(attachment.url, false, function () {}, messageType).then(function (url) {
29459
+ customDownloader(attachment.url, false, function (progress) {
29460
+ var loadedRes = progress.loaded && progress.loaded / progress.total;
29461
+ var uploadPercent = loadedRes && loadedRes * 100;
29462
+ setSizeProgress({
29463
+ loaded: progress.loaded || 0,
29464
+ total: progress.total || 0
29465
+ });
29466
+ setProgress(uploadPercent);
29467
+ }, messageType).then(function (url) {
29370
29468
  try {
29371
29469
  downloadImage(url);
29372
29470
  return Promise.resolve(fetch(url)).then(function (response) {
29373
29471
  setAttachmentToCache(attachment.url, response);
29374
29472
  setIsCached(true);
29473
+ setDownloadingFile(false);
29375
29474
  });
29376
29475
  } catch (e) {
29377
29476
  return Promise.reject(e);
@@ -29410,7 +29509,15 @@ var Attachment = function Attachment(_ref) {
29410
29509
  log.info('error on get attachment url from cache. .. ', e);
29411
29510
  if (customDownloader) {
29412
29511
  setDownloadingFile(true);
29413
- customDownloader(attachment.url, false, function () {}, messageType).then(function (url) {
29512
+ customDownloader(attachment.url, true, function (progress) {
29513
+ var loadedRes = progress.loaded && progress.loaded / progress.total;
29514
+ var uploadPercent = loadedRes && loadedRes * 100;
29515
+ setSizeProgress({
29516
+ loaded: progress.loaded || 0,
29517
+ total: progress.total || 0
29518
+ });
29519
+ setProgress(uploadPercent);
29520
+ }, messageType).then(function (url) {
29414
29521
  try {
29415
29522
  return Promise.resolve(fetch(url)).then(function (response) {
29416
29523
  setAttachmentToCache(attachment.url, response);
@@ -29515,7 +29622,7 @@ var Attachment = function Attachment(_ref) {
29515
29622
  imageMinWidth: imageMinWidth,
29516
29623
  withPrefix: withPrefix,
29517
29624
  borderColor: borderColor
29518
- }, /*#__PURE__*/React__default.createElement(UploadPercent, {
29625
+ }, !isPreview && (isInUploadingState || downloadingFile) && sizeProgress && sizeProgress.loaded < sizeProgress.total && (/*#__PURE__*/React__default.createElement(UploadPercent, {
29519
29626
  isRepliedMessage: isRepliedMessage,
29520
29627
  isDetailsView: isDetailsView,
29521
29628
  backgroundColor: overlayBackground2
@@ -29545,7 +29652,7 @@ var Attachment = function Attachment(_ref) {
29545
29652
  }
29546
29653
  })), sizeProgress && (/*#__PURE__*/React__default.createElement(SizeProgress, {
29547
29654
  color: textOnPrimary
29548
- }, bytesToSize(sizeProgress.loaded, 1), " / ", bytesToSize(sizeProgress.total, 1)))))))) : null, isPreview && (/*#__PURE__*/React__default.createElement(RemoveChosenFile, {
29655
+ }, bytesToSize(sizeProgress.loaded, 1), " / ", bytesToSize(sizeProgress.total, 1))))))))) : null, isPreview && (/*#__PURE__*/React__default.createElement(RemoveChosenFile, {
29549
29656
  backgroundColor: background,
29550
29657
  color: iconInactive,
29551
29658
  onClick: function onClick() {
@@ -30985,25 +31092,33 @@ var OGMetadata = function OGMetadata(_ref) {
30985
31092
  }, [attachment === null || attachment === void 0 ? void 0 : attachment.url]);
30986
31093
  var showOGMetadata = React.useMemo(function () {
30987
31094
  var _metadata$og, _metadata$og2, _metadata$og2$image, _metadata$og2$image$, _metadata$og3;
30988
- return state === 'deleted' || (metadata === null || metadata === void 0 ? void 0 : (_metadata$og = metadata.og) === null || _metadata$og === void 0 ? void 0 : _metadata$og.title) === '' || (metadata === null || metadata === void 0 ? void 0 : (_metadata$og2 = metadata.og) === null || _metadata$og2 === void 0 ? void 0 : (_metadata$og2$image = _metadata$og2.image) === null || _metadata$og2$image === void 0 ? void 0 : (_metadata$og2$image$ = _metadata$og2$image[0]) === null || _metadata$og2$image$ === void 0 ? void 0 : _metadata$og2$image$.url) === '' || (metadata === null || metadata === void 0 ? void 0 : (_metadata$og3 = metadata.og) === null || _metadata$og3 === void 0 ? void 0 : _metadata$og3.description) === '' || !metadata;
31095
+ return state !== 'deleted' && (metadata === null || metadata === void 0 ? void 0 : (_metadata$og = metadata.og) === null || _metadata$og === void 0 ? void 0 : _metadata$og.title) && (metadata === null || metadata === void 0 ? void 0 : (_metadata$og2 = metadata.og) === null || _metadata$og2 === void 0 ? void 0 : (_metadata$og2$image = _metadata$og2.image) === null || _metadata$og2$image === void 0 ? void 0 : (_metadata$og2$image$ = _metadata$og2$image[0]) === null || _metadata$og2$image$ === void 0 ? void 0 : _metadata$og2$image$.url) && (metadata === null || metadata === void 0 ? void 0 : (_metadata$og3 = metadata.og) === null || _metadata$og3 === void 0 ? void 0 : _metadata$og3.description) && metadata;
30989
31096
  }, [state, metadata]);
30990
- return /*#__PURE__*/React__default.createElement(OGMetadataContainer, null, /*#__PURE__*/React__default.createElement("div", {
31097
+ return /*#__PURE__*/React__default.createElement(OGMetadataContainer, {
31098
+ showOGMetadata: !!showOGMetadata
31099
+ }, /*#__PURE__*/React__default.createElement("div", {
30991
31100
  onClick: function onClick() {
30992
31101
  window.open(attachment === null || attachment === void 0 ? void 0 : attachment.url, '_blank');
30993
31102
  }
30994
31103
  }, /*#__PURE__*/React__default.createElement(ImageContainer, {
30995
- showOGMetadata: showOGMetadata
31104
+ showOGMetadata: !!showOGMetadata
30996
31105
  }, metadata !== null && metadata !== void 0 && (_metadata$og4 = metadata.og) !== null && _metadata$og4 !== void 0 && (_metadata$og4$image = _metadata$og4.image) !== null && _metadata$og4$image !== void 0 && (_metadata$og4$image$ = _metadata$og4$image[0]) !== null && _metadata$og4$image$ !== void 0 && _metadata$og4$image$.url ? /*#__PURE__*/React__default.createElement(Img, {
30997
31106
  src: metadata === null || metadata === void 0 ? void 0 : (_metadata$og5 = metadata.og) === null || _metadata$og5 === void 0 ? void 0 : (_metadata$og5$image = _metadata$og5.image) === null || _metadata$og5$image === void 0 ? void 0 : (_metadata$og5$image$ = _metadata$og5$image[0]) === null || _metadata$og5$image$ === void 0 ? void 0 : _metadata$og5$image$.url,
30998
31107
  alt: 'OG metadata image'
30999
- }) : null), showOGMetadata ? null : (/*#__PURE__*/React__default.createElement(OGText, null, /*#__PURE__*/React__default.createElement(Url, null, ogUrl), metadata !== null && metadata !== void 0 && (_metadata$og6 = metadata.og) !== null && _metadata$og6 !== void 0 && _metadata$og6.title ? (/*#__PURE__*/React__default.createElement(Title, null, metadata !== null && metadata !== void 0 && (_metadata$og7 = metadata.og) !== null && _metadata$og7 !== void 0 && (_metadata$og7$favicon = _metadata$og7.favicon) !== null && _metadata$og7$favicon !== void 0 && _metadata$og7$favicon.url ? /*#__PURE__*/React__default.createElement(Favicon, {
31108
+ }) : null), showOGMetadata ? (/*#__PURE__*/React__default.createElement(OGText, null, /*#__PURE__*/React__default.createElement(Url, null, ogUrl), metadata !== null && metadata !== void 0 && (_metadata$og6 = metadata.og) !== null && _metadata$og6 !== void 0 && _metadata$og6.title ? (/*#__PURE__*/React__default.createElement(Title, null, metadata !== null && metadata !== void 0 && (_metadata$og7 = metadata.og) !== null && _metadata$og7 !== void 0 && (_metadata$og7$favicon = _metadata$og7.favicon) !== null && _metadata$og7$favicon !== void 0 && _metadata$og7$favicon.url ? /*#__PURE__*/React__default.createElement(Favicon, {
31000
31109
  src: metadata === null || metadata === void 0 ? void 0 : (_metadata$og8 = metadata.og) === null || _metadata$og8 === void 0 ? void 0 : (_metadata$og8$favicon = _metadata$og8.favicon) === null || _metadata$og8$favicon === void 0 ? void 0 : _metadata$og8$favicon.url
31001
- }) : null, /*#__PURE__*/React__default.createElement("span", null, metadata === null || metadata === void 0 ? void 0 : (_metadata$og9 = metadata.og) === null || _metadata$og9 === void 0 ? void 0 : _metadata$og9.title))) : null, metadata !== null && metadata !== void 0 && (_metadata$og0 = metadata.og) !== null && _metadata$og0 !== void 0 && _metadata$og0.description ? /*#__PURE__*/React__default.createElement(Desc, null, metadata === null || metadata === void 0 ? void 0 : (_metadata$og1 = metadata.og) === null || _metadata$og1 === void 0 ? void 0 : _metadata$og1.description) : null))));
31110
+ }) : null, /*#__PURE__*/React__default.createElement("span", null, metadata === null || metadata === void 0 ? void 0 : (_metadata$og9 = metadata.og) === null || _metadata$og9 === void 0 ? void 0 : _metadata$og9.title))) : null, metadata !== null && metadata !== void 0 && (_metadata$og0 = metadata.og) !== null && _metadata$og0 !== void 0 && _metadata$og0.description ? /*#__PURE__*/React__default.createElement(Desc, null, metadata === null || metadata === void 0 ? void 0 : (_metadata$og1 = metadata.og) === null || _metadata$og1 === void 0 ? void 0 : _metadata$og1.description) : null)) : null));
31002
31111
  };
31003
- var OGMetadataContainer = styled__default.div(_templateObject$A || (_templateObject$A = _taggedTemplateLiteralLoose(["\n min-width: inherit;\n max-width: inherit;\n display: grid;\n grid-template-columns: 1fr;\n background-color: rgba(0, 0, 0, 0.034);\n border-radius: 6px;\n margin-bottom: 0.4rem;\n margin: 0 auto;\n margin-bottom: 0.8rem;\n &:hover {\n background-color: rgba(0, 0, 0, 0.1);\n cursor: pointer;\n }\n"])));
31004
- var ImageContainer = styled__default.div(_templateObject2$v || (_templateObject2$v = _taggedTemplateLiteralLoose(["\n max-width: 100%;\n max-height: 200px;\n width: 100%;\n height: 200px;\n margin: 0 auto;\n padding: 0.3rem;\n height: ", ";\n transition: height 0.2s ease;\n"])), function (_ref2) {
31112
+ var OGMetadataContainer = styled__default.div(_templateObject$A || (_templateObject$A = _taggedTemplateLiteralLoose(["\n min-width: inherit;\n max-width: inherit;\n display: grid;\n grid-template-columns: 1fr;\n background-color: rgba(0, 0, 0, 0.034);\n border-radius: 6px;\n margin-bottom: 0.4rem;\n margin: 0 auto;\n margin-bottom: ", ";\n &:hover {\n background-color: rgba(0, 0, 0, 0.1);\n cursor: pointer;\n }\n"])), function (_ref2) {
31005
31113
  var showOGMetadata = _ref2.showOGMetadata;
31006
- return !showOGMetadata ? '200px' : '0';
31114
+ return showOGMetadata ? '0.8rem' : '0';
31115
+ });
31116
+ var ImageContainer = styled__default.div(_templateObject2$v || (_templateObject2$v = _taggedTemplateLiteralLoose(["\n max-width: 100%;\n max-height: 200px;\n width: 100%;\n margin: 0 auto;\n padding: ", ";\n height: ", ";\n transition: height 0.2s ease;\n"])), function (_ref3) {
31117
+ var showOGMetadata = _ref3.showOGMetadata;
31118
+ return showOGMetadata ? '0.3rem' : '0';
31119
+ }, function (_ref4) {
31120
+ var showOGMetadata = _ref4.showOGMetadata;
31121
+ return showOGMetadata ? '200px' : '0';
31007
31122
  });
31008
31123
  var OGText = styled__default.div(_templateObject3$p || (_templateObject3$p = _taggedTemplateLiteralLoose(["\n width: 80%;\n padding: 0.5rem;\n margin: 0;\n"])));
31009
31124
  var Url = styled__default.p(_templateObject4$l || (_templateObject4$l = _taggedTemplateLiteralLoose(["\n font-weight: normal;\n font-size: 13px;\n padding: 0;\n margin: 0 0 12px 0;\n color: gray;\n"])));
@@ -32939,7 +33054,7 @@ var MessageList = function MessageList(_ref2) {
32939
33054
  clearVisibleMessagesMap();
32940
33055
  }
32941
33056
  if (channel) {
32942
- dispatch(getMessagesAC(channel, true, undefined, undefined, true));
33057
+ dispatch(getMessagesAC(channel, undefined, undefined, undefined, true));
32943
33058
  }
32944
33059
  if (channel.id) {
32945
33060
  if (channel.newMessageCount && channel.newMessageCount > 0) {
@@ -35863,11 +35978,11 @@ var AudioRecord = function AudioRecord(_ref) {
35863
35978
  setShowRecording(false);
35864
35979
  setStartRecording(false);
35865
35980
  setPlayAudio(false);
35866
- setCurrentTime(0);
35867
35981
  var audioRecording = getAudioRecordingFromMap(channelId);
35868
35982
  setRecordedFile(audioRecording || null);
35869
35983
  setRecordingIsReadyToPlay(!!audioRecording);
35870
35984
  }
35985
+ setCurrentTime(0);
35871
35986
  handleStopRecording();
35872
35987
  setCurrentChannelId(channelId);
35873
35988
  }, [channelId]);
@@ -37099,14 +37214,16 @@ var SendMessageInput = function SendMessageInput(_ref3) {
37099
37214
  text: messageText,
37100
37215
  mentionedMembers: draftMessage.mentionedMembers,
37101
37216
  messageForReply: messageForReply,
37102
- editorState: realEditorState
37217
+ editorState: realEditorState,
37218
+ bodyAttributes: messageBodyAttributes
37103
37219
  });
37104
37220
  } else {
37105
37221
  setDraftMessageToMap(activeChannel.id, {
37106
37222
  text: messageText,
37107
37223
  mentionedMembers: mentionedMembers,
37108
37224
  messageForReply: messageForReply,
37109
- editorState: realEditorState
37225
+ editorState: realEditorState,
37226
+ bodyAttributes: messageBodyAttributes
37110
37227
  });
37111
37228
  }
37112
37229
  if (!listenerIsAdded) {
@@ -37127,7 +37244,8 @@ var SendMessageInput = function SendMessageInput(_ref3) {
37127
37244
  setDraftMessageToMap(activeChannel.id, {
37128
37245
  text: messageText,
37129
37246
  mentionedMembers: mentionedMembers,
37130
- messageForReply: messageForReply
37247
+ messageForReply: messageForReply,
37248
+ bodyAttributes: messageBodyAttributes
37131
37249
  });
37132
37250
  }
37133
37251
  }, [mentionedMembers]);
@@ -37181,7 +37299,8 @@ var SendMessageInput = function SendMessageInput(_ref3) {
37181
37299
  setDraftMessageToMap(activeChannel.id, {
37182
37300
  text: messageText,
37183
37301
  mentionedMembers: mentionedMembers,
37184
- messageForReply: messageForReply
37302
+ messageForReply: messageForReply,
37303
+ bodyAttributes: messageBodyAttributes
37185
37304
  });
37186
37305
  }
37187
37306
  if (messageForReply && messageToEdit) {
@@ -40642,7 +40761,10 @@ var MessagesScrollToBottomButton = function MessagesScrollToBottomButton(_ref) {
40642
40761
  var showScrollToNewMessageButton = reactRedux.useSelector(showScrollToNewMessageButtonSelector);
40643
40762
  var messages = reactRedux.useSelector(activeChannelMessagesSelector) || [];
40644
40763
  var handleScrollToBottom = function handleScrollToBottom() {
40645
- dispatch(markMessagesAsReadAC(channel.id, [channel.lastMessage.id]));
40764
+ var user = getClient().user;
40765
+ if (channel.lastMessage.user.id !== user.id) {
40766
+ dispatch(markMessagesAsReadAC(channel.id, [channel.lastMessage.id]));
40767
+ }
40646
40768
  handleScrollToLastMessage(channel.lastMessage.id);
40647
40769
  };
40648
40770
  var handleScrollToLastMessage = function handleScrollToLastMessage(messageId) {