sceyt-chat-react-uikit 1.9.0 → 1.9.1-beta.2

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
@@ -14344,6 +14344,7 @@ var messageSlice = createSlice({
14344
14344
  if (state.pinnedMessagesListOpen) {
14345
14345
  state.pinnedMessagesListOpen = false;
14346
14346
  state.pinnedMessagesListCloseRequested = true;
14347
+ state.selectedMessagesMap = null;
14347
14348
  }
14348
14349
  },
14349
14350
  setMessageForReply: function setMessageForReply(state, action) {
@@ -19324,69 +19325,55 @@ function forwardMessage(action) {
19324
19325
  activeChannelId = getActiveChannelId();
19325
19326
  messageTid = null;
19326
19327
  _context15.p = 1;
19327
- if (!(accompanyingMessage !== null && accompanyingMessage !== void 0 && accompanyingMessage.body)) {
19328
- _context15.n = 2;
19329
- break;
19330
- }
19331
19328
  _context15.n = 2;
19332
- return effects.call(sendTextMessage, {
19333
- type: SEND_TEXT_MESSAGE,
19334
- payload: {
19335
- message: accompanyingMessage,
19336
- channelId: channelId,
19337
- connectionState: connectionState
19338
- }
19339
- });
19340
- case 2:
19341
- _context15.n = 3;
19342
19329
  return effects.call(getChannelFromMap, channelId);
19343
- case 3:
19330
+ case 2:
19344
19331
  channel = _context15.v;
19345
19332
  if (channel) {
19346
- _context15.n = 8;
19333
+ _context15.n = 7;
19347
19334
  break;
19348
19335
  }
19349
19336
  channel = getChannelFromAllChannels(channelId) || null;
19350
19337
  if (channel) {
19351
- _context15.n = 6;
19338
+ _context15.n = 5;
19352
19339
  break;
19353
19340
  }
19354
19341
  _SceytChatClient = getClient();
19355
- _context15.n = 4;
19342
+ _context15.n = 3;
19356
19343
  return effects.call(_SceytChatClient.getChannel, channelId);
19357
- case 4:
19344
+ case 3:
19358
19345
  channel = _context15.v;
19359
19346
  if (!channel) {
19360
- _context15.n = 5;
19347
+ _context15.n = 4;
19361
19348
  break;
19362
19349
  }
19363
19350
  setChannelInMap(channel);
19364
19351
  addChannelToAllChannels(_extends({}, channel));
19365
19352
  parsedChannel = JSON.parse(JSON.stringify(channel));
19366
- _context15.n = 5;
19353
+ _context15.n = 4;
19367
19354
  return effects.put(addChannelAC(parsedChannel));
19368
- case 5:
19369
- _context15.n = 7;
19355
+ case 4:
19356
+ _context15.n = 6;
19370
19357
  break;
19371
- case 6:
19358
+ case 5:
19372
19359
  setChannelInMap(channel);
19373
- case 7:
19360
+ case 6:
19374
19361
  if (!channel) {
19375
19362
  channel = getChannelFromAllChannelsMap(channelId);
19376
19363
  }
19377
- case 8:
19364
+ case 7:
19378
19365
  if (channel) {
19379
- _context15.n = 9;
19366
+ _context15.n = 8;
19380
19367
  break;
19381
19368
  }
19382
19369
  throw new Error('Channel not found');
19383
- case 9:
19370
+ case 8:
19384
19371
  mentionedUserIds = message.mentionedUsers ? message.mentionedUsers.map(function (member) {
19385
19372
  return member.id;
19386
19373
  }) : [];
19387
19374
  attachments = message.attachments;
19388
19375
  if ((channel.type === DEFAULT_CHANNEL_TYPE.BROADCAST || channel.type === DEFAULT_CHANNEL_TYPE.PUBLIC) && !(channel.userRole === 'admin' || channel.userRole === 'owner')) {
19389
- _context15.n = 18;
19376
+ _context15.n = 17;
19390
19377
  break;
19391
19378
  }
19392
19379
  if (message.attachments && message.attachments.length && action.type !== RESEND_MESSAGE) {
@@ -19439,28 +19426,28 @@ function forwardMessage(action) {
19439
19426
  pendingMessage.forwardingDetails.hops = message.forwardingDetails ? message.forwardingDetails.hops : 1;
19440
19427
  }
19441
19428
  if (!pendingMessage) {
19442
- _context15.n = 11;
19429
+ _context15.n = 10;
19443
19430
  break;
19444
19431
  }
19445
19432
  if (!(action.type !== RESEND_MESSAGE)) {
19446
- _context15.n = 11;
19433
+ _context15.n = 10;
19447
19434
  break;
19448
19435
  }
19449
- _context15.n = 10;
19436
+ _context15.n = 9;
19450
19437
  return effects.call(loadOGMetadataForLinkMessages, [pendingMessage], true);
19451
- case 10:
19452
- _context15.n = 11;
19438
+ case 9:
19439
+ _context15.n = 10;
19453
19440
  return effects.call(updateMessage$1, action.type, pendingMessage, channel.id, channelId === activeChannelId, message, isNotShowOwnMessageForward, false);
19454
- case 11:
19441
+ case 10:
19455
19442
  if (!(connectionState === CONNECTION_STATUS.CONNECTED)) {
19456
- _context15.n = 17;
19443
+ _context15.n = 16;
19457
19444
  break;
19458
19445
  }
19459
- _context15.n = 12;
19446
+ _context15.n = 11;
19460
19447
  return effects.call(channel.sendMessage, _extends({}, messageToSend, isNotShowOwnMessageForward ? {
19461
19448
  forwardingDetails: null
19462
19449
  } : {}));
19463
- case 12:
19450
+ case 11:
19464
19451
  messageResponse = _context15.v;
19465
19452
  responseAttachments = (messageResponse.attachments || attachments || []).map(function (attachment, index) {
19466
19453
  var localAttachment = attachments[index];
@@ -19476,12 +19463,12 @@ function forwardMessage(action) {
19476
19463
  parentMessage: isForward ? null : messageResponse.parentMessage
19477
19464
  });
19478
19465
  if (!(channelId === activeChannelId)) {
19479
- _context15.n = 13;
19466
+ _context15.n = 12;
19480
19467
  break;
19481
19468
  }
19482
- _context15.n = 13;
19469
+ _context15.n = 12;
19483
19470
  return effects.put(updateMessageAC(messageToSend.tid, JSON.parse(JSON.stringify(messageUpdateData)), true));
19484
- case 13:
19471
+ case 12:
19485
19472
  confirmedForward = JSON.parse(JSON.stringify(messageUpdateData));
19486
19473
  updateMessageOnMap(channel.id, {
19487
19474
  messageId: messageToSend.tid,
@@ -19490,15 +19477,15 @@ function forwardMessage(action) {
19490
19477
  addConfirmedMessageToCache(channel.id, confirmedForward);
19491
19478
  messageToUpdate = JSON.parse(JSON.stringify(messageUpdateData));
19492
19479
  if (!channel.unread) {
19493
- _context15.n = 14;
19480
+ _context15.n = 13;
19494
19481
  break;
19495
19482
  }
19496
- _context15.n = 14;
19483
+ _context15.n = 13;
19497
19484
  return effects.put(markChannelAsReadAC(channel.id));
19498
- case 14:
19485
+ case 13:
19499
19486
  resolvedLastMessage = getResolvedChannelLastMessage(channel.id, messageToUpdate, messageToSend);
19500
19487
  if (!lastMessageNeedsUpdate(getReduxChannelLastMessage(channel.id), resolvedLastMessage)) {
19501
- _context15.n = 16;
19488
+ _context15.n = 15;
19502
19489
  break;
19503
19490
  }
19504
19491
  updateChannelLastMessageOnAllChannels(channel.id, resolvedLastMessage);
@@ -19506,15 +19493,29 @@ function forwardMessage(action) {
19506
19493
  lastMessage: resolvedLastMessage,
19507
19494
  lastReactedMessage: null
19508
19495
  };
19509
- _context15.n = 15;
19496
+ _context15.n = 14;
19510
19497
  return effects.put(updateChannelDataAC(channel.id, _extends({}, channel, channelUpdateParam), true, false, true));
19511
- case 15:
19498
+ case 14:
19512
19499
  updateChannelOnAllChannels(channel.id, channelUpdateParam);
19513
- case 16:
19514
- _context15.n = 18;
19500
+ case 15:
19501
+ _context15.n = 17;
19515
19502
  break;
19516
- case 17:
19503
+ case 16:
19517
19504
  throw new Error('Connection required to forward message');
19505
+ case 17:
19506
+ if (!(accompanyingMessage !== null && accompanyingMessage !== void 0 && accompanyingMessage.body)) {
19507
+ _context15.n = 18;
19508
+ break;
19509
+ }
19510
+ _context15.n = 18;
19511
+ return effects.call(sendTextMessage, {
19512
+ type: SEND_TEXT_MESSAGE,
19513
+ payload: {
19514
+ message: accompanyingMessage,
19515
+ channelId: channelId,
19516
+ connectionState: connectionState
19517
+ }
19518
+ });
19518
19519
  case 18:
19519
19520
  _context15.n = 21;
19520
19521
  break;
@@ -25103,7 +25104,7 @@ var getResolvedChannelLastMessage$1 = function getResolvedChannelLastMessage(cha
25103
25104
  };
25104
25105
  function handleChannelMessageEvent(args, SceytChatClient) {
25105
25106
  var _storedChannel$lastMe3, _storedChannel$lastMe4, _store$getState$Messa, _storedChannel$lastMe9, _message$attachments;
25106
- var channel, message, messageToHandle, channelFilterTypes, activeChannelId, channelExists, channelForAdd, storedChannel, candidateLastMessage, resolvedLastMessage, messages, lastMessageIsInActiveWindow, isSameLastMessage, resolvedLastMessageUpdate, shouldUpdateLastMessage, shouldUpdateReduxLastMessage, _store$getState$Messa2, _storedChannel$lastMe7, visibleMessagesMap, lastMessageIsVisible, messagesHasNext, existingMessage, tabIsActive, channelDataUpdate, groupName, showNotifications, _tabIsActive, _state$ThemeReducer$n, _state$ThemeReducer$n2, _state$ThemeReducer$n3, _state$ThemeReducer$n4, _state$ThemeReducer$n5, _state$ThemeReducer$n6, contactsMap, getFromContacts, state, theme, accentColor, textSecondary, messageBody;
25107
+ var channel, message, messageToHandle, channelFilterTypes, activeChannelId, channelExists, channelForAdd, storedChannel, candidateLastMessage, resolvedLastMessage, messages, lastMessageIsInActiveWindow, isSameLastMessage, shouldRetainStoredDeliveryStatus, resolvedDeliveryStatus, resolvedLastMessageUpdate, shouldUpdateLastMessage, shouldUpdateReduxLastMessage, _store$getState$Messa2, _storedChannel$lastMe7, visibleMessagesMap, lastMessageIsVisible, messagesHasNext, existingMessage, tabIsActive, channelDataUpdate, groupName, showNotifications, _tabIsActive, _state$ThemeReducer$n, _state$ThemeReducer$n2, _state$ThemeReducer$n3, _state$ThemeReducer$n4, _state$ThemeReducer$n5, _state$ThemeReducer$n6, contactsMap, getFromContacts, state, theme, accentColor, textSecondary, messageBody;
25107
25108
  return _regenerator().w(function (_context2) {
25108
25109
  while (1) switch (_context2.n) {
25109
25110
  case 0:
@@ -25130,9 +25131,11 @@ function handleChannelMessageEvent(args, SceytChatClient) {
25130
25131
  return m.id === ((_storedChannel$lastMe5 = storedChannel.lastMessage) === null || _storedChannel$lastMe5 === void 0 ? void 0 : _storedChannel$lastMe5.id) || (storedChannel === null || storedChannel === void 0 ? void 0 : (_storedChannel$lastMe6 = storedChannel.lastMessage) === null || _storedChannel$lastMe6 === void 0 ? void 0 : _storedChannel$lastMe6.tid) === m.tid;
25131
25132
  }) : false;
25132
25133
  isSameLastMessage = (storedChannel === null || storedChannel === void 0 ? void 0 : storedChannel.lastMessage) && resolvedLastMessage && (resolvedLastMessage.id && storedChannel.lastMessage.id === resolvedLastMessage.id || resolvedLastMessage.tid && storedChannel.lastMessage.tid === resolvedLastMessage.tid);
25134
+ shouldRetainStoredDeliveryStatus = !!isSameLastMessage && shouldSkipDeliveryStatusUpdate(message.deliveryStatus, storedChannel.lastMessage.deliveryStatus);
25135
+ resolvedDeliveryStatus = shouldRetainStoredDeliveryStatus ? storedChannel.lastMessage.deliveryStatus : message.deliveryStatus;
25133
25136
  resolvedLastMessageUpdate = isSameLastMessage ? _extends({}, storedChannel.lastMessage, {
25134
25137
  id: message.id,
25135
- deliveryStatus: message.deliveryStatus,
25138
+ deliveryStatus: resolvedDeliveryStatus,
25136
25139
  state: MESSAGE_STATUS.UNMODIFIED
25137
25140
  }) : resolvedLastMessage;
25138
25141
  shouldUpdateLastMessage = lastMessageNeedsUpdate$1(storedChannel === null || storedChannel === void 0 ? void 0 : storedChannel.lastMessage, resolvedLastMessageUpdate);
@@ -25179,7 +25182,7 @@ function handleChannelMessageEvent(args, SceytChatClient) {
25179
25182
  _context2.n = 5;
25180
25183
  return effects.put(updateMessageAC(existingMessage.id || existingMessage.tid, _extends({}, existingMessage, {
25181
25184
  id: message.id,
25182
- deliveryStatus: message.deliveryStatus,
25185
+ deliveryStatus: resolvedDeliveryStatus,
25183
25186
  state: MESSAGE_STATUS.UNMODIFIED
25184
25187
  })));
25185
25188
  case 5:
@@ -25202,7 +25205,9 @@ function handleChannelMessageEvent(args, SceytChatClient) {
25202
25205
  }, 50);
25203
25206
  }
25204
25207
  case 10:
25205
- addMessageToMap(channel.id, message);
25208
+ addMessageToMap(channel.id, _extends({}, message, {
25209
+ deliveryStatus: resolvedDeliveryStatus
25210
+ }));
25206
25211
  channelDataUpdate = _extends({
25207
25212
  messageCount: channelForAdd.messageCount,
25208
25213
  unread: channelForAdd.unread,
@@ -42104,7 +42109,7 @@ function ForwardMessagePopup(_ref2) {
42104
42109
  }, /*#__PURE__*/React__default.createElement(ForwardLinkPreviewIcon, {
42105
42110
  color: accentColor,
42106
42111
  bg: surface1
42107
- }))) : firstForwardAttachment ? (/*#__PURE__*/React__default.createElement(ForwardPreviewIconWrapper, {
42112
+ }))) : firstForwardAttachment && firstForwardAttachment.type !== attachmentTypes.voice ? (/*#__PURE__*/React__default.createElement(ForwardPreviewIconWrapper, {
42108
42113
  backgroundColor: accentColor,
42109
42114
  iconColor: textOnPrimary
42110
42115
  }, /*#__PURE__*/React__default.createElement(SvgChoseFile, null))) : null, /*#__PURE__*/React__default.createElement(ForwardPreviewInfo, null, /*#__PURE__*/React__default.createElement(ForwardPreviewTitle, {
@@ -45735,6 +45740,8 @@ var PinnedMessagesList = function PinnedMessagesList(_ref) {
45735
45740
  var channelId = _ref.channelId,
45736
45741
  onClose = _ref.onClose,
45737
45742
  closeRequested = _ref.closeRequested,
45743
+ _ref$selectionIsActiv = _ref.selectionIsActive,
45744
+ selectionIsActive = _ref$selectionIsActiv === void 0 ? false : _ref$selectionIsActiv,
45738
45745
  renderMessage = _ref.renderMessage,
45739
45746
  ScrollContainer = _ref.ScrollContainer,
45740
45747
  MessagesContainer = _ref.MessagesContainer;
@@ -45886,7 +45893,7 @@ var PinnedMessagesList = function PinnedMessagesList(_ref) {
45886
45893
  prevMessage: previousMessage || null,
45887
45894
  nextMessage: ((_displayedPins2 = displayedPins[index + 1]) === null || _displayedPins2 === void 0 ? void 0 : _displayedPins2.message) || null,
45888
45895
  index: index
45889
- }), (pin.message.id || pin.message.tid) && (/*#__PURE__*/React__default.createElement(GoToMessageButton, {
45896
+ }), !selectionIsActive && (pin.message.id || pin.message.tid) && (/*#__PURE__*/React__default.createElement(GoToMessageButton, {
45890
45897
  background: backgroundSections,
45891
45898
  className: 'pinned-message-navigation',
45892
45899
  type: 'button',
@@ -53034,6 +53041,7 @@ var MessageList = function MessageList(_ref) {
53034
53041
  channelId: channel.id,
53035
53042
  onClose: closePinnedMessagesList,
53036
53043
  closeRequested: pinnedMessagesListCloseRequested,
53044
+ selectionIsActive: Boolean(selectedMessagesMap === null || selectedMessagesMap === void 0 ? void 0 : selectedMessagesMap.size),
53037
53045
  ScrollContainer: Container$j,
53038
53046
  MessagesContainer: MessagesBox,
53039
53047
  renderMessage: function renderMessage(_ref3) {
@@ -53440,6 +53448,9 @@ var MessagesContainer = function MessagesContainer(_ref) {
53440
53448
  }));
53441
53449
  };
53442
53450
 
53451
+ function isMentionTextUnchanged(originalText, currentText) {
53452
+ return originalText == null || originalText === currentText;
53453
+ }
53443
53454
  function convertMentionElement(domNode) {
53444
53455
  var textContent = domNode.textContent;
53445
53456
  if (textContent !== null) {
@@ -53465,6 +53476,7 @@ var MentionNode = /*#__PURE__*/function (_TextNode) {
53465
53476
  value: function exportJSON() {
53466
53477
  return _extends({}, _superPropGet(MentionNode, "exportJSON", this, 3)([]), {
53467
53478
  mentionName: this.__mention.id,
53479
+ mentionText: this.__mention.name,
53468
53480
  type: 'mention',
53469
53481
  version: 1
53470
53482
  });
@@ -53473,9 +53485,26 @@ var MentionNode = /*#__PURE__*/function (_TextNode) {
53473
53485
  key: "createDOM",
53474
53486
  value: function createDOM(config) {
53475
53487
  var dom = _superPropGet(MentionNode, "createDOM", this, 3)([config]);
53476
- dom.className = 'mention';
53488
+ if (this.isUnchangedMention()) {
53489
+ dom.className = 'mention';
53490
+ }
53477
53491
  return dom;
53478
53492
  }
53493
+ }, {
53494
+ key: "updateDOM",
53495
+ value: function updateDOM(prevNode, dom, config) {
53496
+ var wasUnchangedMention = prevNode.isUnchangedMention();
53497
+ var isUnchangedMention = this.isUnchangedMention();
53498
+ if (wasUnchangedMention !== isUnchangedMention) {
53499
+ dom.classList.toggle('mention', isUnchangedMention);
53500
+ }
53501
+ return _superPropGet(MentionNode, "updateDOM", this, 3)([prevNode, dom, config]);
53502
+ }
53503
+ }, {
53504
+ key: "isUnchangedMention",
53505
+ value: function isUnchangedMention() {
53506
+ return isMentionTextUnchanged(this.__mention.name, this.__text);
53507
+ }
53479
53508
  }, {
53480
53509
  key: "exportDOM",
53481
53510
  value: function exportDOM() {
@@ -53514,7 +53543,11 @@ var MentionNode = /*#__PURE__*/function (_TextNode) {
53514
53543
  }, {
53515
53544
  key: "importJSON",
53516
53545
  value: function importJSON(serializedNode) {
53517
- var node = $createMentionNode(serializedNode.mentionName);
53546
+ var _serializedNode$menti;
53547
+ var node = $createMentionNode({
53548
+ id: serializedNode.mentionName,
53549
+ name: (_serializedNode$menti = serializedNode.mentionText) != null ? _serializedNode$menti : serializedNode.text
53550
+ });
53518
53551
  node.setTextContent(serializedNode.text);
53519
53552
  node.setFormat(serializedNode.format);
53520
53553
  node.setDetail(serializedNode.detail);
@@ -53686,7 +53719,6 @@ function MentionsContainer(_ref2) {
53686
53719
  selectedIndex = _ref2.selectedIndex,
53687
53720
  selectOptionAndCleanUp = _ref2.selectOptionAndCleanUp,
53688
53721
  setHighlightedIndex = _ref2.setHighlightedIndex,
53689
- setMentionsIsOpen = _ref2.setMentionsIsOpen,
53690
53722
  channelId = _ref2.channelId,
53691
53723
  alignLeft = _ref2.alignLeft,
53692
53724
  handleLeftOffset = _ref2.handleLeftOffset;
@@ -53728,7 +53760,6 @@ function MentionsContainer(_ref2) {
53728
53760
  };
53729
53761
  }, [selectedIndex]);
53730
53762
  React.useEffect(function () {
53731
- setMentionsIsOpen(true);
53732
53763
  var menuTimeOut = setTimeout(function () {
53733
53764
  var menuElement = document.getElementById('typeahead-menu');
53734
53765
  if (menuElement) {
@@ -53742,7 +53773,6 @@ function MentionsContainer(_ref2) {
53742
53773
  menuElement.style.zIndex = '-1';
53743
53774
  }
53744
53775
  selectOptionAndCleanUp(null);
53745
- setMentionsIsOpen(false);
53746
53776
  };
53747
53777
  }, []);
53748
53778
  var handleScroll = React.useCallback(function (e) {
@@ -53792,7 +53822,6 @@ function MentionsPlugin(_ref3) {
53792
53822
  userId = _ref3.userId,
53793
53823
  getFromContacts = _ref3.getFromContacts,
53794
53824
  setMentionMember = _ref3.setMentionMember,
53795
- setMentionsIsOpen = _ref3.setMentionsIsOpen,
53796
53825
  members = _ref3.members,
53797
53826
  channelId = _ref3.channelId;
53798
53827
  var _useLexicalComposerCo = LexicalComposerContext.useLexicalComposerContext(),
@@ -53866,7 +53895,6 @@ function MentionsPlugin(_ref3) {
53866
53895
  return anchorElementRef.current ? (/*#__PURE__*/React__default.createElement(MentionsContainer, {
53867
53896
  queryString: queryString,
53868
53897
  options: options,
53869
- setMentionsIsOpen: setMentionsIsOpen,
53870
53898
  selectOptionAndCleanUp: selectOptionAndCleanUp,
53871
53899
  selectedIndex: selectedIndex,
53872
53900
  setHighlightedIndex: setHighlightedIndex,
@@ -54604,6 +54632,48 @@ function EditMessagePlugin(_ref) {
54604
54632
  return null;
54605
54633
  }
54606
54634
 
54635
+ function serializeFormattedMessage(messageText, children, offsetList) {
54636
+ var currentOffsetDiff = 0;
54637
+ var newMessageText = messageText;
54638
+ var messageBodyAttributes = [];
54639
+ children.forEach(function (child, index) {
54640
+ var offsetRange = offsetList[index];
54641
+ if (!offsetRange) return;
54642
+ var offset = offsetRange.start;
54643
+ var length = offsetRange.end - offsetRange.start;
54644
+ var attributeOffset = offset + currentOffsetDiff;
54645
+ var attributeTypes = bodyAttributesMapByType[child.format];
54646
+ var isUnchangedMention = child.type === 'mention' && Boolean(child.mentionName) && isMentionTextUnchanged(child.mentionText, child.text);
54647
+ if (isUnchangedMention) {
54648
+ var mentionId = "@" + child.mentionName;
54649
+ var idLength = mentionId.length;
54650
+ newMessageText = "" + newMessageText.slice(0, attributeOffset) + mentionId + newMessageText.slice(attributeOffset + length);
54651
+ currentOffsetDiff += idLength - length;
54652
+ messageBodyAttributes.push({
54653
+ type: 'mention',
54654
+ metadata: child.mentionName,
54655
+ offset: attributeOffset,
54656
+ length: idLength
54657
+ });
54658
+ }
54659
+ if (attributeTypes) {
54660
+ var formattedLength = isUnchangedMention ? ("@" + child.mentionName).length : length;
54661
+ var formattedOffset = attributeOffset;
54662
+ attributeTypes.forEach(function (attributeType) {
54663
+ messageBodyAttributes.push({
54664
+ type: attributeType,
54665
+ metadata: child.metadata || '',
54666
+ offset: formattedOffset,
54667
+ length: formattedLength
54668
+ });
54669
+ });
54670
+ }
54671
+ });
54672
+ return {
54673
+ messageText: newMessageText,
54674
+ bodyAttributes: messageBodyAttributes
54675
+ };
54676
+ }
54607
54677
  function parseHTMLToFormattedSegments(html) {
54608
54678
  var parser = new DOMParser();
54609
54679
  var doc = parser.parseFromString(html, 'text/html');
@@ -54833,74 +54903,11 @@ function useFormatMessage(editor, editorState, setMessageBodyAttributes, setMess
54833
54903
  var parsedEditorState = editorState.toJSON();
54834
54904
  var offsetView = offset.$createOffsetView(editor);
54835
54905
  var offsetList = Array.from(offsetView._offsetMap.values());
54836
- var messageBodyAttributes = [];
54837
54906
  if (parsedEditorState.root && parsedEditorState.root.children && parsedEditorState.root.children.length && (parsedEditorState.root.children[0].children.length > 1 || parsedEditorState.root.children[0].children[0] && (parsedEditorState.root.children[0].children[0].type === 'mention' || parsedEditorState.root.children[0].children[0].format > 0))) {
54838
- var currentOffsetDiff = 0;
54839
- var newMessageText = messageText;
54840
- parsedEditorState.root.children[0].children.forEach(function (child, index) {
54841
- if (child.type === 'mention') {
54842
- var offset = offsetList[index].start;
54843
- var length = offsetList[index].end - offsetList[index].start;
54844
- var mentionId = "@" + child.mentionName;
54845
- var idLength = mentionId.length;
54846
- newMessageText = "" + newMessageText.slice(0, offset + currentOffsetDiff) + mentionId + newMessageText.slice(offset + currentOffsetDiff + length);
54847
- var menIndex = offset + currentOffsetDiff;
54848
- currentOffsetDiff += idLength - length;
54849
- messageBodyAttributes.push({
54850
- type: 'mention',
54851
- metadata: child.mentionName,
54852
- offset: menIndex,
54853
- length: idLength
54854
- });
54855
- if (child.format) {
54856
- var attributeTypes = bodyAttributesMapByType[child.format];
54857
- if (attributeTypes.length > 1) {
54858
- attributeTypes.forEach(function (attributeType) {
54859
- messageBodyAttributes.push({
54860
- type: attributeType,
54861
- metadata: child.metadata || '',
54862
- offset: menIndex,
54863
- length: length
54864
- });
54865
- });
54866
- } else {
54867
- messageBodyAttributes.push({
54868
- type: attributeTypes[0],
54869
- metadata: child.metadata || '',
54870
- offset: menIndex,
54871
- length: length
54872
- });
54873
- }
54874
- }
54875
- } else {
54876
- var _attributeTypes = bodyAttributesMapByType[child.format];
54877
- if (_attributeTypes) {
54878
- var _offset = offsetList[index].start;
54879
- var _length = offsetList[index].end - offsetList[index].start;
54880
- var attIndex = _offset + currentOffsetDiff;
54881
- if (_attributeTypes.length > 1) {
54882
- _attributeTypes.forEach(function (attributeType) {
54883
- messageBodyAttributes.push({
54884
- type: attributeType,
54885
- metadata: child.metadata || '',
54886
- offset: attIndex,
54887
- length: _length
54888
- });
54889
- });
54890
- } else {
54891
- messageBodyAttributes.push({
54892
- type: _attributeTypes[0],
54893
- metadata: child.metadata || '',
54894
- offset: attIndex,
54895
- length: _length
54896
- });
54897
- }
54898
- }
54899
- }
54900
- });
54907
+ var serializedMessage = serializeFormattedMessage(messageText, parsedEditorState.root.children[0].children, offsetList);
54901
54908
  if (messageText) {
54902
- setMessageText(newMessageText);
54903
- setMessageBodyAttributes(messageBodyAttributes);
54909
+ setMessageText(serializedMessage.messageText);
54910
+ setMessageBodyAttributes(serializedMessage.bodyAttributes);
54904
54911
  } else {
54905
54912
  setMessageText(messageToEdit ? messageToEdit.body : '');
54906
54913
  }
@@ -56912,56 +56919,53 @@ var SendMessageInput = function SendMessageInput(_ref3) {
56912
56919
  var _useState16 = React.useState(''),
56913
56920
  browser = _useState16[0],
56914
56921
  setBrowser = _useState16[1];
56915
- var _useState17 = React.useState(false),
56916
- mentionsIsOpen = _useState17[0],
56917
- setMentionsIsOpen = _useState17[1];
56918
- var _useState18 = React.useState(),
56919
- inputContainerHeight = _useState18[0],
56920
- setInputContainerHeight = _useState18[1];
56922
+ var _useState17 = React.useState(),
56923
+ inputContainerHeight = _useState17[0],
56924
+ setInputContainerHeight = _useState17[1];
56921
56925
  var selectedText = React.useRef(null);
56926
+ var _useState18 = React.useState(),
56927
+ typingTimout = _useState18[0],
56928
+ setTypingTimout = _useState18[1];
56922
56929
  var _useState19 = React.useState(),
56923
- typingTimout = _useState19[0],
56924
- setTypingTimout = _useState19[1];
56925
- var _useState20 = React.useState(),
56926
- inTypingStateTimout = _useState20[0],
56927
- setInTypingStateTimout = _useState20[1];
56930
+ inTypingStateTimout = _useState19[0],
56931
+ setInTypingStateTimout = _useState19[1];
56932
+ var _useState20 = React.useState(false),
56933
+ inTypingState = _useState20[0],
56934
+ setInTypingState = _useState20[1];
56928
56935
  var _useState21 = React.useState(false),
56929
- inTypingState = _useState21[0],
56930
- setInTypingState = _useState21[1];
56936
+ sendMessageIsActive = _useState21[0],
56937
+ setSendMessageIsActive = _useState21[1];
56931
56938
  var _useState22 = React.useState(false),
56932
- sendMessageIsActive = _useState22[0],
56933
- setSendMessageIsActive = _useState22[1];
56934
- var _useState23 = React.useState(false),
56935
- isSendMessageInFlight = _useState23[0],
56936
- setIsSendMessageInFlight = _useState23[1];
56937
- var _useState24 = React.useState([]),
56938
- attachments = _useState24[0],
56939
- setAttachments = _useState24[1];
56939
+ isSendMessageInFlight = _useState22[0],
56940
+ setIsSendMessageInFlight = _useState22[1];
56941
+ var _useState23 = React.useState([]),
56942
+ attachments = _useState23[0],
56943
+ setAttachments = _useState23[1];
56940
56944
  var attachmentsRef = React.useRef([]);
56945
+ var _useState24 = React.useState(false),
56946
+ forwardPopupOpen = _useState24[0],
56947
+ setForwardPopupOpen = _useState24[1];
56941
56948
  var _useState25 = React.useState(false),
56942
- forwardPopupOpen = _useState25[0],
56943
- setForwardPopupOpen = _useState25[1];
56949
+ deletePopupOpen = _useState25[0],
56950
+ setDeletePopupOpen = _useState25[1];
56944
56951
  var _useState26 = React.useState(false),
56945
- deletePopupOpen = _useState26[0],
56946
- setDeletePopupOpen = _useState26[1];
56947
- var _useState27 = React.useState(false),
56948
- isIncomingMessage = _useState27[0],
56949
- setIsIncomingMessage = _useState27[1];
56950
- var _useState28 = React.useState('.jpg,.jpeg,.png,.gif,.mp4,.mov,.avi,.wmv,.flv,.webm,.jfif'),
56951
- mediaExtensions = _useState28[0],
56952
- setMediaExtensions = _useState28[1];
56953
- var _useState29 = React.useState(''),
56954
- uploadErrorMessage = _useState29[0],
56955
- setUploadErrorMessage = _useState29[1];
56956
- var _useState30 = React.useState(false),
56957
- viewOnce = _useState30[0],
56958
- setViewOnce = _useState30[1];
56959
- var _useState31 = React.useState(areDraftMessagesHydrated()),
56960
- draftsHydrated = _useState31[0],
56961
- setDraftsHydrated = _useState31[1];
56962
- var _useState32 = React.useState(activeChannel.id || ''),
56963
- composerChannelId = _useState32[0],
56964
- setComposerChannelId = _useState32[1];
56952
+ isIncomingMessage = _useState26[0],
56953
+ setIsIncomingMessage = _useState26[1];
56954
+ var _useState27 = React.useState('.jpg,.jpeg,.png,.gif,.mp4,.mov,.avi,.wmv,.flv,.webm,.jfif'),
56955
+ mediaExtensions = _useState27[0],
56956
+ setMediaExtensions = _useState27[1];
56957
+ var _useState28 = React.useState(''),
56958
+ uploadErrorMessage = _useState28[0],
56959
+ setUploadErrorMessage = _useState28[1];
56960
+ var _useState29 = React.useState(false),
56961
+ viewOnce = _useState29[0],
56962
+ setViewOnce = _useState29[1];
56963
+ var _useState30 = React.useState(areDraftMessagesHydrated()),
56964
+ draftsHydrated = _useState30[0],
56965
+ setDraftsHydrated = _useState30[1];
56966
+ var _useState31 = React.useState(activeChannel.id || ''),
56967
+ composerChannelId = _useState31[0],
56968
+ setComposerChannelId = _useState31[1];
56965
56969
  var typingOrRecordingIndicator = useSelector(typingOrRecordingIndicatorArraySelector(activeChannel.id));
56966
56970
  var contactsMap = useSelector(contactsMapSelector);
56967
56971
  var connectionStatus = useSelector(connectionStatusSelector, reactRedux.shallowEqual);
@@ -56985,36 +56989,36 @@ var SendMessageInput = function SendMessageInput(_ref3) {
56985
56989
  setIsSendMessageInFlight(false);
56986
56990
  });
56987
56991
  };
56988
- var _useState33 = React.useState(),
56989
- realEditorState = _useState33[0],
56990
- setRealEditorState = _useState33[1];
56991
- var _useState34 = React.useState(null),
56992
- floatingAnchorElem = _useState34[0],
56993
- setFloatingAnchorElem = _useState34[1];
56992
+ var _useState32 = React.useState(),
56993
+ realEditorState = _useState32[0],
56994
+ setRealEditorState = _useState32[1];
56995
+ var _useState33 = React.useState(null),
56996
+ floatingAnchorElem = _useState33[0],
56997
+ setFloatingAnchorElem = _useState33[1];
56998
+ var _useState34 = React.useState(false),
56999
+ isSmallWidthViewport = _useState34[0],
57000
+ setIsSmallWidthViewport = _useState34[1];
56994
57001
  var _useState35 = React.useState(false),
56995
- isSmallWidthViewport = _useState35[0],
56996
- setIsSmallWidthViewport = _useState35[1];
56997
- var _useState36 = React.useState(false),
56998
- isScrolling = _useState36[0],
56999
- setIsScrolling = _useState36[1];
57002
+ isScrolling = _useState35[0],
57003
+ setIsScrolling = _useState35[1];
57004
+ var _useState36 = React.useState(null),
57005
+ linkPreview = _useState36[0],
57006
+ setLinkPreview = _useState36[1];
57000
57007
  var _useState37 = React.useState(null),
57001
- linkPreview = _useState37[0],
57002
- setLinkPreview = _useState37[1];
57003
- var _useState38 = React.useState(null),
57004
- detectedUrl = _useState38[0],
57005
- setDetectedUrl = _useState38[1];
57006
- var _useState39 = React.useState(new Set()),
57007
- dismissedUrls = _useState39[0],
57008
- setDismissedUrls = _useState39[1];
57008
+ detectedUrl = _useState37[0],
57009
+ setDetectedUrl = _useState37[1];
57010
+ var _useState38 = React.useState(new Set()),
57011
+ dismissedUrls = _useState38[0],
57012
+ setDismissedUrls = _useState38[1];
57013
+ var _useState39 = React.useState(false),
57014
+ isClosingPreview = _useState39[0],
57015
+ setIsClosingPreview = _useState39[1];
57009
57016
  var _useState40 = React.useState(false),
57010
- isClosingPreview = _useState40[0],
57011
- setIsClosingPreview = _useState40[1];
57017
+ replyLinkPreviewImageFailed = _useState40[0],
57018
+ setReplyLinkPreviewImageFailed = _useState40[1];
57012
57019
  var _useState41 = React.useState(false),
57013
- replyLinkPreviewImageFailed = _useState41[0],
57014
- setReplyLinkPreviewImageFailed = _useState41[1];
57015
- var _useState42 = React.useState(false),
57016
- linkPreviewImageFailed = _useState42[0],
57017
- setLinkPreviewImageFailed = _useState42[1];
57020
+ linkPreviewImageFailed = _useState41[0],
57021
+ setLinkPreviewImageFailed = _useState41[1];
57018
57022
  var addAttachmentByMenu = showChooseFileAttachment && showChooseMediaAttachment;
57019
57023
  var linkify = new LinkifyIt();
57020
57024
  var oGMetadata = useSelector(function (state) {
@@ -57284,7 +57288,7 @@ var SendMessageInput = function SendMessageInput(_ref3) {
57284
57288
  });
57285
57289
  }
57286
57290
  }
57287
- if (shouldSend && !mentionsIsOpen) {
57291
+ if (shouldSend) {
57288
57292
  if (isSendMessageInFlightRef.current) {
57289
57293
  event.preventDefault();
57290
57294
  event.stopPropagation();
@@ -58797,7 +58801,6 @@ var SendMessageInput = function SendMessageInput(_ref3) {
58797
58801
  userId: user.id,
58798
58802
  getFromContacts: getFromContacts,
58799
58803
  members: activeChannelMembers,
58800
- setMentionsIsOpen: setMentionsIsOpen,
58801
58804
  channelId: activeChannel === null || activeChannel === void 0 ? void 0 : activeChannel.id
58802
58805
  })), /*#__PURE__*/React__default.createElement(LexicalHistoryPlugin.HistoryPlugin, null), /*#__PURE__*/React__default.createElement(LexicalRichTextPlugin.RichTextPlugin, {
58803
58806
  contentEditable: /*#__PURE__*/React__default.createElement("div", {