sceyt-chat-react-uikit 1.8.9-beta.2 → 1.8.9-beta.4

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.
Files changed (3) hide show
  1. package/index.js +312 -192
  2. package/index.modern.js +313 -193
  3. package/package.json +1 -1
package/index.js CHANGED
@@ -15702,11 +15702,11 @@ var getVideoFirstFrame = function getVideoFirstFrame(videoSrc, maxWidth, maxHeig
15702
15702
  var _exit4 = false;
15703
15703
  if (_exit3) return _result3;
15704
15704
  function _temp8(_result4) {
15705
- return _exit4 ? _result4 : Promise.resolve(extractFrameFromUrl(videoSrc, maxWidth, maxHeight, quality)).then(function (direct) {
15705
+ return _exit4 ? _result4 : Promise.resolve(extractFrameFromUrl(videoSrc, scaledMaxWidth, scaledMaxHeight, quality)).then(function (direct) {
15706
15706
  return direct ? direct : _catch(function () {
15707
15707
  return Promise.resolve(fetch(videoSrc)).then(function (response) {
15708
15708
  return Promise.resolve(response.blob()).then(function (blob) {
15709
- return Promise.resolve(_extractFrameFromBlob2(blob, maxWidth, maxHeight, quality));
15709
+ return Promise.resolve(_extractFrameFromBlob2(blob, scaledMaxWidth, scaledMaxHeight, quality));
15710
15710
  });
15711
15711
  });
15712
15712
  }, function (error) {
@@ -15720,7 +15720,7 @@ var getVideoFirstFrame = function getVideoFirstFrame(videoSrc, maxWidth, maxHeig
15720
15720
  return _catch(function () {
15721
15721
  return Promise.resolve(fetch(videoSrc)).then(function (_fetch) {
15722
15722
  return Promise.resolve(_fetch.blob()).then(function (blob) {
15723
- return Promise.resolve(_extractFrameFromBlob2(blob, maxWidth, maxHeight, quality)).then(function (_await$_extractFrameF2) {
15723
+ return Promise.resolve(_extractFrameFromBlob2(blob, scaledMaxWidth, scaledMaxHeight, quality)).then(function (_await$_extractFrameF2) {
15724
15724
  _exit4 = true;
15725
15725
  return _await$_extractFrameF2;
15726
15726
  });
@@ -15728,7 +15728,7 @@ var getVideoFirstFrame = function getVideoFirstFrame(videoSrc, maxWidth, maxHeig
15728
15728
  });
15729
15729
  }, function (error) {
15730
15730
  log.warn('getVideoFirstFrame: failed to re-fetch blob url, trying directly', error);
15731
- return Promise.resolve(extractFrameFromUrl(videoSrc, maxWidth, maxHeight, quality)).then(function (_await$extractFrameFr) {
15731
+ return Promise.resolve(extractFrameFromUrl(videoSrc, scaledMaxWidth, scaledMaxHeight, quality)).then(function (_await$extractFrameFr) {
15732
15732
  _exit4 = true;
15733
15733
  return _await$extractFrameFr;
15734
15734
  });
@@ -15737,9 +15737,11 @@ var getVideoFirstFrame = function getVideoFirstFrame(videoSrc, maxWidth, maxHeig
15737
15737
  }();
15738
15738
  return _temp7 && _temp7.then ? _temp7.then(_temp8) : _temp8(_temp7);
15739
15739
  }
15740
+ var scaledMaxWidth = scaleForDevicePixelRatio(maxWidth);
15741
+ var scaledMaxHeight = scaleForDevicePixelRatio(maxHeight);
15740
15742
  var _temp9 = function () {
15741
15743
  if (videoSrc instanceof Blob) {
15742
- return Promise.resolve(_extractFrameFromBlob2(videoSrc, maxWidth, maxHeight, quality)).then(function (_await$_extractFrameF) {
15744
+ return Promise.resolve(_extractFrameFromBlob2(videoSrc, scaledMaxWidth, scaledMaxHeight, quality)).then(function (_await$_extractFrameF) {
15743
15745
  _exit3 = true;
15744
15746
  return _await$_extractFrameF;
15745
15747
  });
@@ -15754,6 +15756,16 @@ var getVideoFirstFrame = function getVideoFirstFrame(videoSrc, maxWidth, maxHeig
15754
15756
  return Promise.reject(e);
15755
15757
  }
15756
15758
  };
15759
+ var scaleForDevicePixelRatio = function scaleForDevicePixelRatio(value, cap) {
15760
+ if (cap === void 0) {
15761
+ cap = 2;
15762
+ }
15763
+ if (!value) {
15764
+ return value;
15765
+ }
15766
+ var dpr = Math.min(window.devicePixelRatio || 1, cap);
15767
+ return value * dpr;
15768
+ };
15757
15769
  var normalizeVideoBlob = function normalizeVideoBlob(blob) {
15758
15770
  try {
15759
15771
  return Promise.resolve(inspectVideoBlob(blob)).then(function (info) {
@@ -15984,8 +15996,7 @@ var compressAndCacheImage = function compressAndCacheImage(url, cacheKey, maxWid
15984
15996
  var file = new File([blob], 'image.jpeg', {
15985
15997
  type: blob.type
15986
15998
  });
15987
- var dpr = Math.min(window.devicePixelRatio || 1, 2);
15988
- return Promise.resolve(resizeImageWithPica(file, (maxWidth || 1280) * dpr, (maxHeight || 1080) * dpr, quality || 1)).then(function (_ref2) {
15999
+ return Promise.resolve(resizeImageWithPica(file, scaleForDevicePixelRatio(maxWidth || 1280), scaleForDevicePixelRatio(maxHeight || 1080), quality || 1)).then(function (_ref2) {
15989
16000
  var compressedBlob = _ref2.blob;
15990
16001
  var returningUrl = compressedBlob ? URL.createObjectURL(compressedBlob) : '';
15991
16002
  if (compressedBlob) {
@@ -22903,7 +22914,7 @@ var UploadAvatarButton = styled__default.button(_templateObject23 || (_templateO
22903
22914
  var UploadAvatarHandler = styled__default.div(_templateObject24 || (_templateObject24 = _taggedTemplateLiteralLoose(["\n margin-left: 18px;\n font-size: 13px;\n color: ", ";\n"])), function (props) {
22904
22915
  return props.color;
22905
22916
  });
22906
- var StyledText = styled__default.span(_templateObject25 || (_templateObject25 = _taggedTemplateLiteralLoose(["\n font-weight: ", ";\n font-family: ", ";\n font-style: ", ";\n text-decoration: ", ";\n letter-spacing: ", ";\n\n &.mention {\n color: ", ";\n font-weight: ", ";\n cursor: ", ";\n }\n &.bold {\n font-weight: 600;\n }\n &.italic {\n font-style: italic;\n }\n &.underline {\n text-decoration: underline;\n }\n &.strikethrough {\n text-decoration: line-through;\n }\n &.underline.strikethrough {\n text-decoration: underline line-through;\n }\n &.monospace {\n letter-spacing: 4px;\n }\n"])), function (props) {
22917
+ var StyledText = styled__default.span(_templateObject25 || (_templateObject25 = _taggedTemplateLiteralLoose(["\n font-weight: ", ";\n font-family: ", ";\n font-style: ", ";\n text-decoration: ", ";\n letter-spacing: ", ";\n\n &.mention {\n color: ", ";\n font-weight: ", ";\n cursor: ", ";\n display: inline;\n user-select: text;\n -webkit-user-select: text;\n }\n &.bold {\n font-weight: 600;\n }\n &.italic {\n font-style: italic;\n }\n &.underline {\n text-decoration: underline;\n }\n &.strikethrough {\n text-decoration: line-through;\n }\n &.underline.strikethrough {\n text-decoration: underline line-through;\n }\n &.monospace {\n letter-spacing: 4px;\n }\n"])), function (props) {
22907
22918
  return props.fontWeight || props.isLastMessage && '500';
22908
22919
  }, function (props) {
22909
22920
  return props.fontFamily;
@@ -23092,6 +23103,10 @@ var PendingIconWrapper = styled__default(SvgPendingIcon)(_templateObject5$1 || (
23092
23103
  }, function (props) {
23093
23104
  return props.color;
23094
23105
  });
23106
+ var canActivateMention = function canActivateMention() {
23107
+ var selection = typeof window !== 'undefined' ? window.getSelection() : null;
23108
+ return !selection || selection.isCollapsed;
23109
+ };
23095
23110
  var MessageStatusIcon = function MessageStatusIcon(_ref) {
23096
23111
  var messageStatus = _ref.messageStatus,
23097
23112
  messageStatusDisplayingType = _ref.messageStatusDisplayingType,
@@ -23307,7 +23322,7 @@ var MessageTextFormat = function MessageTextFormat(_ref3) {
23307
23322
  key: attributeOffset + index,
23308
23323
  "data-mention": attribute.metadata,
23309
23324
  onClick: function onClick() {
23310
- if (onMentionNameClick && shouldOpenUserProfileForMention) {
23325
+ if (canActivateMention() && onMentionNameClick && shouldOpenUserProfileForMention) {
23311
23326
  onMentionNameClick(mentionDisplay);
23312
23327
  }
23313
23328
  }
@@ -23321,7 +23336,7 @@ var MessageTextFormat = function MessageTextFormat(_ref3) {
23321
23336
  key: attributeOffset,
23322
23337
  "data-mention": attribute.metadata,
23323
23338
  onClick: function onClick() {
23324
- if (onMentionNameClick && shouldOpenUserProfileForMention) {
23339
+ if (canActivateMention() && onMentionNameClick && shouldOpenUserProfileForMention) {
23325
23340
  onMentionNameClick(mentionDisplay);
23326
23341
  }
23327
23342
  },
@@ -27788,49 +27803,56 @@ function leaveChannel(action) {
27788
27803
  _context24.p = 0;
27789
27804
  payload = action.payload;
27790
27805
  channelId = payload.channelId;
27791
- _context24.n = 1;
27792
- return effects.call(getChannelFromMap, channelId);
27806
+ if (!(store.getState().UserReducer.connectionStatus !== CONNECTION_STATUS.CONNECTED)) {
27807
+ _context24.n = 1;
27808
+ break;
27809
+ }
27810
+ log.warn('Cannot leave channel while offline');
27811
+ return _context24.a(2);
27793
27812
  case 1:
27813
+ _context24.n = 2;
27814
+ return effects.call(getChannelFromMap, channelId);
27815
+ case 2:
27794
27816
  channel = _context24.v;
27795
27817
  if (!channel) {
27796
27818
  channel = getChannelFromAllChannels(channelId);
27797
27819
  }
27798
27820
  if (!channel) {
27799
- _context24.n = 5;
27821
+ _context24.n = 6;
27800
27822
  break;
27801
27823
  }
27802
27824
  if (!(channel.type === DEFAULT_CHANNEL_TYPE.GROUP || channel.type === DEFAULT_CHANNEL_TYPE.PRIVATE)) {
27803
- _context24.n = 2;
27825
+ _context24.n = 3;
27804
27826
  break;
27805
27827
  }
27806
27828
  messageBuilder = channel.createMessageBuilder();
27807
27829
  messageBuilder.setBody('LG').setType('system').setDisplayCount(0).setSilent(true);
27808
27830
  messageToSend = messageBuilder.create();
27809
27831
  log.info('send message for left');
27810
- _context24.n = 2;
27811
- return effects.call(channel.sendMessage, messageToSend);
27812
- case 2:
27813
- log.info('leave');
27814
27832
  _context24.n = 3;
27815
- return effects.call(channel.leave);
27833
+ return effects.call(channel.sendMessage, messageToSend);
27816
27834
  case 3:
27835
+ log.info('leave');
27817
27836
  _context24.n = 4;
27818
- return effects.put(removeChannelAC(channelId));
27837
+ return effects.call(channel.leave);
27819
27838
  case 4:
27820
- deleteChannelFromAllChannels(channelId);
27821
27839
  _context24.n = 5;
27822
- return effects.put(removeChannelCachesAC(channelId));
27840
+ return effects.put(removeChannelAC(channelId));
27823
27841
  case 5:
27824
- _context24.n = 7;
27825
- break;
27842
+ deleteChannelFromAllChannels(channelId);
27843
+ _context24.n = 6;
27844
+ return effects.put(removeChannelCachesAC(channelId));
27826
27845
  case 6:
27827
- _context24.p = 6;
27846
+ _context24.n = 8;
27847
+ break;
27848
+ case 7:
27849
+ _context24.p = 7;
27828
27850
  _t22 = _context24.v;
27829
27851
  log.error('ERROR in leave channel - ', _t22.message);
27830
- case 7:
27852
+ case 8:
27831
27853
  return _context24.a(2);
27832
27854
  }
27833
- }, _marked22$1, null, [[0, 6]]);
27855
+ }, _marked22$1, null, [[0, 7]]);
27834
27856
  }
27835
27857
  function deletePendingDeleteChannels() {
27836
27858
  var pendingDeleteChannels, _iterator10, _step10, channel, resendableError, _t23;
@@ -50628,25 +50650,12 @@ function useFormatMessage(editor, editorState, setMessageBodyAttributes, setMess
50628
50650
  }
50629
50651
  return true;
50630
50652
  }, [editor, contactsMap, setMentionedMember, getFromContacts, activeChannelMembers, processMentionsInPastedText]);
50631
- var onDelete = React.useCallback(function (event) {
50632
- event.preventDefault();
50633
- editor.update(function () {
50634
- var selection = lexical.$getSelection();
50635
- if (lexical.$isRangeSelection(selection)) {
50636
- var node = getSelectedNode(selection);
50637
- if ($isMentionNode(node)) {
50638
- node.remove();
50639
- }
50640
- }
50641
- });
50642
- return false;
50643
- }, [editor]);
50644
50653
  React.useEffect(function () {
50645
50654
  return mergeRegister(editor.registerCommand(lexical.PASTE_COMMAND, function (e) {
50646
50655
  handlePast(e);
50647
50656
  return true;
50648
- }, lexical.COMMAND_PRIORITY_NORMAL), editor.registerCommand(lexical.KEY_DELETE_COMMAND, onDelete, lexical.COMMAND_PRIORITY_LOW), editor.registerCommand(lexical.KEY_BACKSPACE_COMMAND, onDelete, lexical.COMMAND_PRIORITY_LOW));
50649
- }, [editor, handlePast, onDelete]);
50657
+ }, lexical.COMMAND_PRIORITY_NORMAL));
50658
+ }, [editor, handlePast]);
50650
50659
  useDidUpdate(function () {
50651
50660
  if (editorState) {
50652
50661
  editorState.read(function () {
@@ -50985,6 +50994,18 @@ var Emoji$1 = styled__default.li(_templateObject8$l || (_templateObject8$l = _ta
50985
50994
  return props.hoverBackgroundColor;
50986
50995
  });
50987
50996
 
50997
+ var getReplyLinkPreviewImage = function getReplyLinkPreviewImage(attachments) {
50998
+ var _attachments$;
50999
+ var attachment = attachments !== null && attachments !== void 0 && attachments.length && ((_attachments$ = attachments[0]) === null || _attachments$ === void 0 ? void 0 : _attachments$.type) === attachmentTypes.link ? attachments[0] : null;
51000
+ if (!(attachment !== null && attachment !== void 0 && attachment.metadata) || !isJSON(attachment.metadata)) return null;
51001
+ var compactMeta = JSON.parse(attachment.metadata);
51002
+ var imageUrl = compactMeta.iur || null;
51003
+ return !(compactMeta !== null && compactMeta !== void 0 && compactMeta.hld) ? imageUrl : null;
51004
+ };
51005
+ var shouldShowLinkPreviewErrorFallback = function shouldShowLinkPreviewErrorFallback(imageUrl, imageFailed) {
51006
+ return Boolean(imageUrl && imageFailed);
51007
+ };
51008
+
50988
51009
  var CAN_USE_DOM = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined';
50989
51010
 
50990
51011
  var _circle$6, _path$1j;
@@ -51294,8 +51315,10 @@ var AudioRecord = function AudioRecord(_ref) {
51294
51315
  warningColor = _useColor[THEME_COLORS.WARNING],
51295
51316
  iconPrimary = _useColor[THEME_COLORS.ICON_PRIMARY],
51296
51317
  surface1 = _useColor[THEME_COLORS.SURFACE_1],
51318
+ textPrimary = _useColor[THEME_COLORS.TEXT_PRIMARY],
51297
51319
  iconInactive = _useColor[THEME_COLORS.ICON_INACTIVE],
51298
- textOnPrimary = _useColor[THEME_COLORS.TEXT_ON_PRIMARY];
51320
+ textOnPrimary = _useColor[THEME_COLORS.TEXT_ON_PRIMARY],
51321
+ background = _useColor[THEME_COLORS.BACKGROUND];
51299
51322
  var _useState = React.useState(null),
51300
51323
  recording = _useState[0],
51301
51324
  setStartRecording = _useState[1];
@@ -51323,6 +51346,9 @@ var AudioRecord = function AudioRecord(_ref) {
51323
51346
  var _useState9 = React.useState(false),
51324
51347
  playAudio = _useState9[0],
51325
51348
  setPlayAudio = _useState9[1];
51349
+ var _useState0 = React.useState(false),
51350
+ microphonePermissionDenied = _useState0[0],
51351
+ setMicrophonePermissionDenied = _useState0[1];
51326
51352
  var recordButtonRef = React.useRef(null);
51327
51353
  var audioElements = React.useRef({});
51328
51354
  var intervalRef = React.useRef({});
@@ -51412,27 +51438,21 @@ var AudioRecord = function AudioRecord(_ref) {
51412
51438
  var startRecording = function startRecording(cId) {
51413
51439
  try {
51414
51440
  var id = cId || currentChannelId;
51415
- var _temp = _catch(function () {
51416
- return Promise.resolve(navigator.permissions.query({
51417
- name: 'microphone'
51418
- })).then(function (permissionStatus) {
51419
- if (permissionStatus.state === 'granted') {
51420
- setShowRecording(true);
51421
- } else {
51422
- recordButtonRef.current.style.pointerEvents = 'none';
51423
- }
51424
- if (recording) {
51425
- stopRecording(true, id, false, recorder);
51426
- } else if (currentRecordedFile) {
51427
- removeAudioRecordingFromMap(id);
51428
- setRecordedFile(null);
51429
- setPlayAudio(false);
51430
- cleanupAudioElement(id);
51431
- setStartRecording(false);
51432
- setShowRecording(false);
51433
- dispatch(setChannelDraftMessageIsRemovedAC(id));
51434
- sendRecordedFile(currentRecordedFile, id);
51435
- } else {
51441
+ try {
51442
+ if (recording) {
51443
+ stopRecording(true, id, false, recorder);
51444
+ } else if (currentRecordedFile) {
51445
+ removeAudioRecordingFromMap(id);
51446
+ setRecordedFile(null);
51447
+ setPlayAudio(false);
51448
+ cleanupAudioElement(id);
51449
+ setStartRecording(false);
51450
+ setShowRecording(false);
51451
+ dispatch(setChannelDraftMessageIsRemovedAC(id));
51452
+ sendRecordedFile(currentRecordedFile, id);
51453
+ } else {
51454
+ if (!recorder) return Promise.resolve();
51455
+ recorder.start().then(function () {
51436
51456
  handleStartRecording();
51437
51457
  setAudioRecordingToMap(id, {
51438
51458
  file: null,
@@ -51440,96 +51460,97 @@ var AudioRecord = function AudioRecord(_ref) {
51440
51460
  thumb: null,
51441
51461
  dur: 0
51442
51462
  });
51443
- recorder.start().then(function () {
51444
- recordButtonRef.current.style.pointerEvents = 'initial';
51445
- setShowRecording(true);
51446
- setStartRecording(true);
51447
- shouldDraw = true;
51448
- var stream = recorder.activeStream;
51449
- var obj = {};
51450
- var init = function init() {
51451
- obj.canvas = document.getElementById("waveform-" + id);
51452
- obj.ctx = obj.canvas.getContext('2d');
51453
- obj.width = 360;
51454
- obj.height = 28;
51455
- obj.canvas.width = obj.width;
51456
- obj.canvas.height = obj.height;
51457
- obj.canvas.style.width = obj.width + 'px';
51458
- obj.canvas.style.height = obj.height + 'px';
51459
- };
51460
- var timeOffset = 100;
51461
- var now = parseInt(performance.now()) / timeOffset;
51462
- var _loop = function loop() {
51463
- if (!shouldDraw) {
51464
- obj.x = 0;
51465
- obj.ctx.clearRect(0, 0, obj.canvas.width, obj.canvas.height);
51466
- if (obj.audioContext && obj.audioContext.state !== 'closed') {
51467
- obj.audioContext.close()["catch"](function () {
51468
- return undefined;
51469
- });
51470
- }
51471
- return;
51472
- }
51463
+ setShowRecording(true);
51464
+ setStartRecording(true);
51465
+ shouldDraw = true;
51466
+ var stream = recorder.activeStream;
51467
+ var obj = {};
51468
+ var init = function init() {
51469
+ obj.canvas = document.getElementById("waveform-" + id);
51470
+ obj.ctx = obj.canvas.getContext('2d');
51471
+ obj.width = 360;
51472
+ obj.height = 28;
51473
+ obj.canvas.width = obj.width;
51474
+ obj.canvas.height = obj.height;
51475
+ obj.canvas.style.width = obj.width + 'px';
51476
+ obj.canvas.style.height = obj.height + 'px';
51477
+ };
51478
+ var timeOffset = 100;
51479
+ var now = parseInt(performance.now()) / timeOffset;
51480
+ var _loop = function loop() {
51481
+ if (!shouldDraw) {
51482
+ obj.x = 0;
51473
51483
  obj.ctx.clearRect(0, 0, obj.canvas.width, obj.canvas.height);
51474
- var max = 0;
51475
- if (parseInt(performance.now() / timeOffset) > now) {
51476
- now = parseInt(performance.now() / timeOffset);
51477
- obj.analyser.getFloatTimeDomainData(obj.frequencyArray);
51478
- for (var i = 0; i < obj.frequencyArray.length; i++) {
51479
- if (obj.frequencyArray[i] > max) {
51480
- max = obj.frequencyArray[i];
51481
- }
51482
- }
51483
- var freq = Math.floor(max * 90);
51484
- if (freq === 0) {
51485
- freq = 1;
51486
- }
51487
- obj.bars.push({
51488
- x: obj.width,
51489
- y: obj.height / 2 - freq / 2,
51490
- height: freq,
51491
- width: 3
51484
+ if (obj.audioContext && obj.audioContext.state !== 'closed') {
51485
+ obj.audioContext.close()["catch"](function () {
51486
+ return undefined;
51492
51487
  });
51493
51488
  }
51494
- draw();
51495
- requestAnimationFrame(_loop);
51496
- };
51497
- obj.bars = [];
51498
- var draw = function draw() {
51499
- for (var i = 0; i < obj.bars.length; i++) {
51500
- var bar = obj.bars[i];
51501
- obj.ctx.fillStyle = textSecondary;
51502
- obj.ctx.fillRect(bar.x, bar.y, bar.width, bar.height);
51503
- bar.x = bar.x - 1;
51504
- if (bar.x < 1) {
51505
- obj.bars.splice(i, 1);
51489
+ return;
51490
+ }
51491
+ obj.ctx.clearRect(0, 0, obj.canvas.width, obj.canvas.height);
51492
+ var max = 0;
51493
+ if (parseInt(performance.now() / timeOffset) > now) {
51494
+ now = parseInt(performance.now() / timeOffset);
51495
+ obj.analyser.getFloatTimeDomainData(obj.frequencyArray);
51496
+ for (var i = 0; i < obj.frequencyArray.length; i++) {
51497
+ if (obj.frequencyArray[i] > max) {
51498
+ max = obj.frequencyArray[i];
51506
51499
  }
51507
51500
  }
51508
- };
51509
- var soundAllowed = function soundAllowed(stream) {
51510
- var AudioContext = window.AudioContext || window.webkitAudioContext;
51511
- var audioContent = new AudioContext();
51512
- obj.audioContext = audioContent;
51513
- var streamSource = audioContent.createMediaStreamSource(stream);
51514
- obj.analyser = audioContent.createAnalyser();
51515
- streamSource.connect(obj.analyser);
51516
- obj.analyser.fftSize = 512;
51517
- obj.frequencyArray = new Float32Array(obj.analyser.fftSize);
51518
- init();
51519
- _loop();
51520
- };
51521
- soundAllowed(stream);
51522
- })["catch"](function (e) {
51523
- handleStopRecording();
51524
- log.error(e);
51525
- });
51526
- }
51527
- });
51528
- }, function (e) {
51529
- handleStopRecording();
51501
+ var freq = Math.floor(max * 90);
51502
+ if (freq === 0) {
51503
+ freq = 1;
51504
+ }
51505
+ obj.bars.push({
51506
+ x: obj.width,
51507
+ y: obj.height / 2 - freq / 2,
51508
+ height: freq,
51509
+ width: 3
51510
+ });
51511
+ }
51512
+ draw();
51513
+ requestAnimationFrame(_loop);
51514
+ };
51515
+ obj.bars = [];
51516
+ var draw = function draw() {
51517
+ for (var i = 0; i < obj.bars.length; i++) {
51518
+ var bar = obj.bars[i];
51519
+ obj.ctx.fillStyle = textSecondary;
51520
+ obj.ctx.fillRect(bar.x, bar.y, bar.width, bar.height);
51521
+ bar.x = bar.x - 1;
51522
+ if (bar.x < 1) {
51523
+ obj.bars.splice(i, 1);
51524
+ }
51525
+ }
51526
+ };
51527
+ var soundAllowed = function soundAllowed(stream) {
51528
+ var AudioContext = window.AudioContext || window.webkitAudioContext;
51529
+ var audioContent = new AudioContext();
51530
+ obj.audioContext = audioContent;
51531
+ var streamSource = audioContent.createMediaStreamSource(stream);
51532
+ obj.analyser = audioContent.createAnalyser();
51533
+ streamSource.connect(obj.analyser);
51534
+ obj.analyser.fftSize = 512;
51535
+ obj.frequencyArray = new Float32Array(obj.analyser.fftSize);
51536
+ init();
51537
+ _loop();
51538
+ };
51539
+ soundAllowed(stream);
51540
+ })["catch"](function (e) {
51541
+ if ((e === null || e === void 0 ? void 0 : e.name) === 'NotAllowedError' || (e === null || e === void 0 ? void 0 : e.name) === 'PermissionDeniedError') {
51542
+ setMicrophonePermissionDenied(true);
51543
+ }
51544
+ log.error(e);
51545
+ });
51546
+ }
51547
+ } catch (e) {
51548
+ if ((e === null || e === void 0 ? void 0 : e.name) === 'NotAllowedError' || (e === null || e === void 0 ? void 0 : e.name) === 'PermissionDeniedError') {
51549
+ setMicrophonePermissionDenied(true);
51550
+ }
51530
51551
  log.error(e);
51531
- });
51532
- return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0);
51552
+ }
51553
+ return Promise.resolve();
51533
51554
  } catch (e) {
51534
51555
  return Promise.reject(e);
51535
51556
  }
@@ -51854,7 +51875,36 @@ var AudioRecord = function AudioRecord(_ref) {
51854
51875
  return startRecording(currentChannelId);
51855
51876
  },
51856
51877
  iconColor: accentColor
51857
- }, showRecording || currentRecordedFile ? /*#__PURE__*/React__default.createElement(SvgSend, null) : /*#__PURE__*/React__default.createElement(SvgRecordButton, null)));
51878
+ }, showRecording || currentRecordedFile ? /*#__PURE__*/React__default.createElement(SvgSend, null) : /*#__PURE__*/React__default.createElement(SvgRecordButton, null)), microphonePermissionDenied && (/*#__PURE__*/React__default.createElement(PopupContainer, null, /*#__PURE__*/React__default.createElement(Popup, {
51879
+ backgroundColor: background,
51880
+ maxWidth: '520px',
51881
+ minWidth: '520px',
51882
+ padding: '0'
51883
+ }, /*#__PURE__*/React__default.createElement(PopupBody, {
51884
+ paddingH: '24px',
51885
+ paddingV: '24px'
51886
+ }, /*#__PURE__*/React__default.createElement(CloseIcon, {
51887
+ color: iconPrimary,
51888
+ onClick: function onClick() {
51889
+ return setMicrophonePermissionDenied(false);
51890
+ }
51891
+ }), /*#__PURE__*/React__default.createElement(PopupName, {
51892
+ color: textPrimary,
51893
+ marginBottom: '20px'
51894
+ }, "Microphone Permission Denied"), /*#__PURE__*/React__default.createElement(PopupDescription, {
51895
+ color: textPrimary,
51896
+ highlightColor: textSecondary
51897
+ }, "We can't access your microphone. Enable microphone permission in your browser settings and try again.")), /*#__PURE__*/React__default.createElement(PopupFooter, {
51898
+ backgroundColor: surface1
51899
+ }, /*#__PURE__*/React__default.createElement(Button, {
51900
+ type: 'button',
51901
+ backgroundColor: accentColor,
51902
+ color: textOnPrimary,
51903
+ borderRadius: '8px',
51904
+ onClick: function onClick() {
51905
+ return setMicrophonePermissionDenied(false);
51906
+ }
51907
+ }, "Close"))))));
51858
51908
  };
51859
51909
  var AudioRecord$1 = /*#__PURE__*/React.memo(AudioRecord, function (prevProps, nextProps) {
51860
51910
  return prevProps.channelId === nextProps.channelId && prevProps.showRecording === nextProps.showRecording && prevProps.maxRecordingDuration === nextProps.maxRecordingDuration && prevProps.showViewOnceToggle === nextProps.showViewOnceToggle && prevProps.viewOnce === nextProps.viewOnce && prevProps.ViewOnceSelectedSVGIcon === nextProps.ViewOnceSelectedSVGIcon && prevProps.ViewOnceNotSelectedSVGIcon === nextProps.ViewOnceNotSelectedSVGIcon;
@@ -52379,7 +52429,7 @@ var SettingItem = styled__default.div(_templateObject9$i || (_templateObject9$i
52379
52429
  return props.color;
52380
52430
  });
52381
52431
 
52382
- var _templateObject$W, _templateObject2$R, _templateObject3$I, _templateObject4$C, _templateObject5$x, _templateObject6$t, _templateObject7$q, _templateObject8$n, _templateObject9$j, _templateObject0$h, _templateObject1$f, _templateObject10$c, _templateObject11$9, _templateObject12$7, _templateObject13$6, _templateObject14$4, _templateObject15$2, _templateObject16$2, _templateObject17$2, _templateObject18$2, _templateObject19$2, _templateObject20$2, _templateObject21$2, _templateObject22$1, _templateObject23$1, _templateObject24$1, _templateObject25$1, _templateObject26$1, _templateObject27$1, _templateObject28$1, _templateObject29$1, _templateObject30$1, _templateObject31$1, _templateObject32$1, _templateObject33$1, _templateObject34$1, _templateObject35$1, _templateObject36$1, _templateObject37$1, _templateObject38$1, _templateObject39$1, _templateObject40$1, _templateObject41$1, _templateObject42, _templateObject43, _templateObject44, _templateObject45;
52432
+ var _templateObject$W, _templateObject2$R, _templateObject3$I, _templateObject4$C, _templateObject5$x, _templateObject6$t, _templateObject7$q, _templateObject8$n, _templateObject9$j, _templateObject0$h, _templateObject1$f, _templateObject10$c, _templateObject11$9, _templateObject12$7, _templateObject13$6, _templateObject14$4, _templateObject15$2, _templateObject16$2, _templateObject17$2, _templateObject18$2, _templateObject19$2, _templateObject20$2, _templateObject21$2, _templateObject22$1, _templateObject23$1, _templateObject24$1, _templateObject25$1, _templateObject26$1, _templateObject27$1, _templateObject28$1, _templateObject29$1, _templateObject30$1, _templateObject31$1, _templateObject32$1, _templateObject33$1, _templateObject34$1, _templateObject35$1, _templateObject36$1, _templateObject37$1, _templateObject38$1, _templateObject39$1, _templateObject40$1, _templateObject41$1, _templateObject42, _templateObject43, _templateObject44, _templateObject45, _templateObject46;
52383
52433
  function AutoFocusPlugin(_ref) {
52384
52434
  var messageForReply = _ref.messageForReply;
52385
52435
  var _useLexicalComposerCo = LexicalComposerContext.useLexicalComposerContext(),
@@ -52442,7 +52492,7 @@ function onError(error) {
52442
52492
  var prevActiveChannelId;
52443
52493
  var attachmentsUpdate = [];
52444
52494
  var SendMessageInput = function SendMessageInput(_ref3) {
52445
- var _linkPreview$metadata9, _linkPreview$metadata0, _linkPreview$metadata1, _linkPreview$metadata10, _linkPreview$metadata11, _linkPreview$metadata12, _linkPreview$metadata13, _linkPreview$metadata14, _linkPreview$metadata15, _linkPreview$metadata16, _linkPreview$metadata17, _linkPreview$metadata18, _pollOptions$choosePo, _getAudioRecordingFro2;
52495
+ var _linkPreview$metadata9, _linkPreview$metadata0, _linkPreview$metadata1, _linkPreview$metadata10, _linkPreview$metadata11, _linkPreview$metadata12, _linkPreview$metadata13, _linkPreview$metadata14, _linkPreview$metadata15, _linkPreview$metadata16, _linkPreview$metadata17, _linkPreview$metadata18, _linkPreview$metadata19, _linkPreview$metadata20, _linkPreview$metadata21, _pollOptions$choosePo, _getAudioRecordingFro2;
52446
52496
  var handleAttachmentSelected = _ref3.handleAttachmentSelected,
52447
52497
  handleSendMessage = _ref3.handleSendMessage,
52448
52498
  _ref3$disabled = _ref3.disabled,
@@ -52692,11 +52742,23 @@ var SendMessageInput = function SendMessageInput(_ref3) {
52692
52742
  var _useState35 = React.useState(false),
52693
52743
  isClosingPreview = _useState35[0],
52694
52744
  setIsClosingPreview = _useState35[1];
52745
+ var _useState36 = React.useState(false),
52746
+ replyLinkPreviewImageFailed = _useState36[0],
52747
+ setReplyLinkPreviewImageFailed = _useState36[1];
52748
+ var _useState37 = React.useState(false),
52749
+ linkPreviewImageFailed = _useState37[0],
52750
+ setLinkPreviewImageFailed = _useState37[1];
52695
52751
  var addAttachmentByMenu = showChooseFileAttachment && showChooseMediaAttachment;
52696
52752
  var linkify = new LinkifyIt();
52697
52753
  var oGMetadata = useSelector(function (state) {
52698
52754
  return state.MessageReducer.oGMetadata;
52699
52755
  });
52756
+ React.useEffect(function () {
52757
+ setReplyLinkPreviewImageFailed(false);
52758
+ }, [messageForReply === null || messageForReply === void 0 ? void 0 : messageForReply.id, messageForReply === null || messageForReply === void 0 ? void 0 : messageForReply.tid]);
52759
+ React.useEffect(function () {
52760
+ setLinkPreviewImageFailed(false);
52761
+ }, [linkPreview === null || linkPreview === void 0 ? void 0 : linkPreview.url]);
52700
52762
  var closePreviewWithAnimation = function closePreviewWithAnimation(callback) {
52701
52763
  if (linkPreview) {
52702
52764
  setIsClosingPreview(true);
@@ -53238,10 +53300,6 @@ var SendMessageInput = function SendMessageInput(_ref3) {
53238
53300
  }
53239
53301
  }
53240
53302
  };
53241
- var handleCut = function handleCut() {
53242
- setMessageText('');
53243
- setMentionedUsers([]);
53244
- };
53245
53303
  var handleEmojiPopupToggle = function handleEmojiPopupToggle(bool) {
53246
53304
  setIsEmojisOpened(bool);
53247
53305
  };
@@ -53833,7 +53891,6 @@ var SendMessageInput = function SendMessageInput(_ref3) {
53833
53891
  }, 800);
53834
53892
  }
53835
53893
  messageContRef.current.addEventListener('paste', handlePastAttachments);
53836
- messageContRef.current.addEventListener('cut', handleCut);
53837
53894
  document.addEventListener('mousedown', handleClick);
53838
53895
  return function () {
53839
53896
  if (inputHeightTimeout) {
@@ -53843,7 +53900,6 @@ var SendMessageInput = function SendMessageInput(_ref3) {
53843
53900
  document.removeEventListener('mousedown', handleClick);
53844
53901
  if (messageContRef && messageContRef.current) {
53845
53902
  messageContRef.current.removeEventListener('paste', handlePastAttachments);
53846
- messageContRef.current.removeEventListener('cut', handleCut);
53847
53903
  }
53848
53904
  };
53849
53905
  }, []);
@@ -53904,6 +53960,7 @@ var SendMessageInput = function SendMessageInput(_ref3) {
53904
53960
  }, 301);
53905
53961
  }
53906
53962
  }, [showLinkPreview]);
53963
+ console.log(replyLinkPreviewImageFailed);
53907
53964
  return /*#__PURE__*/React__default.createElement(SendMessageWrapper, {
53908
53965
  ref: sendMessageWrapperRef,
53909
53966
  backgroundColor: backgroundColor || background
@@ -54021,14 +54078,26 @@ var SendMessageInput = function SendMessageInput(_ref3) {
54021
54078
  attachment: messageForReply.attachments[0],
54022
54079
  backgroundColor: selectedFileAttachmentsBoxBackground || '',
54023
54080
  isRepliedMessage: true
54024
- })) : messageForReply.attachments[0].type === attachmentTypes.file && (/*#__PURE__*/React__default.createElement(ReplyIconWrapper, {
54081
+ })) : messageForReply.attachments[0].type === attachmentTypes.file ? (/*#__PURE__*/React__default.createElement(ReplyIconWrapper, {
54025
54082
  backgroundColor: accentColor,
54026
54083
  iconColor: textOnPrimary
54027
- }, /*#__PURE__*/React__default.createElement(SvgChoseFile, null)))), /*#__PURE__*/React__default.createElement(ReplyMessageBody$1, {
54084
+ }, /*#__PURE__*/React__default.createElement(SvgChoseFile, null))) : getReplyLinkPreviewImage(messageForReply.attachments) && !shouldShowLinkPreviewErrorFallback(getReplyLinkPreviewImage(messageForReply.attachments), replyLinkPreviewImageFailed) ? (/*#__PURE__*/React__default.createElement(LinkPreviewImage, {
54085
+ bg: background,
54086
+ src: getReplyLinkPreviewImage(messageForReply.attachments),
54087
+ alt: 'Link preview',
54088
+ onError: function onError() {
54089
+ return setReplyLinkPreviewImageFailed(true);
54090
+ }
54091
+ })) : messageForReply.attachments[0].type === attachmentTypes.link && (/*#__PURE__*/React__default.createElement(LinkPreviewIconWrapper, {
54092
+ bg: background
54093
+ }, /*#__PURE__*/React__default.createElement(LinkPreviewIcon, {
54094
+ color: accentColor,
54095
+ bg: background
54096
+ })))), /*#__PURE__*/React__default.createElement(ReplyMessageBody$1, {
54028
54097
  linkColor: accentColor
54029
54098
  }, /*#__PURE__*/React__default.createElement(EditReplyMessageHeader, {
54030
54099
  color: accentColor
54031
- }, replyMessageIcon || /*#__PURE__*/React__default.createElement(SvgReplyIcon, null), " Reply to", /*#__PURE__*/React__default.createElement(UserName$1, null, user.id === messageForReply.user.id ? user.firstName ? user.firstName + " " + user.lastName : user.id : makeUsername(contactsMap[messageForReply.user.id], messageForReply.user, getFromContacts))), messageForReply.attachments && messageForReply.attachments.length ? messageForReply.attachments[0].type === attachmentTypes.voice ? (/*#__PURE__*/React__default.createElement(TextInOneLine, null, (messageForReply === null || messageForReply === void 0 ? void 0 : messageForReply.viewOnce) && /*#__PURE__*/React__default.createElement(SvgViewOnceLastMessage, {
54100
+ }, replyMessageIcon || /*#__PURE__*/React__default.createElement(SvgReplyIcon, null), user.id === messageForReply.user.id ? ' Reply You' : (/*#__PURE__*/React__default.createElement("span", null, ' Reply to', /*#__PURE__*/React__default.createElement(UserName$1, null, makeUsername(contactsMap[messageForReply.user.id], messageForReply.user, getFromContacts))))), messageForReply.attachments && messageForReply.attachments.length ? messageForReply.attachments[0].type === attachmentTypes.voice ? (/*#__PURE__*/React__default.createElement(TextInOneLine, null, (messageForReply === null || messageForReply === void 0 ? void 0 : messageForReply.viewOnce) && /*#__PURE__*/React__default.createElement(SvgViewOnceLastMessage, {
54032
54101
  style: {
54033
54102
  margin: '0 4px -3px 0'
54034
54103
  }
@@ -54080,7 +54149,7 @@ var SendMessageInput = function SendMessageInput(_ref3) {
54080
54149
  }, /*#__PURE__*/React__default.createElement(CloseEditMode, {
54081
54150
  color: textSecondary,
54082
54151
  onClick: handleRemoveLinkPreview
54083
- }, /*#__PURE__*/React__default.createElement(SvgClose, null)), /*#__PURE__*/React__default.createElement(LinkPreviewContent, null, (_linkPreview$metadata9 = linkPreview.metadata.og) !== null && _linkPreview$metadata9 !== void 0 && (_linkPreview$metadata0 = _linkPreview$metadata9.image) !== null && _linkPreview$metadata0 !== void 0 && (_linkPreview$metadata1 = _linkPreview$metadata0[0]) !== null && _linkPreview$metadata1 !== void 0 && _linkPreview$metadata1.url ? (/*#__PURE__*/React__default.createElement(LinkPreviewImage, {
54152
+ }, /*#__PURE__*/React__default.createElement(SvgClose, null)), /*#__PURE__*/React__default.createElement(LinkPreviewContent, null, (_linkPreview$metadata9 = linkPreview.metadata.og) !== null && _linkPreview$metadata9 !== void 0 && (_linkPreview$metadata0 = _linkPreview$metadata9.image) !== null && _linkPreview$metadata0 !== void 0 && (_linkPreview$metadata1 = _linkPreview$metadata0[0]) !== null && _linkPreview$metadata1 !== void 0 && _linkPreview$metadata1.url && !shouldShowLinkPreviewErrorFallback(linkPreview.metadata.og.image[0].url, linkPreviewImageFailed) ? (/*#__PURE__*/React__default.createElement(LinkPreviewImage, {
54084
54153
  onLoad: function onLoad(e) {
54085
54154
  var _e$target, _e$target2;
54086
54155
  if ((_e$target = e.target) !== null && _e$target !== void 0 && _e$target.naturalHeight && (_e$target2 = e.target) !== null && _e$target2 !== void 0 && _e$target2.naturalWidth) {
@@ -54091,18 +54160,24 @@ var SendMessageInput = function SendMessageInput(_ref3) {
54091
54160
  }
54092
54161
  },
54093
54162
  src: linkPreview.metadata.og.image[0].url,
54094
- alt: 'Link preview'
54095
- })) : (_linkPreview$metadata10 = linkPreview.metadata.og) !== null && _linkPreview$metadata10 !== void 0 && (_linkPreview$metadata11 = _linkPreview$metadata10.favicon) !== null && _linkPreview$metadata11 !== void 0 && _linkPreview$metadata11.url ? (/*#__PURE__*/React__default.createElement(LinkPreviewImage, {
54163
+ alt: 'Link preview',
54164
+ onError: function onError() {
54165
+ return setLinkPreviewImageFailed(true);
54166
+ }
54167
+ })) : shouldShowLinkPreviewErrorFallback((_linkPreview$metadata10 = linkPreview.metadata.og) === null || _linkPreview$metadata10 === void 0 ? void 0 : (_linkPreview$metadata11 = _linkPreview$metadata10.image) === null || _linkPreview$metadata11 === void 0 ? void 0 : (_linkPreview$metadata12 = _linkPreview$metadata11[0]) === null || _linkPreview$metadata12 === void 0 ? void 0 : _linkPreview$metadata12.url, linkPreviewImageFailed) ? (/*#__PURE__*/React__default.createElement(LinkPreviewIcon, {
54168
+ color: accentColor,
54169
+ bg: background
54170
+ })) : (_linkPreview$metadata13 = linkPreview.metadata.og) !== null && _linkPreview$metadata13 !== void 0 && (_linkPreview$metadata14 = _linkPreview$metadata13.favicon) !== null && _linkPreview$metadata14 !== void 0 && _linkPreview$metadata14.url ? (/*#__PURE__*/React__default.createElement(LinkPreviewImage, {
54096
54171
  src: linkPreview.metadata.og.favicon.url,
54097
54172
  alt: 'Favicon'
54098
54173
  })) : (/*#__PURE__*/React__default.createElement(LinkPreviewIcon, {
54099
54174
  color: accentColor,
54100
54175
  bg: background
54101
54176
  })), /*#__PURE__*/React__default.createElement(LinkPreviewTextContent, {
54102
- hasImage: !!((_linkPreview$metadata12 = linkPreview.metadata.og) !== null && _linkPreview$metadata12 !== void 0 && (_linkPreview$metadata13 = _linkPreview$metadata12.image) !== null && _linkPreview$metadata13 !== void 0 && (_linkPreview$metadata14 = _linkPreview$metadata13[0]) !== null && _linkPreview$metadata14 !== void 0 && _linkPreview$metadata14.url) || !!((_linkPreview$metadata15 = linkPreview.metadata.og) !== null && _linkPreview$metadata15 !== void 0 && (_linkPreview$metadata16 = _linkPreview$metadata15.favicon) !== null && _linkPreview$metadata16 !== void 0 && _linkPreview$metadata16.url)
54103
- }, ((_linkPreview$metadata17 = linkPreview.metadata.og) === null || _linkPreview$metadata17 === void 0 ? void 0 : _linkPreview$metadata17.title) && (/*#__PURE__*/React__default.createElement(LinkPreviewTitle, {
54177
+ hasImage: !!((_linkPreview$metadata15 = linkPreview.metadata.og) !== null && _linkPreview$metadata15 !== void 0 && (_linkPreview$metadata16 = _linkPreview$metadata15.image) !== null && _linkPreview$metadata16 !== void 0 && (_linkPreview$metadata17 = _linkPreview$metadata16[0]) !== null && _linkPreview$metadata17 !== void 0 && _linkPreview$metadata17.url) || !!((_linkPreview$metadata18 = linkPreview.metadata.og) !== null && _linkPreview$metadata18 !== void 0 && (_linkPreview$metadata19 = _linkPreview$metadata18.favicon) !== null && _linkPreview$metadata19 !== void 0 && _linkPreview$metadata19.url)
54178
+ }, ((_linkPreview$metadata20 = linkPreview.metadata.og) === null || _linkPreview$metadata20 === void 0 ? void 0 : _linkPreview$metadata20.title) && (/*#__PURE__*/React__default.createElement(LinkPreviewTitle, {
54104
54179
  color: accentColor
54105
- }, linkPreview.metadata.og.title)), ((_linkPreview$metadata18 = linkPreview.metadata.og) === null || _linkPreview$metadata18 === void 0 ? void 0 : _linkPreview$metadata18.description) && (/*#__PURE__*/React__default.createElement(LinkPreviewDescription, {
54180
+ }, linkPreview.metadata.og.title)), ((_linkPreview$metadata21 = linkPreview.metadata.og) === null || _linkPreview$metadata21 === void 0 ? void 0 : _linkPreview$metadata21.description) && (/*#__PURE__*/React__default.createElement(LinkPreviewDescription, {
54106
54181
  color: textPrimary
54107
54182
  }, linkPreview.metadata.og.description)))))), !!attachments.length && !sendAttachmentSeparately && (/*#__PURE__*/React__default.createElement(ChosenAttachments, null, [].concat(attachments).map(function (attachment) {
54108
54183
  return /*#__PURE__*/React__default.createElement("div", {
@@ -54383,7 +54458,7 @@ var MessageInputWrapper = styled__default.div(_templateObject12$7 || (_templateO
54383
54458
  }, function (props) {
54384
54459
  return props.borderRadius || '18px';
54385
54460
  });
54386
- var LexicalWrapper = styled__default.div(_templateObject13$6 || (_templateObject13$6 = _taggedTemplateLiteralLoose(["\n position: relative;\n width: 100%;\n\n & .rich_text_editor {\n width: 100%;\n max-height: 80px;\n min-height: 20px;\n display: block;\n border: none;\n box-sizing: border-box;\n outline: none !important;\n border-radius: ", ";\n background-color: ", ";\n padding: ", ";\n color: ", ";\n order: ", ";\n overflow-y: auto;\n overflow-x: hidden;\n scrollbar-width: none;\n scrollbar-color: transparent transparent;\n overscroll-behavior: none;\n\n @supports (overflow: overlay) {\n overflow-y: overlay;\n }\n\n &::-webkit-scrollbar {\n width: 8px;\n background: transparent;\n }\n &::-webkit-scrollbar-thumb {\n background: transparent;\n }\n\n &.show-scrollbar::-webkit-scrollbar-thumb {\n background: ", ";\n border-radius: 4px;\n }\n &.show-scrollbar::-webkit-scrollbar-track {\n background: transparent;\n }\n\n &.show-scrollbar {\n scrollbar-width: thin;\n scrollbar-color: ", " transparent;\n }\n\n & p {\n font-size: 15px;\n line-height: 20px;\n color: ", ";\n }\n\n &::selection {\n background-color: ", ";\n }\n\n & *::selection {\n background-color: ", ";\n }\n\n & span::selection {\n background-color: ", ";\n }\n\n &:empty:before {\n content: attr(data-placeholder);\n }\n\n & .content_editable_input {\n border: none !important;\n outline: none !important;\n }\n\n & .mention {\n color: ", ";\n background-color: inherit !important;\n user-modify: read-only;\n }\n\n & span.bold {\n font-weight: bold;\n }\n\n & .editor_paragraph {\n margin: 0;\n }\n\n & .text_bold {\n font-weight: 600;\n }\n\n & .text_italic {\n font-style: italic;\n }\n\n & .text_underline {\n text-decoration: underline;\n }\n\n & .text_strikethrough {\n text-decoration: line-through;\n }\n\n & .text_underlineStrikethrough {\n text-decoration: underline line-through;\n }\n\n & code {\n font-family: inherit;\n letter-spacing: 4px;\n }\n }\n"])), function (props) {
54461
+ var LexicalWrapper = styled__default.div(_templateObject13$6 || (_templateObject13$6 = _taggedTemplateLiteralLoose(["\n position: relative;\n width: 100%;\n\n & .rich_text_editor {\n width: 100%;\n max-height: 80px;\n min-height: 20px;\n display: block;\n border: none;\n box-sizing: border-box;\n outline: none !important;\n border-radius: ", ";\n background-color: ", ";\n padding: ", ";\n color: ", ";\n order: ", ";\n overflow-y: auto;\n overflow-x: hidden;\n scrollbar-width: none;\n scrollbar-color: transparent transparent;\n overscroll-behavior: none;\n\n @supports (overflow: overlay) {\n overflow-y: overlay;\n }\n\n &::-webkit-scrollbar {\n width: 8px;\n background: transparent;\n }\n &::-webkit-scrollbar-thumb {\n background: transparent;\n }\n\n &.show-scrollbar::-webkit-scrollbar-thumb {\n background: ", ";\n border-radius: 4px;\n }\n &.show-scrollbar::-webkit-scrollbar-track {\n background: transparent;\n }\n\n &.show-scrollbar {\n scrollbar-width: thin;\n scrollbar-color: ", " transparent;\n }\n\n & p {\n font-size: 15px;\n line-height: 20px;\n color: ", ";\n }\n\n &::selection {\n background-color: ", ";\n }\n\n & *::selection {\n background-color: ", ";\n }\n\n & span::selection {\n background-color: ", ";\n }\n\n &:empty:before {\n content: attr(data-placeholder);\n }\n\n & .content_editable_input {\n border: none !important;\n outline: none !important;\n }\n\n & .mention {\n color: ", ";\n background-color: inherit !important;\n user-select: text;\n -webkit-user-select: text;\n }\n\n & span.bold {\n font-weight: bold;\n }\n\n & .editor_paragraph {\n margin: 0;\n }\n\n & .text_bold {\n font-weight: 600;\n }\n\n & .text_italic {\n font-style: italic;\n }\n\n & .text_underline {\n text-decoration: underline;\n }\n\n & .text_strikethrough {\n text-decoration: line-through;\n }\n\n & .text_underlineStrikethrough {\n text-decoration: underline line-through;\n }\n\n & code {\n font-family: inherit;\n letter-spacing: 4px;\n }\n }\n"])), function (props) {
54387
54462
  return props.borderRadius;
54388
54463
  }, function (props) {
54389
54464
  return props.backgroundColor;
@@ -54491,19 +54566,24 @@ var LinkPreviewContainer = styled__default.div(_templateObject39$1 || (_template
54491
54566
  return props.isClosing ? linkPreviewSlideOut : linkPreviewSlideIn;
54492
54567
  });
54493
54568
  var LinkPreviewContent = styled__default.div(_templateObject40$1 || (_templateObject40$1 = _taggedTemplateLiteralLoose(["\n display: flex;\n gap: 12px;\n flex: 1;\n overflow: hidden;\n"])));
54494
- var LinkPreviewImage = styled__default.img(_templateObject41$1 || (_templateObject41$1 = _taggedTemplateLiteralLoose(["\n width: 40px;\n height: 40px;\n object-fit: cover;\n border-radius: 8px;\n flex-shrink: 0;\n"])));
54569
+ var LinkPreviewImage = styled__default.img(_templateObject41$1 || (_templateObject41$1 = _taggedTemplateLiteralLoose(["\n width: 40px;\n height: 40px;\n object-fit: cover;\n border-radius: 4px;\n flex-shrink: 0;\n margin-right: 8px;\n background: ", ";\n"])), function (props) {
54570
+ return props.bg;
54571
+ });
54495
54572
  var LinkPreviewIcon = styled__default(SvgLinkIcon)(_templateObject42 || (_templateObject42 = _taggedTemplateLiteralLoose(["\n color: ", ";\n rect {\n fill: ", ";\n fill-opacity: 1;\n }\n"])), function (props) {
54496
54573
  return props.color;
54497
54574
  }, function (props) {
54498
54575
  return props.bg;
54499
54576
  });
54500
- var LinkPreviewTextContent = styled__default.div(_templateObject43 || (_templateObject43 = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n gap: 4px;\n overflow: hidden;\n flex: 1;\n justify-content: center;\n ", "\n"])), function (props) {
54577
+ var LinkPreviewIconWrapper = styled__default.div(_templateObject43 || (_templateObject43 = _taggedTemplateLiteralLoose(["\n width: 40px;\n height: 40px;\n border-radius: 4px;\n margin-right: 8px;\n background: ", ";\n"])), function (props) {
54578
+ return props.bg;
54579
+ });
54580
+ var LinkPreviewTextContent = styled__default.div(_templateObject44 || (_templateObject44 = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n gap: 4px;\n overflow: hidden;\n flex: 1;\n justify-content: center;\n ", "\n"])), function (props) {
54501
54581
  return props.hasImage ? '' : 'padding-left: 0;';
54502
54582
  });
54503
- var LinkPreviewTitle = styled__default.div(_templateObject44 || (_templateObject44 = _taggedTemplateLiteralLoose(["\n color: ", ";\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-family: Inter;\n font-weight: 500;\n font-size: 13px;\n line-height: 16px;\n letter-spacing: 0px;\n"])), function (props) {
54583
+ var LinkPreviewTitle = styled__default.div(_templateObject45 || (_templateObject45 = _taggedTemplateLiteralLoose(["\n color: ", ";\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-family: Inter;\n font-weight: 500;\n font-size: 13px;\n line-height: 16px;\n letter-spacing: 0px;\n"])), function (props) {
54504
54584
  return props.color;
54505
54585
  });
54506
- var LinkPreviewDescription = styled__default.div(_templateObject45 || (_templateObject45 = _taggedTemplateLiteralLoose(["\n color: ", ";\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n font-weight: 400;\n font-size: 15px;\n line-height: 20px;\n letter-spacing: -0.2px;\n"])), function (props) {
54586
+ var LinkPreviewDescription = styled__default.div(_templateObject46 || (_templateObject46 = _taggedTemplateLiteralLoose(["\n color: ", ";\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n font-weight: 400;\n font-size: 15px;\n line-height: 20px;\n letter-spacing: -0.2px;\n"])), function (props) {
54507
54587
  return props.color;
54508
54588
  });
54509
54589
 
@@ -55336,12 +55416,14 @@ var Actions = function Actions(_ref) {
55336
55416
  commonGroupsTextColor = _ref.commonGroupsTextColor,
55337
55417
  showGroupsInCommon = _ref.showGroupsInCommon;
55338
55418
  var _useColor = useColors(),
55419
+ accentColor = _useColor[THEME_COLORS.ACCENT],
55339
55420
  textPrimary = _useColor[THEME_COLORS.TEXT_PRIMARY],
55340
55421
  textSecondary = _useColor[THEME_COLORS.TEXT_SECONDARY],
55341
55422
  iconPrimary = _useColor[THEME_COLORS.ICON_PRIMARY],
55342
55423
  surface1 = _useColor[THEME_COLORS.SURFACE_1],
55343
55424
  warningColor = _useColor[THEME_COLORS.WARNING],
55344
- backgroundColor = _useColor[THEME_COLORS.BACKGROUND];
55425
+ backgroundColor = _useColor[THEME_COLORS.BACKGROUND],
55426
+ textOnPrimary = _useColor[THEME_COLORS.TEXT_ON_PRIMARY];
55345
55427
  var ChatClient = getClient();
55346
55428
  var user = ChatClient.user;
55347
55429
  var _useState = React.useState(false),
@@ -55354,35 +55436,39 @@ var Actions = function Actions(_ref) {
55354
55436
  leaveChannelPopupOpen = _useState3[0],
55355
55437
  setLeaveChannelPopupOpen = _useState3[1];
55356
55438
  var _useState4 = React.useState(false),
55357
- deleteChannelPopupOpen = _useState4[0],
55358
- setDeleteChannelPopupOpen = _useState4[1];
55439
+ leaveChannelOfflinePopupOpen = _useState4[0],
55440
+ setLeaveChannelOfflinePopupOpen = _useState4[1];
55359
55441
  var _useState5 = React.useState(false),
55360
- blockChannelPopupOpen = _useState5[0],
55361
- setBlockChannelPopupOpen = _useState5[1];
55442
+ deleteChannelPopupOpen = _useState5[0],
55443
+ setDeleteChannelPopupOpen = _useState5[1];
55362
55444
  var _useState6 = React.useState(false),
55363
- blockUserPopupOpen = _useState6[0],
55364
- setBlockUserPopupOpen = _useState6[1];
55445
+ blockChannelPopupOpen = _useState6[0],
55446
+ setBlockChannelPopupOpen = _useState6[1];
55365
55447
  var _useState7 = React.useState(false),
55366
- unblockUserPopupOpen = _useState7[0],
55367
- setUnblockUserPopupOpen = _useState7[1];
55448
+ blockUserPopupOpen = _useState7[0],
55449
+ setBlockUserPopupOpen = _useState7[1];
55368
55450
  var _useState8 = React.useState(false),
55369
- reportUserPopupOpen = _useState8[0],
55370
- setReportUserPopupOpen = _useState8[1];
55451
+ unblockUserPopupOpen = _useState8[0],
55452
+ setUnblockUserPopupOpen = _useState8[1];
55371
55453
  var _useState9 = React.useState(false),
55372
- disappearingMessagesPopupOpen = _useState9[0],
55373
- setDisappearingMessagesPopupOpen = _useState9[1];
55454
+ reportUserPopupOpen = _useState9[0],
55455
+ setReportUserPopupOpen = _useState9[1];
55374
55456
  var _useState0 = React.useState(false),
55375
- groupsInCommonPopupOpen = _useState0[0],
55376
- setGroupsInCommonPopupOpen = _useState0[1];
55457
+ disappearingMessagesPopupOpen = _useState0[0],
55458
+ setDisappearingMessagesPopupOpen = _useState0[1];
55459
+ var _useState1 = React.useState(false),
55460
+ groupsInCommonPopupOpen = _useState1[0],
55461
+ setGroupsInCommonPopupOpen = _useState1[1];
55377
55462
  var _usePermissions = usePermissions(channel.userRole),
55378
55463
  checkActionPermission = _usePermissions[0];
55379
- var _useState1 = React.useState(''),
55380
- popupButtonText = _useState1[0],
55381
- setPopupButtonText = _useState1[1];
55382
55464
  var _useState10 = React.useState(''),
55383
- popupTitle = _useState10[0],
55384
- setPopupTitle = _useState10[1];
55465
+ popupButtonText = _useState10[0],
55466
+ setPopupButtonText = _useState10[1];
55467
+ var _useState11 = React.useState(''),
55468
+ popupTitle = _useState11[0],
55469
+ setPopupTitle = _useState11[1];
55385
55470
  var dispatch = useDispatch();
55471
+ var connectionStatus = useSelector(connectionStatusSelector);
55386
55472
  var oneHour = 60 * 60 * 1000;
55387
55473
  var twoHours = oneHour * 2;
55388
55474
  var oneDay = oneHour * 24;
@@ -55427,6 +55513,10 @@ var Actions = function Actions(_ref) {
55427
55513
  }
55428
55514
  };
55429
55515
  var handleLeaveChannel = function handleLeaveChannel() {
55516
+ if (connectionStatus !== CONNECTION_STATUS.CONNECTED) {
55517
+ setLeaveChannelOfflinePopupOpen(true);
55518
+ return;
55519
+ }
55430
55520
  dispatch(leaveChannelAC(channel.id));
55431
55521
  };
55432
55522
  var handleDeleteChannel = function handleDeleteChannel() {
@@ -55728,7 +55818,37 @@ var Actions = function Actions(_ref) {
55728
55818
  buttonText: popupButtonText,
55729
55819
  description: channel.type === DEFAULT_CHANNEL_TYPE.GROUP || channel.type === DEFAULT_CHANNEL_TYPE.PRIVATE ? 'Once you leave this group it will be removed for you along with its entire history.' : 'Once you leave this channel it will be removed for you along with its entire history.',
55730
55820
  title: popupTitle
55731
- })), deleteChannelPopupOpen && (/*#__PURE__*/React__default.createElement(ConfirmPopup, {
55821
+ })), leaveChannelOfflinePopupOpen && (/*#__PURE__*/React__default.createElement(PopupContainer, null, /*#__PURE__*/React__default.createElement(Popup, {
55822
+ backgroundColor: backgroundColor,
55823
+ maxWidth: '520px',
55824
+ minWidth: '520px',
55825
+ padding: '0'
55826
+ }, /*#__PURE__*/React__default.createElement(PopupBody, {
55827
+ paddingH: '24px',
55828
+ paddingV: '24px'
55829
+ }, /*#__PURE__*/React__default.createElement(CloseIcon, {
55830
+ color: iconPrimary,
55831
+ onClick: function onClick() {
55832
+ return setLeaveChannelOfflinePopupOpen(false);
55833
+ }
55834
+ }), /*#__PURE__*/React__default.createElement(PopupName, {
55835
+ color: textPrimary,
55836
+ isDelete: true,
55837
+ marginBottom: '20px'
55838
+ }, "Failed to leave group"), /*#__PURE__*/React__default.createElement(PopupDescription, {
55839
+ color: textPrimary,
55840
+ highlightColor: textSecondary
55841
+ }, "You\u2019re offline. Reconnect and try again.")), /*#__PURE__*/React__default.createElement(PopupFooter, {
55842
+ backgroundColor: surface1
55843
+ }, /*#__PURE__*/React__default.createElement(Button, {
55844
+ type: 'button',
55845
+ backgroundColor: accentColor,
55846
+ color: textOnPrimary,
55847
+ borderRadius: '8px',
55848
+ onClick: function onClick() {
55849
+ return setLeaveChannelOfflinePopupOpen(false);
55850
+ }
55851
+ }, "Close"))))), deleteChannelPopupOpen && (/*#__PURE__*/React__default.createElement(ConfirmPopup, {
55732
55852
  handleFunction: handleDeleteChannel,
55733
55853
  togglePopup: handleToggleDeleteChannelPopupOpen,
55734
55854
  buttonText: popupButtonText,