sceyt-chat-react-uikit 1.9.0-beta.13 → 1.9.0-beta.15

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.modern.js CHANGED
@@ -31495,11 +31495,38 @@ function MembersSaga$1() {
31495
31495
  var isPinnedMessageDeleted = function isPinnedMessageDeleted(message) {
31496
31496
  return (message === null || message === void 0 ? void 0 : message.state) === MESSAGE_STATUS.DELETE;
31497
31497
  };
31498
- var getPinnedMessagePreview = function getPinnedMessagePreview(message) {
31499
- var _message$body, _message$attachments;
31498
+ var getPinnedMessageBody = function getPinnedMessageBody(message, contactsMap, getFromContacts) {
31499
+ var _message$bodyAttribut;
31500
+ if (contactsMap === void 0) {
31501
+ contactsMap = {};
31502
+ }
31503
+ if (getFromContacts === void 0) {
31504
+ getFromContacts = false;
31505
+ }
31506
+ var body = (message === null || message === void 0 ? void 0 : message.body) || '';
31507
+ if (!body || !(message !== null && message !== void 0 && (_message$bodyAttribut = message.bodyAttributes) !== null && _message$bodyAttribut !== void 0 && _message$bodyAttribut.length)) return body;
31508
+ var formattedBody = MessageTextFormat({
31509
+ text: body,
31510
+ message: message,
31511
+ contactsMap: contactsMap,
31512
+ getFromContacts: getFromContacts,
31513
+ asSampleText: true,
31514
+ accentColor: '',
31515
+ textSecondary: ''
31516
+ });
31517
+ return Array.isArray(formattedBody) ? formattedBody.join('') : String(formattedBody);
31518
+ };
31519
+ var getPinnedMessagePreview = function getPinnedMessagePreview(message, contactsMap, getFromContacts) {
31520
+ var _message$attachments;
31521
+ if (contactsMap === void 0) {
31522
+ contactsMap = {};
31523
+ }
31524
+ if (getFromContacts === void 0) {
31525
+ getFromContacts = false;
31526
+ }
31500
31527
  if (!message) return '';
31501
31528
  if (isPinnedMessageDeleted(message)) return 'Deleted message';
31502
- var body = (_message$body = message.body) === null || _message$body === void 0 ? void 0 : _message$body.trim();
31529
+ var body = getPinnedMessageBody(message, contactsMap, getFromContacts).trim();
31503
31530
  if (body) return body;
31504
31531
  if (message.pollDetails) return message.pollDetails.name || 'Poll';
31505
31532
  var attachment = (_message$attachments = message.attachments) === null || _message$attachments === void 0 ? void 0 : _message$attachments[0];
@@ -33898,16 +33925,13 @@ var ChannelMessageText = function ChannelMessageText(_ref2) {
33898
33925
  unsupportedMessage = _ref2.unsupportedMessage;
33899
33926
  var isViewOnce = (lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.type) === MESSAGE_TYPE.VIEW_ONCE && (lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.viewOnce);
33900
33927
  var systemMessageActor = lastMessage.user ? lastMessage.user.id === user.id ? 'You' : makeUsername(lastMessage.user && contactsMap && contactsMap[lastMessage.user.id], lastMessage.user, getFromContacts, true) : '';
33901
- var audioRecording = useMemo(function () {
33902
- return getAudioRecordingFromMap(channel.id);
33903
- }, [channel.id, draftMessageText]);
33904
33928
  return /*#__PURE__*/React__default.createElement(MessageTextContainer, null, isTypingOrRecording && (/*#__PURE__*/React__default.createElement(TypingIndicator, null, !isDirectChannel && /*#__PURE__*/React__default.createElement(Points, {
33905
33929
  color: textPrimary
33906
33930
  }, ":"), typingOrRecording.isTyping ? 'typing' : 'recording', "...")), !isTypingOrRecording && (draftMessageText ? (/*#__PURE__*/React__default.createElement(DraftMessageText, {
33907
33931
  color: textSecondary
33908
33932
  }, !lastMessage.body && (_lastMessage$attachme = lastMessage.attachments) !== null && _lastMessage$attachme !== void 0 && _lastMessage$attachme.length ? LastMessageAttachments({
33909
33933
  lastMessage: lastMessage
33910
- }) : null, audioRecording && /*#__PURE__*/React__default.createElement(SvgVoiceIcon, null), (!((_lastMessage$attachme2 = lastMessage.attachments) !== null && _lastMessage$attachme2 !== void 0 && _lastMessage$attachme2.length) || lastMessage.body) && MessageTextFormat({
33934
+ }) : null, (!((_lastMessage$attachme2 = lastMessage.attachments) !== null && _lastMessage$attachme2 !== void 0 && _lastMessage$attachme2.length) || lastMessage.body) && MessageTextFormat({
33911
33935
  text: (_lastMessage$attachme3 = lastMessage.attachments) !== null && _lastMessage$attachme3 !== void 0 && _lastMessage$attachme3.length ? lastMessage.body : draftMessageText,
33912
33936
  message: lastMessage,
33913
33937
  contactsMap: contactsMap,
@@ -42549,7 +42573,7 @@ var SliderPopup = function SliderPopup(_ref) {
42549
42573
  };
42550
42574
  var handleClicks = useCallback(function (e) {
42551
42575
  var target = e.target;
42552
- if (!target.closest('.custom_carousel_item') && !target.closest('.custom_carousel_arrow')) {
42576
+ if (!target.closest('.slider-preview-media, .custom_video_player, .custom_carousel_arrow')) {
42553
42577
  if (currentFileType === 'image') {
42554
42578
  log.info('[MEDIA_IMAGE_SLIDER] outside click closing slider ' + JSON.stringify({
42555
42579
  channelId: channel.id,
@@ -42986,6 +43010,7 @@ var SliderPopup = function SliderPopup(_ref) {
42986
43010
  })))), isItemLoading(file.id) && file.type === 'image' && (/*#__PURE__*/React__default.createElement(ItemLoadingCont, null, /*#__PURE__*/React__default.createElement(UploadingIcon, {
42987
43011
  color: textOnPrimary
42988
43012
  }))), file.type === 'image' ? (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, ((file.id === (currentFile === null || currentFile === void 0 ? void 0 : currentFile.id) ? currentAttachmentUrl : undefined) || attachmentUpdatedMap[getAttachmentURLWithVersion(file.url + '_original_image_url')] || getMediaThumbnailSource(file)) && (/*#__PURE__*/React__default.createElement("img", {
43013
+ className: 'slider-preview-media',
42989
43014
  loading: 'eager',
42990
43015
  decoding: 'async',
42991
43016
  draggable: false,
@@ -43100,7 +43125,7 @@ var IconWrapper = styled.span(_templateObject10$7 || (_templateObject10$7 = _tag
43100
43125
  }, function (props) {
43101
43126
  return props.hideInMobile && "\n @media (max-width: 550px) {\n display: none;\n }\n ";
43102
43127
  });
43103
- var CarouselItem$1 = styled.div(_templateObject11$6 || (_templateObject11$6 = _taggedTemplateLiteralLoose(["\n position: relative;\n display: flex;\n width: calc(100% - 200px);\n height: calc(100% - 80px);\n max-width: calc(100% - 200px);\n max-height: calc(100vh - 140px);\n align-items: center;\n justify-content: center;\n z-index: 2;\n\n img,\n video {\n width: 100%;\n height: 100%;\n min-width: 0;\n min-height: 0;\n object-fit: contain;\n @media (max-width: 480px) {\n width: 100%;\n }\n }\n @media (max-width: 480px) {\n width: calc(100% - 100px);\n height: calc(100% - 48px);\n max-width: calc(100% - 100px);\n }\n\n img {\n display: block;\n }\n"])));
43128
+ var CarouselItem$1 = styled.div(_templateObject11$6 || (_templateObject11$6 = _taggedTemplateLiteralLoose(["\n position: relative;\n display: flex;\n width: calc(100% - 200px);\n height: calc(100% - 80px);\n max-width: calc(100% - 200px);\n max-height: calc(100vh - 140px);\n align-items: center;\n justify-content: center;\n z-index: 2;\n\n img,\n video {\n height: 100%;\n min-width: 0;\n min-height: 0;\n object-fit: contain;\n @media (max-width: 480px) {\n width: 100%;\n }\n }\n @media (max-width: 480px) {\n width: calc(100% - 100px);\n height: calc(100% - 48px);\n max-width: calc(100% - 100px);\n }\n\n img {\n display: block;\n }\n"])));
43104
43129
  var UploadCont$1 = styled.div(_templateObject12$5 || (_templateObject12$5 = _taggedTemplateLiteralLoose(["\n left: calc((100vw - 100%) / -2);\n top: calc((100vh - 100%) / -2);\n width: 100vw;\n height: 100vh;\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n z-index: 1;\n"])));
43105
43130
  var ItemLoadingCont = styled.div(_templateObject13$5 || (_templateObject13$5 = _taggedTemplateLiteralLoose(["\n position: absolute;\n left: calc((100vw - 100%) / -2);\n top: calc((100vh - 100% + 60px) / -2);\n width: 100vw;\n height: 100vh;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1;\n"])));
43106
43131
  var ArrowButton = styled.button(_templateObject14$5 || (_templateObject14$5 = _taggedTemplateLiteralLoose(["\n min-width: 60px;\n max-width: 60px;\n height: 60px;\n margin-right: ", ";\n margin-left: ", ";\n border: none;\n color: ", ";\n background: transparent;\n box-sizing: border-box;\n border-radius: 50%;\n line-height: 1px;\n align-self: center;\n outline: none;\n cursor: pointer;\n visibility: ", ";\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: ", ";\n right: ", ";\n & > svg {\n width: 40px;\n height: 40px;\n }\n @media (max-width: 768px) {\n min-width: 36px;\n max-width: 36px;\n height: 36px;\n margin-right: ", ";\n margin-left: ", ";\n\n & > svg {\n width: 22px;\n height: 22px;\n }\n }\n @media (max-width: 450px) {\n min-width: 32px;\n max-width: 32px;\n height: 32px;\n\n & > svg {\n width: 20px;\n height: 20px;\n }\n }\n"])), function (props) {
@@ -43152,8 +43177,8 @@ var Message = function Message(_ref) {
43152
43177
  var actorName = message.incoming ? makeUsername(message.user && contactsMap[message.user.id], message.user, getFromContacts) : 'You';
43153
43178
  var parentMessageId = ((_message$parentMessag = message.parentMessage) === null || _message$parentMessag === void 0 ? void 0 : _message$parentMessag.id) || ((_message$parentMessag2 = message.parentMessage) === null || _message$parentMessag2 === void 0 ? void 0 : _message$parentMessag2.tid) || message.parentMessageId || message.parentId;
43154
43179
  var pinnedMessagePreview = useMemo(function () {
43155
- return getPinnedMessagePreview(message.parentMessage);
43156
- }, [message.parentMessage]);
43180
+ return getPinnedMessagePreview(message.parentMessage, contactsMap, getFromContacts);
43181
+ }, [contactsMap, getFromContacts, message.parentMessage]);
43157
43182
  var pinnedMessageDeleted = isPinnedMessageDeleted(message.parentMessage);
43158
43183
  var navigateToPinnedMessage = function navigateToPinnedMessage() {
43159
43184
  if (parentMessageId) navigateToMessage(parentMessageId);
@@ -43242,18 +43267,18 @@ var attachmentMetadata = function attachmentMetadata(attachment) {
43242
43267
  return {};
43243
43268
  }
43244
43269
  };
43245
- var preview = function preview(message) {
43270
+ var preview = function preview(message, contactsMap, getFromContacts) {
43246
43271
  var _message$attachments;
43247
43272
  if (isPinnedMessageDeleted(message)) return 'Deleted Message';
43248
43273
  if (message !== null && message !== void 0 && message.pollDetails) return "Poll: " + (message.pollDetails.name || message.body || 'Poll');
43249
43274
  var attachment = message === null || message === void 0 ? void 0 : (_message$attachments = message.attachments) === null || _message$attachments === void 0 ? void 0 : _message$attachments[0];
43250
- if (!attachment) return (message === null || message === void 0 ? void 0 : message.body) || (message !== null && message !== void 0 && message.forwardingDetails ? 'Shared content' : 'Message');
43275
+ if (!attachment) return getPinnedMessageBody(message, contactsMap, getFromContacts) || (message !== null && message !== void 0 && message.forwardingDetails ? 'Shared content' : 'Message');
43251
43276
  var metadata = attachmentMetadata(attachment);
43252
43277
  if (attachment.type === attachmentTypes.voice) {
43253
43278
  var duration = metadata.duration || metadata.dur || attachment.duration;
43254
43279
  return "Voice" + (duration ? ": " + formatDuration(duration) : '');
43255
43280
  }
43256
- if (message !== null && message !== void 0 && message.body) return message.body;
43281
+ if (message !== null && message !== void 0 && message.body) return getPinnedMessageBody(message, contactsMap, getFromContacts);
43257
43282
  if (attachment.type === attachmentTypes.image) return 'Photo';
43258
43283
  if (attachment.type === attachmentTypes.video) {
43259
43284
  return 'Video';
@@ -43289,6 +43314,8 @@ var PinnedMessagesBanner = function PinnedMessagesBanner(_ref) {
43289
43314
  var dispatch = useDispatch();
43290
43315
  var pins = useSelector(pinnedMessagesSelector(channelId));
43291
43316
  var nextToken = useSelector(pinnedMessagesCursorSelector(channelId));
43317
+ var contactsMap = useSelector(contactsMapSelector);
43318
+ var getFromContacts = getShowOnlyContactUsers();
43292
43319
  var _useColor = useColors(),
43293
43320
  surface1 = _useColor[THEME_COLORS.SURFACE_1],
43294
43321
  textPrimary = _useColor[THEME_COLORS.TEXT_PRIMARY],
@@ -43444,7 +43471,7 @@ var PinnedMessagesBanner = function PinnedMessagesBanner(_ref) {
43444
43471
  }, /*#__PURE__*/React__default.createElement("strong", null, "Pinned messages"), /*#__PURE__*/React__default.createElement(PinnedCopyPreview, {
43445
43472
  key: active.id,
43446
43473
  textPrimary: textPrimary
43447
- }, preview(active.message))), /*#__PURE__*/React__default.createElement(Controls$1, {
43474
+ }, preview(active.message, contactsMap, getFromContacts))), /*#__PURE__*/React__default.createElement(Controls$1, {
43448
43475
  onClick: function onClick(event) {
43449
43476
  return event.stopPropagation();
43450
43477
  },
@@ -45715,7 +45742,12 @@ var PinnedMessagesList = function PinnedMessagesList(_ref) {
45715
45742
  var rowBounds = event.currentTarget.getBoundingClientRect();
45716
45743
  var contentBounds = messageContent.getBoundingClientRect();
45717
45744
  var messageItem = event.currentTarget.querySelector('.message_item');
45718
- var bottom = messageItem ? Number.parseFloat(window.getComputedStyle(messageItem).marginBottom) || 0 : 0;
45745
+ var reactionContainerId = message.id + "_reactions_container";
45746
+ var reactionContainer = Array.from(event.currentTarget.querySelectorAll('[id]')).find(function (element) {
45747
+ return element.id === reactionContainerId;
45748
+ });
45749
+ var itemMarginBottom = messageItem ? Number.parseFloat(window.getComputedStyle(messageItem).marginBottom) || 0 : 0;
45750
+ var bottom = itemMarginBottom + ((reactionContainer === null || reactionContainer === void 0 ? void 0 : reactionContainer.getBoundingClientRect().height) || 0);
45719
45751
  var left = message.incoming ? contentBounds.right - rowBounds.left + 8 : contentBounds.left - rowBounds.left - 36 - 8;
45720
45752
  setNavigationOffsets(function (current) {
45721
45753
  var _extends2;
@@ -49310,6 +49342,8 @@ function ReactionsPopup(_ref) {
49310
49342
  reactionTotals = _ref.reactionTotals,
49311
49343
  reactionsDetailsPopupBorderRadius = _ref.reactionsDetailsPopupBorderRadius,
49312
49344
  reactionsDetailsPopupHeaderItemsStyle = _ref.reactionsDetailsPopupHeaderItemsStyle,
49345
+ _ref$popupZIndex = _ref.popupZIndex,
49346
+ popupZIndex = _ref$popupZIndex === void 0 ? 12 : _ref$popupZIndex,
49313
49347
  rtlDirection = _ref.rtlDirection,
49314
49348
  openUserProfile = _ref.openUserProfile;
49315
49349
  var _useColor = useColors(),
@@ -49424,9 +49458,9 @@ function ReactionsPopup(_ref) {
49424
49458
  bottom: bottom,
49425
49459
  left: left,
49426
49460
  right: right,
49427
- zIndex: 12
49461
+ zIndex: popupZIndex
49428
49462
  };
49429
- }, [popupVerticalPosition, anchorTop, anchorBottom, horizontalPositions, rtlDirection]);
49463
+ }, [popupVerticalPosition, anchorTop, anchorBottom, horizontalPositions, popupZIndex, rtlDirection]);
49430
49464
  return /*#__PURE__*/createPortal(/*#__PURE__*/React__default.createElement(Container$i, {
49431
49465
  ref: popupRef,
49432
49466
  popupVerticalPosition: popupVerticalPosition,
@@ -49597,6 +49631,7 @@ var MessageReactions = function MessageReactions(_ref) {
49597
49631
  reactionsContainerPadding = _ref.reactionsContainerPadding,
49598
49632
  reactionsDetailsPopupBorderRadius = _ref.reactionsDetailsPopupBorderRadius,
49599
49633
  reactionsDetailsPopupHeaderItemsStyle = _ref.reactionsDetailsPopupHeaderItemsStyle,
49634
+ popupZIndex = _ref.popupZIndex,
49600
49635
  onToggleReactionsPopup = _ref.onToggleReactionsPopup,
49601
49636
  onReactionAddDelete = _ref.onReactionAddDelete,
49602
49637
  onOpenUserProfile = _ref.onOpenUserProfile;
@@ -49618,7 +49653,8 @@ var MessageReactions = function MessageReactions(_ref) {
49618
49653
  rtlDirection: rtlDirection,
49619
49654
  handleAddDeleteEmoji: onReactionAddDelete,
49620
49655
  reactionsDetailsPopupBorderRadius: reactionsDetailsPopupBorderRadius,
49621
- reactionsDetailsPopupHeaderItemsStyle: reactionsDetailsPopupHeaderItemsStyle
49656
+ reactionsDetailsPopupHeaderItemsStyle: reactionsDetailsPopupHeaderItemsStyle,
49657
+ popupZIndex: popupZIndex
49622
49658
  })), /*#__PURE__*/React__default.createElement(ReactionsContainer, {
49623
49659
  ref: enableTransitionRef,
49624
49660
  id: message.id + "_reactions_container",
@@ -51025,8 +51061,8 @@ var Message$1 = function Message(_ref) {
51025
51061
  var prevMessageUserID = prevMessage ? getComparableUserId(prevMessage.user) : null;
51026
51062
  var current = moment(message.createdAt).startOf('day');
51027
51063
  var firstMessageInInterval = useMemo(function () {
51028
- return ifLatestAndHasNotPreview || !(prevMessage && current.diff(moment(prevMessage.createdAt).startOf('day'), 'days') === 0) || (prevMessage === null || prevMessage === void 0 ? void 0 : prevMessage.type) === MESSAGE_TYPE.SYSTEM || unreadMessageId === prevMessage.id;
51029
- }, [prevMessage, unreadMessageId, ifLatestAndHasNotPreview]);
51064
+ return ifLatestAndHasNotPreview || !isPinnedMessagesList && !(prevMessage && current.diff(moment(prevMessage.createdAt).startOf('day'), 'days') === 0) || (prevMessage === null || prevMessage === void 0 ? void 0 : prevMessage.type) === MESSAGE_TYPE.SYSTEM || unreadMessageId === (prevMessage === null || prevMessage === void 0 ? void 0 : prevMessage.id);
51065
+ }, [prevMessage, unreadMessageId, ifLatestAndHasNotPreview, isPinnedMessagesList]);
51030
51066
  var nextMessageUserID = nextMessage ? getComparableUserId(nextMessage.user) : null;
51031
51067
  var nextDay = nextMessage ? moment(nextMessage.createdAt).startOf('day') : null;
51032
51068
  var nextMessageFirstInInterval = !nextMessage || nextDay !== null && nextDay.diff(current, 'days') !== 0 || nextMessage.type === MESSAGE_TYPE.SYSTEM || nextMessageStartsUnreadSection;
@@ -51036,17 +51072,10 @@ var Message$1 = function Message(_ref) {
51036
51072
  var selectionIsActive = selectedMessagesMap && selectedMessagesMap.size > 0;
51037
51073
  var isSelectedMessage = selectedMessagesMap && selectedMessagesMap.get(message.id || message.tid);
51038
51074
  var tooManySelected = selectedMessagesMap && selectedMessagesMap.size >= MAX_SELECTED_MESSAGES;
51039
- var openPinnedMessageInConversation = useCallback(function () {
51040
- if (!isPinnedMessagesList) return;
51041
- var messageId = message.id || message.tid;
51042
- if (messageId) navigateToMessage(messageId);
51043
- dispatch(requestPinnedMessagesListCloseAC());
51044
- }, [dispatch, isPinnedMessagesList, message.id, message.tid]);
51045
51075
  var toggleEditMode = useCallback(function () {
51046
- openPinnedMessageInConversation();
51047
51076
  dispatch(setMessageToEditAC(message));
51048
51077
  setMessageActionsShow(false);
51049
- }, [dispatch, message, openPinnedMessageInConversation]);
51078
+ }, [dispatch, message]);
51050
51079
  var handleRetractVote = useCallback(function () {
51051
51080
  var _message$pollDetails;
51052
51081
  if (message !== null && message !== void 0 && (_message$pollDetails = message.pollDetails) !== null && _message$pollDetails !== void 0 && _message$pollDetails.id) {
@@ -51113,12 +51142,11 @@ var Message$1 = function Message(_ref) {
51113
51142
  setMessageActionsShow(false);
51114
51143
  }, [channel.id, dispatch, message, pinnedMessage, setMessageActionsShow]);
51115
51144
  var handleReplyMessage = useCallback(function (threadReply) {
51116
- openPinnedMessageInConversation();
51117
51145
  if (threadReply) ; else {
51118
51146
  dispatch(setMessageForReplyAC(message));
51119
51147
  }
51120
51148
  setMessageActionsShow(false);
51121
- }, [dispatch, message, openPinnedMessageInConversation]);
51149
+ }, [dispatch, message]);
51122
51150
  var handleToggleReportPopupOpen = useCallback(function () {
51123
51151
  setReportPopupOpen(function (prev) {
51124
51152
  return !prev;
@@ -51363,7 +51391,7 @@ var Message$1 = function Message(_ref) {
51363
51391
  if (!reactionsPopupOpen) {
51364
51392
  return undefined;
51365
51393
  }
51366
- var scrollContainer = document.getElementById('scrollableDiv');
51394
+ var scrollContainer = document.getElementById(isPinnedMessagesList ? 'pinnedScrollableDiv' : 'scrollableDiv');
51367
51395
  if (!scrollContainer) {
51368
51396
  return undefined;
51369
51397
  }
@@ -51376,7 +51404,7 @@ var Message$1 = function Message(_ref) {
51376
51404
  return function () {
51377
51405
  scrollContainer.removeEventListener('scroll', handleChatScroll);
51378
51406
  };
51379
- }, [reactionsPopupOpen]);
51407
+ }, [isPinnedMessagesList, reactionsPopupOpen]);
51380
51408
  useEffect(function () {
51381
51409
  document.addEventListener('mousedown', handleClick);
51382
51410
  return function () {
@@ -51410,8 +51438,8 @@ var Message$1 = function Message(_ref) {
51410
51438
  if (!nextMessage || nextMessage.type === MESSAGE_TYPE.SYSTEM) {
51411
51439
  spacingBottom = '';
51412
51440
  } else if (nextMessageStartsUnreadSection) {
51413
- spacingBottom = differentUserMessageSpacing || '16px';
51414
- } else if (nextMessageUserID && (nextMessageUserID !== messageUserID || nextMessageFirstInInterval)) {
51441
+ spacingBottom = isPinnedMessagesList ? '0' : differentUserMessageSpacing || '16px';
51442
+ } else if (nextMessageUserID && (nextMessageUserID !== messageUserID || nextMessageFirstInInterval && !isPinnedMessagesList)) {
51415
51443
  spacingBottom = differentUserMessageSpacing || '16px';
51416
51444
  }
51417
51445
  spacingTop = sameUserMessageSpacing || '6px';
@@ -51424,7 +51452,7 @@ var Message$1 = function Message(_ref) {
51424
51452
  bottom: reactionsMargin || spacingBottom,
51425
51453
  top: spacingTop
51426
51454
  };
51427
- }, [nextMessageUserID, messageUserID, nextMessageFirstInInterval, (_message$reactionTota = message.reactionTotals) === null || _message$reactionTota === void 0 ? void 0 : _message$reactionTota.length]);
51455
+ }, [nextMessageUserID, isPinnedMessagesList, messageUserID, nextMessageFirstInInterval, (_message$reactionTota = message.reactionTotals) === null || _message$reactionTota === void 0 ? void 0 : _message$reactionTota.length]);
51428
51456
  return /*#__PURE__*/React__default.createElement(MessageItem, {
51429
51457
  className: 'message_item',
51430
51458
  rtl: ownMessageOnRightSide && !message.incoming,
@@ -51469,6 +51497,7 @@ var Message$1 = function Message(_ref) {
51469
51497
  ifLatestAndHasNotPreview: ifLatestAndHasNotPreview,
51470
51498
  channel: channel,
51471
51499
  message: message,
51500
+ isPinnedMessagesList: isPinnedMessagesList,
51472
51501
  prevMessage: prevMessage,
51473
51502
  nextMessage: nextMessage,
51474
51503
  unreadMessageId: unreadMessageId,
@@ -51693,6 +51722,7 @@ var Message$1 = function Message(_ref) {
51693
51722
  reactionsContainerPadding: reactionsContainerPadding,
51694
51723
  reactionsDetailsPopupBorderRadius: reactionsDetailsPopupBorderRadius,
51695
51724
  reactionsDetailsPopupHeaderItemsStyle: reactionsDetailsPopupHeaderItemsStyle,
51725
+ popupZIndex: isPinnedMessagesList ? 30 : undefined,
51696
51726
  onToggleReactionsPopup: handleToggleReactionsPopup,
51697
51727
  onReactionAddDelete: handleReactionAddDelete,
51698
51728
  onOpenUserProfile: handleOpenUserProfile
@@ -52642,13 +52672,13 @@ var MessageList = function MessageList(_ref) {
52642
52672
  MessageActionsMenu: MessageActionsMenu,
52643
52673
  CustomMessageItem: CustomMessageItem,
52644
52674
  messageReaction: messageReaction,
52645
- editMessage: editMessage,
52675
+ editMessage: isPinnedMessagesList ? false : editMessage,
52646
52676
  copyMessage: copyMessage,
52647
- replyMessage: replyMessage,
52648
- replyMessageInThread: replyMessageInThread,
52677
+ replyMessage: isPinnedMessagesList ? false : replyMessage,
52678
+ replyMessageInThread: isPinnedMessagesList ? false : replyMessageInThread,
52649
52679
  deleteMessage: deleteMessage,
52650
52680
  selectMessage: selectMessage,
52651
- showInfoMessage: showInfoMessage,
52681
+ showInfoMessage: isPinnedMessagesList ? false : showInfoMessage,
52652
52682
  allowEditDeleteIncomingMessage: allowEditDeleteIncomingMessage,
52653
52683
  reportMessage: reportMessage,
52654
52684
  reactionIcon: reactionIcon,
@@ -52908,7 +52938,7 @@ var MessageList = function MessageList(_ref) {
52908
52938
  isUnreadMessage: false,
52909
52939
  nextMessageStartsUnreadSection: false,
52910
52940
  isHighlighted: false,
52911
- ifLatestAndHasNotPreview: channel.type !== DEFAULT_CHANNEL_TYPE.DIRECT,
52941
+ ifLatestAndHasNotPreview: index === 0,
52912
52942
  registerInMessagesIndex: false,
52913
52943
  isPinnedMessagesList: true
52914
52944
  });
@@ -55337,6 +55367,9 @@ var AudioRecord = function AudioRecord(_ref) {
55337
55367
  var recordButtonRef = useRef(null);
55338
55368
  var audioElements = useRef({});
55339
55369
  var intervalRef = useRef({});
55370
+ var isStoppingRef = useRef(false);
55371
+ var isStartingRef = useRef(false);
55372
+ var isRecordingRef = useRef(false);
55340
55373
  var currentRecordedFile = useMemo(function () {
55341
55374
  var current = getAudioRecordingFromMap(currentChannelId) || recordedFile;
55342
55375
  return current;
@@ -55414,17 +55447,13 @@ var AudioRecord = function AudioRecord(_ref) {
55414
55447
  setPlayAudio(false);
55415
55448
  clearInterval(intervalRef.current[id]);
55416
55449
  });
55417
- audio.addEventListener('error', function () {
55418
- var _audio$error;
55419
- log.error('Audio playback error:', (_audio$error = audio.error) === null || _audio$error === void 0 ? void 0 : _audio$error.message);
55420
- });
55421
55450
  audio.src = fileData.objectUrl;
55422
55451
  };
55423
55452
  var startRecording = function startRecording(cId) {
55424
55453
  try {
55425
55454
  var id = cId || currentChannelId;
55426
55455
  try {
55427
- if (recording) {
55456
+ if (recording || isRecordingRef.current) {
55428
55457
  stopRecording(true, id, false, recorder);
55429
55458
  } else if (currentRecordedFile) {
55430
55459
  if (!currentRecordedFile.dur) {
@@ -55440,8 +55469,16 @@ var AudioRecord = function AudioRecord(_ref) {
55440
55469
  dispatch(setChannelDraftMessageIsRemovedAC(id));
55441
55470
  sendRecordedFile(currentRecordedFile, id);
55442
55471
  } else {
55443
- if (!recorder) return Promise.resolve();
55472
+ if (!recorder) {
55473
+ return Promise.resolve();
55474
+ }
55475
+ if (isStartingRef.current) {
55476
+ return Promise.resolve();
55477
+ }
55478
+ isStartingRef.current = true;
55444
55479
  recorder.start().then(function () {
55480
+ isStartingRef.current = false;
55481
+ isRecordingRef.current = true;
55445
55482
  handleStartRecording();
55446
55483
  setAudioRecordingToMap(id, {
55447
55484
  file: null,
@@ -55530,17 +55567,19 @@ var AudioRecord = function AudioRecord(_ref) {
55530
55567
  };
55531
55568
  soundAllowed(stream);
55532
55569
  })["catch"](function (e) {
55570
+ isStartingRef.current = false;
55571
+ isRecordingRef.current = false;
55533
55572
  if ((e === null || e === void 0 ? void 0 : e.name) === 'NotAllowedError' || (e === null || e === void 0 ? void 0 : e.name) === 'PermissionDeniedError') {
55534
55573
  setMicrophonePermissionDenied(true);
55535
55574
  }
55536
- log.error(e);
55537
55575
  });
55538
55576
  }
55539
55577
  } catch (e) {
55578
+ isStartingRef.current = false;
55579
+ isRecordingRef.current = false;
55540
55580
  if ((e === null || e === void 0 ? void 0 : e.name) === 'NotAllowedError' || (e === null || e === void 0 ? void 0 : e.name) === 'PermissionDeniedError') {
55541
55581
  setMicrophonePermissionDenied(true);
55542
55582
  }
55543
- log.error(e);
55544
55583
  }
55545
55584
  return Promise.resolve();
55546
55585
  } catch (e) {
@@ -55548,7 +55587,12 @@ var AudioRecord = function AudioRecord(_ref) {
55548
55587
  }
55549
55588
  };
55550
55589
  var cancelRecording = useCallback(function () {
55590
+ if (isStoppingRef.current) {
55591
+ return;
55592
+ }
55551
55593
  handleStopRecording();
55594
+ isStartingRef.current = false;
55595
+ isRecordingRef.current = false;
55552
55596
  if (currentRecordedFile) {
55553
55597
  dispatch(setChannelDraftMessageIsRemovedAC(currentChannelId));
55554
55598
  if (currentRecordedFile.objectUrl && currentRecordedFile.objectUrl.startsWith('blob:')) {
@@ -55569,10 +55613,21 @@ var AudioRecord = function AudioRecord(_ref) {
55569
55613
  setShowRecording(false);
55570
55614
  }, [currentRecordedFile, currentChannelId, setShowRecording, setRecordedFile]);
55571
55615
  var stopRecording = useCallback(function (send, cId, draft, recorder) {
55616
+ var id = cId || channelId;
55617
+ if (isStoppingRef.current) {
55618
+ return;
55619
+ }
55620
+ if (!recorder) {
55621
+ return;
55622
+ }
55623
+ isStoppingRef.current = true;
55624
+ isStartingRef.current = false;
55625
+ isRecordingRef.current = false;
55572
55626
  handleStopRecording();
55573
55627
  shouldDraw = false;
55574
- var id = cId || channelId;
55575
- recorder === null || recorder === void 0 ? void 0 : recorder.stop().getMp3().then(function (_ref2) {
55628
+ Promise.resolve().then(function () {
55629
+ return recorder.stop().getMp3();
55630
+ }).then(function (_ref2) {
55576
55631
  var buffer = _ref2[0],
55577
55632
  blob = _ref2[1];
55578
55633
  var file = new File(buffer, 'record.mp3', {
@@ -55582,6 +55637,8 @@ var AudioRecord = function AudioRecord(_ref) {
55582
55637
  var audioContext = new (window.AudioContext || window.webkitAudioContext)();
55583
55638
  var reader = new FileReader();
55584
55639
  reader.onload = function (event) {
55640
+ var _event$target;
55641
+ var audioData = (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.result;
55585
55642
  var closeDecodeContext = function closeDecodeContext() {
55586
55643
  if (audioContext.state !== 'closed') {
55587
55644
  audioContext.close()["catch"](function () {
@@ -55589,76 +55646,100 @@ var AudioRecord = function AudioRecord(_ref) {
55589
55646
  });
55590
55647
  }
55591
55648
  };
55592
- audioContext.decodeAudioData(event.target.result, function (audioBuffer) {
55649
+ var handleDecodeError = function handleDecodeError() {
55593
55650
  closeDecodeContext();
55594
- var numberOfSegments = 50;
55595
- var segmentSize = Math.floor(audioBuffer.length / numberOfSegments);
55596
- var waveform = [];
55597
- for (var i = 0; i < numberOfSegments; i++) {
55598
- var start = i * segmentSize;
55599
- var end = start + segmentSize;
55600
- var segment = audioBuffer.getChannelData(0).slice(start, end);
55601
- var maxAmplitude = 0;
55602
- for (var j = 0; j < segment.length; j++) {
55603
- var val = segment[j];
55604
- var absVal = val < 0 ? -val : val;
55605
- if (absVal > maxAmplitude) {
55606
- maxAmplitude = absVal;
55607
- }
55608
- }
55609
- waveform.push(Math.floor(maxAmplitude * 1000));
55610
- }
55611
55651
  setStartRecording(false);
55612
- var objectUrl = URL.createObjectURL(blob);
55613
- var durationInt = Math.round(audioBuffer.duration);
55614
- if (send) {
55615
- if (!durationInt) {
55616
- if (objectUrl.startsWith('blob:')) {
55617
- URL.revokeObjectURL(objectUrl);
55652
+ setShowRecording(false);
55653
+ removeAudioRecordingFromMap(id);
55654
+ dispatch(setChannelDraftMessageIsRemovedAC(id));
55655
+ isStoppingRef.current = false;
55656
+ };
55657
+ try {
55658
+ var decodeResult = audioContext.decodeAudioData(audioData, function (audioBuffer) {
55659
+ try {
55660
+ closeDecodeContext();
55661
+ var numberOfSegments = 50;
55662
+ var segmentSize = Math.floor(audioBuffer.length / numberOfSegments);
55663
+ var waveform = [];
55664
+ for (var i = 0; i < numberOfSegments; i++) {
55665
+ var start = i * segmentSize;
55666
+ var end = start + segmentSize;
55667
+ var segment = audioBuffer.getChannelData(0).slice(start, end);
55668
+ var maxAmplitude = 0;
55669
+ for (var j = 0; j < segment.length; j++) {
55670
+ var val = segment[j];
55671
+ var absVal = val < 0 ? -val : val;
55672
+ if (absVal > maxAmplitude) {
55673
+ maxAmplitude = absVal;
55674
+ }
55675
+ }
55676
+ waveform.push(Math.floor(maxAmplitude * 1000));
55618
55677
  }
55619
- setShowRecording(false);
55620
- removeAudioRecordingFromMap(id);
55621
- dispatch(setChannelDraftMessageIsRemovedAC(id));
55622
- return;
55623
- }
55624
- sendRecordedFile({
55625
- file: file,
55626
- objectUrl: objectUrl,
55627
- thumb: waveform,
55628
- dur: durationInt
55629
- }, id);
55630
- setShowRecording(false);
55631
- removeAudioRecordingFromMap(id);
55632
- dispatch(setChannelDraftMessageIsRemovedAC(id));
55633
- } else {
55634
- if (!draft) {
55635
- setRecordedFile({
55636
- file: file,
55637
- objectUrl: objectUrl,
55638
- thumb: waveform,
55639
- dur: durationInt
55640
- });
55641
- }
55642
- var audioRecording = {
55643
- file: file,
55644
- objectUrl: objectUrl,
55645
- thumb: waveform,
55646
- dur: durationInt
55647
- };
55648
- setAudioRecordingToMap(id, audioRecording);
55649
- if (draft) {
55650
- initAudioPlayback(draft, id, audioRecording);
55651
- }
55678
+ setStartRecording(false);
55679
+ var objectUrl = URL.createObjectURL(blob);
55680
+ var durationInt = Math.round(audioBuffer.duration);
55681
+ if (send) {
55682
+ if (!durationInt) {
55683
+ if (objectUrl.startsWith('blob:')) {
55684
+ URL.revokeObjectURL(objectUrl);
55685
+ }
55686
+ setShowRecording(false);
55687
+ removeAudioRecordingFromMap(id);
55688
+ dispatch(setChannelDraftMessageIsRemovedAC(id));
55689
+ isStoppingRef.current = false;
55690
+ return;
55691
+ }
55692
+ sendRecordedFile({
55693
+ file: file,
55694
+ objectUrl: objectUrl,
55695
+ thumb: waveform,
55696
+ dur: durationInt
55697
+ }, id);
55698
+ setShowRecording(false);
55699
+ removeAudioRecordingFromMap(id);
55700
+ dispatch(setChannelDraftMessageIsRemovedAC(id));
55701
+ } else {
55702
+ if (!draft) {
55703
+ setRecordedFile({
55704
+ file: file,
55705
+ objectUrl: objectUrl,
55706
+ thumb: waveform,
55707
+ dur: durationInt
55708
+ });
55709
+ }
55710
+ var audioRecording = {
55711
+ file: file,
55712
+ objectUrl: objectUrl,
55713
+ thumb: waveform,
55714
+ dur: durationInt
55715
+ };
55716
+ setAudioRecordingToMap(id, audioRecording);
55717
+ if (draft) {
55718
+ initAudioPlayback(draft, id, audioRecording);
55719
+ }
55720
+ }
55721
+ isStoppingRef.current = false;
55722
+ } catch (_unused) {}
55723
+ }, handleDecodeError);
55724
+ if (decodeResult && typeof decodeResult["catch"] === 'function') {
55725
+ decodeResult["catch"](function () {
55726
+ return undefined;
55727
+ });
55652
55728
  }
55653
- }, function (e) {
55654
- closeDecodeContext();
55655
- log.info('Error decoding audio data: ' + e.err);
55656
- });
55729
+ } catch (_unused2) {}
55730
+ };
55731
+ reader.onerror = function () {
55732
+ if (audioContext.state !== 'closed') {
55733
+ audioContext.close()["catch"](function () {
55734
+ return undefined;
55735
+ });
55736
+ }
55737
+ isStoppingRef.current = false;
55657
55738
  };
55658
55739
  reader.readAsArrayBuffer(blob);
55659
- })["catch"](function (e) {
55740
+ })["catch"](function () {
55741
+ isStoppingRef.current = false;
55660
55742
  handleStopRecording();
55661
- log.error(e);
55662
55743
  });
55663
55744
  }, [sendRecordedFile, setShowRecording, setAudioRecordingToMap, setRecordedFile, handleStopRecording, channelId]);
55664
55745
  var handlePlayPause = function handlePlayPause(cId) {
@@ -55675,8 +55756,7 @@ var AudioRecord = function AudioRecord(_ref) {
55675
55756
  setCurrentTimeSeconds(time);
55676
55757
  }
55677
55758
  }, 10);
55678
- audio.play()["catch"](function (e) {
55679
- log.error('Audio play failed:', e);
55759
+ audio.play()["catch"](function () {
55680
55760
  setPlayAudio(false);
55681
55761
  });
55682
55762
  } else {
@@ -55770,9 +55850,7 @@ var AudioRecord = function AudioRecord(_ref) {
55770
55850
  bitRate: 128
55771
55851
  });
55772
55852
  setRecorder(newRecorder);
55773
- } catch (e) {
55774
- log.error('Failed to init mic-recorder-to-mp3', e);
55775
- }
55853
+ } catch (_unused3) {}
55776
55854
  }
55777
55855
  } catch (e) {
55778
55856
  Promise.reject(e);
@@ -56624,101 +56702,109 @@ var SendMessageInput = function SendMessageInput(_ref3) {
56624
56702
  var _useState = useState(false),
56625
56703
  showRecording = _useState[0],
56626
56704
  setShowRecording = _useState[1];
56705
+ var _useState2 = useState(0),
56706
+ setAudioRecordingRevision = _useState2[1];
56707
+ var handleShowRecording = useCallback(function (start) {
56708
+ setShowRecording(start);
56709
+ setAudioRecordingRevision(function (revision) {
56710
+ return revision + 1;
56711
+ });
56712
+ }, []);
56627
56713
  var _usePermissions = usePermissions(activeChannel.userRole),
56628
56714
  checkActionPermission = _usePermissions[0];
56629
- var _useState2 = useState(false),
56630
- listenerIsAdded = _useState2[0],
56631
- setListenerIsAdded = _useState2[1];
56632
- var _useState3 = useState(''),
56633
- messageText = _useState3[0],
56634
- setMessageText = _useState3[1];
56715
+ var _useState3 = useState(false),
56716
+ listenerIsAdded = _useState3[0],
56717
+ setListenerIsAdded = _useState3[1];
56635
56718
  var _useState4 = useState(''),
56636
- editMessageText = _useState4[0],
56637
- setEditMessageText = _useState4[1];
56638
- var _useState5 = useState(null),
56639
- restoredEditMessage = _useState5[0],
56640
- setRestoredEditMessage = _useState5[1];
56641
- var _useState6 = useState({}),
56642
- readyVideoAttachments = _useState6[0],
56643
- setReadyVideoAttachments = _useState6[1];
56644
- var _useState7 = useState(false),
56645
- showChooseAttachmentType = _useState7[0],
56646
- setShowChooseAttachmentType = _useState7[1];
56719
+ messageText = _useState4[0],
56720
+ setMessageText = _useState4[1];
56721
+ var _useState5 = useState(''),
56722
+ editMessageText = _useState5[0],
56723
+ setEditMessageText = _useState5[1];
56724
+ var _useState6 = useState(null),
56725
+ restoredEditMessage = _useState6[0],
56726
+ setRestoredEditMessage = _useState6[1];
56727
+ var _useState7 = useState({}),
56728
+ readyVideoAttachments = _useState7[0],
56729
+ setReadyVideoAttachments = _useState7[1];
56647
56730
  var _useState8 = useState(false),
56648
- isEmojisOpened = _useState8[0],
56649
- setIsEmojisOpened = _useState8[1];
56731
+ showChooseAttachmentType = _useState8[0],
56732
+ setShowChooseAttachmentType = _useState8[1];
56650
56733
  var _useState9 = useState(false),
56651
- emojisInRightSide = _useState9[0],
56652
- setEmojisInRightSide = _useState9[1];
56653
- var _useState0 = useState(0),
56654
- emojisPopupLeftPosition = _useState0[0],
56655
- setEmojisPopupLeftPosition = _useState0[1];
56734
+ isEmojisOpened = _useState9[0],
56735
+ setIsEmojisOpened = _useState9[1];
56736
+ var _useState0 = useState(false),
56737
+ emojisInRightSide = _useState0[0],
56738
+ setEmojisInRightSide = _useState0[1];
56656
56739
  var _useState1 = useState(0),
56657
- emojisPopupBottomPosition = _useState1[0],
56658
- setEmojisPopupBottomPosition = _useState1[1];
56659
- var _useState10 = useState(false),
56660
- addAttachmentsInRightSide = _useState10[0],
56661
- setAddAttachmentsInRightSide = _useState10[1];
56740
+ emojisPopupLeftPosition = _useState1[0],
56741
+ setEmojisPopupLeftPosition = _useState1[1];
56742
+ var _useState10 = useState(0),
56743
+ emojisPopupBottomPosition = _useState10[0],
56744
+ setEmojisPopupBottomPosition = _useState10[1];
56662
56745
  var _useState11 = useState(false),
56663
- showPoll = _useState11[0],
56664
- setShowPoll = _useState11[1];
56665
- var _useState12 = useState({
56746
+ addAttachmentsInRightSide = _useState11[0],
56747
+ setAddAttachmentsInRightSide = _useState11[1];
56748
+ var _useState12 = useState(false),
56749
+ showPoll = _useState12[0],
56750
+ setShowPoll = _useState12[1];
56751
+ var _useState13 = useState({
56666
56752
  clear: false
56667
56753
  }),
56668
- shouldClearEditor = _useState12[0],
56669
- setShouldClearEditor = _useState12[1];
56670
- var _useState13 = useState([]),
56671
- messageBodyAttributes = _useState13[0],
56672
- setMessageBodyAttributes = _useState13[1];
56754
+ shouldClearEditor = _useState13[0],
56755
+ setShouldClearEditor = _useState13[1];
56673
56756
  var _useState14 = useState([]),
56674
- mentionedUsers = _useState14[0],
56675
- setMentionedUsers = _useState14[1];
56676
- var _useState15 = useState(''),
56677
- browser = _useState15[0],
56678
- setBrowser = _useState15[1];
56679
- var _useState16 = useState(false),
56680
- mentionsIsOpen = _useState16[0],
56681
- setMentionsIsOpen = _useState16[1];
56682
- var _useState17 = useState(),
56683
- inputContainerHeight = _useState17[0],
56684
- setInputContainerHeight = _useState17[1];
56685
- var selectedText = useRef(null);
56757
+ messageBodyAttributes = _useState14[0],
56758
+ setMessageBodyAttributes = _useState14[1];
56759
+ var _useState15 = useState([]),
56760
+ mentionedUsers = _useState15[0],
56761
+ setMentionedUsers = _useState15[1];
56762
+ var _useState16 = useState(''),
56763
+ browser = _useState16[0],
56764
+ setBrowser = _useState16[1];
56765
+ var _useState17 = useState(false),
56766
+ mentionsIsOpen = _useState17[0],
56767
+ setMentionsIsOpen = _useState17[1];
56686
56768
  var _useState18 = useState(),
56687
- typingTimout = _useState18[0],
56688
- setTypingTimout = _useState18[1];
56769
+ inputContainerHeight = _useState18[0],
56770
+ setInputContainerHeight = _useState18[1];
56771
+ var selectedText = useRef(null);
56689
56772
  var _useState19 = useState(),
56690
- inTypingStateTimout = _useState19[0],
56691
- setInTypingStateTimout = _useState19[1];
56692
- var _useState20 = useState(false),
56693
- inTypingState = _useState20[0],
56694
- setInTypingState = _useState20[1];
56773
+ typingTimout = _useState19[0],
56774
+ setTypingTimout = _useState19[1];
56775
+ var _useState20 = useState(),
56776
+ inTypingStateTimout = _useState20[0],
56777
+ setInTypingStateTimout = _useState20[1];
56695
56778
  var _useState21 = useState(false),
56696
- sendMessageIsActive = _useState21[0],
56697
- setSendMessageIsActive = _useState21[1];
56698
- var _useState22 = useState([]),
56699
- attachments = _useState22[0],
56700
- setAttachments = _useState22[1];
56701
- var _useState23 = useState(false),
56702
- forwardPopupOpen = _useState23[0],
56703
- setForwardPopupOpen = _useState23[1];
56779
+ inTypingState = _useState21[0],
56780
+ setInTypingState = _useState21[1];
56781
+ var _useState22 = useState(false),
56782
+ sendMessageIsActive = _useState22[0],
56783
+ setSendMessageIsActive = _useState22[1];
56784
+ var _useState23 = useState([]),
56785
+ attachments = _useState23[0],
56786
+ setAttachments = _useState23[1];
56704
56787
  var _useState24 = useState(false),
56705
- deletePopupOpen = _useState24[0],
56706
- setDeletePopupOpen = _useState24[1];
56788
+ forwardPopupOpen = _useState24[0],
56789
+ setForwardPopupOpen = _useState24[1];
56707
56790
  var _useState25 = useState(false),
56708
- isIncomingMessage = _useState25[0],
56709
- setIsIncomingMessage = _useState25[1];
56710
- var _useState26 = useState('.jpg,.jpeg,.png,.gif,.mp4,.mov,.avi,.wmv,.flv,.webm,.jfif'),
56711
- mediaExtensions = _useState26[0],
56712
- setMediaExtensions = _useState26[1];
56713
- var _useState27 = useState(''),
56714
- uploadErrorMessage = _useState27[0],
56715
- setUploadErrorMessage = _useState27[1];
56716
- var _useState28 = useState(false),
56717
- viewOnce = _useState28[0],
56718
- setViewOnce = _useState28[1];
56719
- var _useState29 = useState(areDraftMessagesHydrated()),
56720
- draftsHydrated = _useState29[0],
56721
- setDraftsHydrated = _useState29[1];
56791
+ deletePopupOpen = _useState25[0],
56792
+ setDeletePopupOpen = _useState25[1];
56793
+ var _useState26 = useState(false),
56794
+ isIncomingMessage = _useState26[0],
56795
+ setIsIncomingMessage = _useState26[1];
56796
+ var _useState27 = useState('.jpg,.jpeg,.png,.gif,.mp4,.mov,.avi,.wmv,.flv,.webm,.jfif'),
56797
+ mediaExtensions = _useState27[0],
56798
+ setMediaExtensions = _useState27[1];
56799
+ var _useState28 = useState(''),
56800
+ uploadErrorMessage = _useState28[0],
56801
+ setUploadErrorMessage = _useState28[1];
56802
+ var _useState29 = useState(false),
56803
+ viewOnce = _useState29[0],
56804
+ setViewOnce = _useState29[1];
56805
+ var _useState30 = useState(areDraftMessagesHydrated()),
56806
+ draftsHydrated = _useState30[0],
56807
+ setDraftsHydrated = _useState30[1];
56722
56808
  var typingOrRecordingIndicator = useSelector(typingOrRecordingIndicatorArraySelector(activeChannel.id));
56723
56809
  var contactsMap = useSelector(contactsMapSelector);
56724
56810
  var connectionStatus = useSelector(connectionStatusSelector, shallowEqual);
@@ -56735,36 +56821,36 @@ var SendMessageInput = function SendMessageInput(_ref3) {
56735
56821
  var restoringDraftRef = useRef(false);
56736
56822
  var restoredDraftChannelIdRef = useRef(null);
56737
56823
  var isNavigatingChannelRef = useRef(false);
56738
- var _useState30 = useState(),
56739
- realEditorState = _useState30[0],
56740
- setRealEditorState = _useState30[1];
56741
- var _useState31 = useState(null),
56742
- floatingAnchorElem = _useState31[0],
56743
- setFloatingAnchorElem = _useState31[1];
56744
- var _useState32 = useState(false),
56745
- isSmallWidthViewport = _useState32[0],
56746
- setIsSmallWidthViewport = _useState32[1];
56824
+ var _useState31 = useState(),
56825
+ realEditorState = _useState31[0],
56826
+ setRealEditorState = _useState31[1];
56827
+ var _useState32 = useState(null),
56828
+ floatingAnchorElem = _useState32[0],
56829
+ setFloatingAnchorElem = _useState32[1];
56747
56830
  var _useState33 = useState(false),
56748
- isScrolling = _useState33[0],
56749
- setIsScrolling = _useState33[1];
56750
- var _useState34 = useState(null),
56751
- linkPreview = _useState34[0],
56752
- setLinkPreview = _useState34[1];
56831
+ isSmallWidthViewport = _useState33[0],
56832
+ setIsSmallWidthViewport = _useState33[1];
56833
+ var _useState34 = useState(false),
56834
+ isScrolling = _useState34[0],
56835
+ setIsScrolling = _useState34[1];
56753
56836
  var _useState35 = useState(null),
56754
- detectedUrl = _useState35[0],
56755
- setDetectedUrl = _useState35[1];
56756
- var _useState36 = useState(new Set()),
56757
- dismissedUrls = _useState36[0],
56758
- setDismissedUrls = _useState36[1];
56759
- var _useState37 = useState(false),
56760
- isClosingPreview = _useState37[0],
56761
- setIsClosingPreview = _useState37[1];
56837
+ linkPreview = _useState35[0],
56838
+ setLinkPreview = _useState35[1];
56839
+ var _useState36 = useState(null),
56840
+ detectedUrl = _useState36[0],
56841
+ setDetectedUrl = _useState36[1];
56842
+ var _useState37 = useState(new Set()),
56843
+ dismissedUrls = _useState37[0],
56844
+ setDismissedUrls = _useState37[1];
56762
56845
  var _useState38 = useState(false),
56763
- replyLinkPreviewImageFailed = _useState38[0],
56764
- setReplyLinkPreviewImageFailed = _useState38[1];
56846
+ isClosingPreview = _useState38[0],
56847
+ setIsClosingPreview = _useState38[1];
56765
56848
  var _useState39 = useState(false),
56766
- linkPreviewImageFailed = _useState39[0],
56767
- setLinkPreviewImageFailed = _useState39[1];
56849
+ replyLinkPreviewImageFailed = _useState39[0],
56850
+ setReplyLinkPreviewImageFailed = _useState39[1];
56851
+ var _useState40 = useState(false),
56852
+ linkPreviewImageFailed = _useState40[0],
56853
+ setLinkPreviewImageFailed = _useState40[1];
56768
56854
  var addAttachmentByMenu = showChooseFileAttachment && showChooseMediaAttachment;
56769
56855
  var linkify = new LinkifyIt();
56770
56856
  var oGMetadata = useSelector(function (state) {
@@ -58545,7 +58631,7 @@ var SendMessageInput = function SendMessageInput(_ref3) {
58545
58631
  activeColor: accentColor
58546
58632
  }, /*#__PURE__*/React__default.createElement(AudioRecord$1, {
58547
58633
  sendRecordedFile: sendRecordedFile,
58548
- setShowRecording: setShowRecording,
58634
+ setShowRecording: handleShowRecording,
58549
58635
  showRecording: showRecording,
58550
58636
  channelId: activeChannel.id,
58551
58637
  maxRecordingDuration: audioRecordingMaxDuration,