stream-chat-react 9.1.0 → 9.1.3

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 (37) hide show
  1. package/dist/browser.full-bundle.js +167 -121
  2. package/dist/browser.full-bundle.js.map +1 -1
  3. package/dist/browser.full-bundle.min.js +4 -4
  4. package/dist/browser.full-bundle.min.js.map +1 -1
  5. package/dist/components/InfiniteScrollPaginator/InfiniteScroll.d.ts.map +1 -1
  6. package/dist/components/InfiniteScrollPaginator/InfiniteScroll.js +1 -4
  7. package/dist/components/MessageInput/EditMessageForm.d.ts.map +1 -1
  8. package/dist/components/MessageInput/EditMessageForm.js +1 -5
  9. package/dist/components/MessageList/MessageList.d.ts.map +1 -1
  10. package/dist/components/MessageList/MessageList.js +1 -3
  11. package/dist/components/MessageList/VirtualizedMessageList.d.ts.map +1 -1
  12. package/dist/components/MessageList/VirtualizedMessageList.js +2 -2
  13. package/dist/components/MessageList/hooks/usePrependMessagesCount.d.ts +1 -1
  14. package/dist/components/MessageList/hooks/usePrependMessagesCount.d.ts.map +1 -1
  15. package/dist/components/MessageList/hooks/usePrependMessagesCount.js +3 -2
  16. package/dist/components/MessageList/hooks/useScrollLocationLogic.d.ts.map +1 -1
  17. package/dist/components/MessageList/hooks/useScrollLocationLogic.js +2 -1
  18. package/dist/components/Modal/Modal.d.ts +1 -1
  19. package/dist/components/Modal/Modal.d.ts.map +1 -1
  20. package/dist/components/Modal/Modal.js +2 -0
  21. package/dist/css/index.css +1 -1
  22. package/dist/index.cjs.js +13 -23
  23. package/dist/index.cjs.js.map +1 -1
  24. package/dist/scss/Message.scss +1 -1
  25. package/dist/scss/MessageActions.scss +19 -0
  26. package/dist/scss/MessageList.scss +16 -7
  27. package/dist/scss/Modal.scss +1 -2
  28. package/dist/scss/Thread.scss +0 -1
  29. package/dist/scss/_variables.scss +2 -0
  30. package/dist/stories/hello.stories.d.ts +1 -0
  31. package/dist/stories/hello.stories.d.ts.map +1 -1
  32. package/dist/stories/hello.stories.js +10 -1
  33. package/dist/stories/navigate-long-message-lists.stories.d.ts.map +1 -1
  34. package/dist/stories/navigate-long-message-lists.stories.js +5 -3
  35. package/dist/version.d.ts +1 -1
  36. package/dist/version.js +1 -1
  37. package/package.json +5 -5
@@ -627,11 +627,11 @@ var StreamChatReact = (function (exports, React, streamChat) {
627
627
 
628
628
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
629
629
 
630
- var MATCH_URL_YOUTUBE = /(?:youtu\.be\/|youtube(?:-nocookie)?\.com\/(?:embed\/|v\/|watch\/|watch\?v=|watch\?.+&v=))((\w|-){11})|youtube\.com\/playlist\?list=|youtube\.com\/user\//;
630
+ var MATCH_URL_YOUTUBE = /(?:youtu\.be\/|youtube(?:-nocookie)?\.com\/(?:embed\/|v\/|watch\/|watch\?v=|watch\?.+&v=|shorts\/))((\w|-){11})|youtube\.com\/playlist\?list=|youtube\.com\/user\//;
631
631
  exports.MATCH_URL_YOUTUBE = MATCH_URL_YOUTUBE;
632
632
  var MATCH_URL_SOUNDCLOUD = /(?:soundcloud\.com|snd\.sc)\/[^.]+$/;
633
633
  exports.MATCH_URL_SOUNDCLOUD = MATCH_URL_SOUNDCLOUD;
634
- var MATCH_URL_VIMEO = /vimeo\.com\/.+/;
634
+ var MATCH_URL_VIMEO = /vimeo\.com\/(?!progressive_redirect).+/;
635
635
  exports.MATCH_URL_VIMEO = MATCH_URL_VIMEO;
636
636
  var MATCH_URL_FACEBOOK = /^https?:\/\/(www\.)?facebook\.com.*\/(video(s)?|watch|story)(\.php?|\/).+$/;
637
637
  exports.MATCH_URL_FACEBOOK = MATCH_URL_FACEBOOK;
@@ -649,13 +649,13 @@ var StreamChatReact = (function (exports, React, streamChat) {
649
649
  exports.MATCH_URL_DAILYMOTION = MATCH_URL_DAILYMOTION;
650
650
  var MATCH_URL_MIXCLOUD = /mixcloud\.com\/([^/]+\/[^/]+)/;
651
651
  exports.MATCH_URL_MIXCLOUD = MATCH_URL_MIXCLOUD;
652
- var MATCH_URL_VIDYARD = /vidyard.com\/(?:watch\/)?([a-zA-Z0-9-]+)/;
652
+ var MATCH_URL_VIDYARD = /vidyard.com\/(?:watch\/)?([a-zA-Z0-9-_]+)/;
653
653
  exports.MATCH_URL_VIDYARD = MATCH_URL_VIDYARD;
654
- var MATCH_URL_KALTURA = /^https?:\/\/[a-zA-Z]+\.kaltura.(com|org)\/p\/([0-9]+)\/sp\/([0-9]+)00\/embedIframeJs\/uiconf_id\/([0-9]+)\/partner_id\/([0-9]+)(.*)entry_id.([a-zA-Z0-9-_]+)$/;
654
+ var MATCH_URL_KALTURA = /^https?:\/\/[a-zA-Z]+\.kaltura.(com|org)\/p\/([0-9]+)\/sp\/([0-9]+)00\/embedIframeJs\/uiconf_id\/([0-9]+)\/partner_id\/([0-9]+)(.*)entry_id.([a-zA-Z0-9-_].*)$/;
655
655
  exports.MATCH_URL_KALTURA = MATCH_URL_KALTURA;
656
- var AUDIO_EXTENSIONS = /\.(m4a|mp4a|mpga|mp2|mp2a|mp3|m2a|m3a|wav|weba|aac|oga|spx)($|\?)/i;
656
+ var AUDIO_EXTENSIONS = /\.(m4a|m4b|mp4a|mpga|mp2|mp2a|mp3|m2a|m3a|wav|weba|aac|oga|spx)($|\?)/i;
657
657
  exports.AUDIO_EXTENSIONS = AUDIO_EXTENSIONS;
658
- var VIDEO_EXTENSIONS = /\.(mp4|og[gv]|webm|mov|m4v)($|\?)/i;
658
+ var VIDEO_EXTENSIONS = /\.(mp4|og[gv]|webm|mov|m4v)(#t=[,\d+]+)?($|\?)/i;
659
659
  exports.VIDEO_EXTENSIONS = VIDEO_EXTENSIONS;
660
660
  var HLS_EXTENSIONS = /\.(m3u8)($|\?)/i;
661
661
  exports.HLS_EXTENSIONS = HLS_EXTENSIONS;
@@ -1013,6 +1013,9 @@ var StreamChatReact = (function (exports, React, streamChat) {
1013
1013
 
1014
1014
  _this2.props.onReady();
1015
1015
  },
1016
+ onPlaybackRateChange: function onPlaybackRateChange(event) {
1017
+ return _this2.props.onPlaybackRateChange(event.data);
1018
+ },
1016
1019
  onStateChange: _this2.onStateChange,
1017
1020
  onError: function onError(event) {
1018
1021
  return _onError(event.data);
@@ -1435,6 +1438,9 @@ var StreamChatReact = (function (exports, React, streamChat) {
1435
1438
  this.duration = null;
1436
1439
  (0, utils$2.getSDK)(SDK_URL, SDK_GLOBAL).then(function (Vimeo) {
1437
1440
  if (!_this2.container) return;
1441
+ var _this2$props$config = _this2.props.config,
1442
+ playerOptions = _this2$props$config.playerOptions,
1443
+ title = _this2$props$config.title;
1438
1444
  _this2.player = new Vimeo.Player(_this2.container, _objectSpread({
1439
1445
  url: url,
1440
1446
  autoplay: _this2.props.playing,
@@ -1442,13 +1448,17 @@ var StreamChatReact = (function (exports, React, streamChat) {
1442
1448
  loop: _this2.props.loop,
1443
1449
  playsinline: _this2.props.playsinline,
1444
1450
  controls: _this2.props.controls
1445
- }, _this2.props.config.playerOptions));
1451
+ }, playerOptions));
1446
1452
 
1447
1453
  _this2.player.ready().then(function () {
1448
1454
  var iframe = _this2.container.querySelector('iframe');
1449
1455
 
1450
1456
  iframe.style.width = '100%';
1451
1457
  iframe.style.height = '100%';
1458
+
1459
+ if (title) {
1460
+ iframe.title = title;
1461
+ }
1452
1462
  })["catch"](_this2.props.onError);
1453
1463
 
1454
1464
  _this2.player.on('loaded', function () {
@@ -1985,7 +1995,7 @@ var StreamChatReact = (function (exports, React, streamChat) {
1985
1995
  frameBorder: "0",
1986
1996
  scrolling: "no",
1987
1997
  style: style,
1988
- allowFullScreen: true
1998
+ allow: "encrypted-media; autoplay; fullscreen;"
1989
1999
  });
1990
2000
  }
1991
2001
  }]);
@@ -2096,6 +2106,12 @@ var StreamChatReact = (function (exports, React, streamChat) {
2096
2106
  return (_this$props4 = _this.props).onEnded.apply(_this$props4, arguments);
2097
2107
  });
2098
2108
 
2109
+ _defineProperty(_assertThisInitialized(_this), "onPlaybackRateChange", function () {
2110
+ var _this$props5;
2111
+
2112
+ return (_this$props5 = _this.props).onPlaybackRateChange.apply(_this$props5, arguments);
2113
+ });
2114
+
2099
2115
  _defineProperty(_assertThisInitialized(_this), "mute", function () {
2100
2116
  _this.callPlayer('mute');
2101
2117
  });
@@ -2117,13 +2133,13 @@ var StreamChatReact = (function (exports, React, streamChat) {
2117
2133
  value: function load(url) {
2118
2134
  var _this2 = this;
2119
2135
 
2120
- var _this$props5 = this.props,
2121
- playing = _this$props5.playing,
2122
- muted = _this$props5.muted,
2123
- controls = _this$props5.controls,
2124
- _onReady = _this$props5.onReady,
2125
- config = _this$props5.config,
2126
- onError = _this$props5.onError;
2136
+ var _this$props6 = this.props,
2137
+ playing = _this$props6.playing,
2138
+ muted = _this$props6.muted,
2139
+ controls = _this$props6.controls,
2140
+ _onReady = _this$props6.onReady,
2141
+ config = _this$props6.config,
2142
+ onError = _this$props6.onError;
2127
2143
  (0, utils$2.getSDK)(SDK_URL, SDK_GLOBAL).then(function (Wistia) {
2128
2144
  if (config.customControls) {
2129
2145
  config.customControls.forEach(function (control) {
@@ -2161,6 +2177,8 @@ var StreamChatReact = (function (exports, React, streamChat) {
2161
2177
 
2162
2178
  _this2.player.bind('end', _this2.onEnded);
2163
2179
 
2180
+ _this2.player.bind('playbackratechange', _this2.onPlaybackRateChange);
2181
+
2164
2182
  _onReady();
2165
2183
  }
2166
2184
  });
@@ -2173,6 +2191,7 @@ var StreamChatReact = (function (exports, React, streamChat) {
2173
2191
  this.player.unbind('pause', this.onPause);
2174
2192
  this.player.unbind('seek', this.onSeek);
2175
2193
  this.player.unbind('end', this.onEnded);
2194
+ this.player.unbind('playbackratechange', this.onPlaybackRateChange);
2176
2195
  } // Proxy methods to prevent listener leaks
2177
2196
 
2178
2197
  }, {
@@ -2384,7 +2403,8 @@ var StreamChatReact = (function (exports, React, streamChat) {
2384
2403
  PAUSE = _Twitch$Player.PAUSE,
2385
2404
  ENDED = _Twitch$Player.ENDED,
2386
2405
  ONLINE = _Twitch$Player.ONLINE,
2387
- OFFLINE = _Twitch$Player.OFFLINE;
2406
+ OFFLINE = _Twitch$Player.OFFLINE,
2407
+ SEEK = _Twitch$Player.SEEK;
2388
2408
 
2389
2409
  _this2.player.addEventListener(READY, _this2.props.onReady);
2390
2410
 
@@ -2392,7 +2412,9 @@ var StreamChatReact = (function (exports, React, streamChat) {
2392
2412
 
2393
2413
  _this2.player.addEventListener(PAUSE, _this2.props.onPause);
2394
2414
 
2395
- _this2.player.addEventListener(ENDED, _this2.props.onEnded); // Prevent weird isLoading behaviour when streams are offline
2415
+ _this2.player.addEventListener(ENDED, _this2.props.onEnded);
2416
+
2417
+ _this2.player.addEventListener(SEEK, _this2.props.onSeek); // Prevent weird isLoading behaviour when streams are offline
2396
2418
 
2397
2419
 
2398
2420
  _this2.player.addEventListener(ONLINE, _this2.props.onLoaded);
@@ -3004,6 +3026,10 @@ var StreamChatReact = (function (exports, React, streamChat) {
3004
3026
  (0, utils$2.getSDK)(SDK_URL, SDK_GLOBAL, SDK_GLOBAL_READY).then(function (Vidyard) {
3005
3027
  if (!_this2.container) return;
3006
3028
  Vidyard.api.addReadyListener(function (data, player) {
3029
+ if (_this2.player) {
3030
+ return;
3031
+ }
3032
+
3007
3033
  _this2.player = player;
3008
3034
 
3009
3035
  _this2.player.on('ready', _this2.props.onReady);
@@ -3200,45 +3226,40 @@ var StreamChatReact = (function (exports, React, streamChat) {
3200
3226
  _this2.player = new playerjs.Player(_this2.iframe);
3201
3227
 
3202
3228
  _this2.player.on('ready', function () {
3203
- _this2.player.isReady = true;
3204
-
3205
- _this2.player.on('play', _this2.props.onPlay);
3206
-
3207
- _this2.player.on('pause', _this2.props.onPause);
3208
-
3209
- _this2.player.on('seeked', _this2.props.onSeek);
3210
-
3211
- _this2.player.on('ended', _this2.props.onEnded);
3212
-
3213
- _this2.player.on('error', _this2.props.onError);
3214
-
3215
- _this2.player.on('timeupdate', function (_ref) {
3216
- var duration = _ref.duration,
3217
- seconds = _ref.seconds;
3218
- _this2.duration = duration;
3219
- _this2.currentTime = seconds;
3220
- });
3229
+ // An arbitrary timeout is required otherwise
3230
+ // the event listeners won’t work
3231
+ setTimeout(function () {
3232
+ _this2.player.isReady = true;
3221
3233
 
3222
- _this2.player.on('buffered', function (_ref2) {
3223
- var percent = _ref2.percent;
3234
+ _this2.player.setLoop(_this2.props.loop);
3224
3235
 
3225
- if (_this2.duration) {
3226
- _this2.secondsLoaded = _this2.duration * percent;
3236
+ if (_this2.props.muted) {
3237
+ _this2.player.mute();
3227
3238
  }
3228
- });
3229
-
3230
- _this2.player.setLoop(_this2.props.loop);
3231
3239
 
3232
- if (_this2.props.muted) {
3233
- _this2.player.mute();
3234
- }
3240
+ _this2.addListeners(_this2.player, _this2.props);
3235
3241
 
3236
- setTimeout(function () {
3237
3242
  _this2.props.onReady();
3238
- });
3243
+ }, 500);
3239
3244
  });
3240
3245
  }, this.props.onError);
3241
3246
  }
3247
+ }, {
3248
+ key: "addListeners",
3249
+ value: function addListeners(player, props) {
3250
+ var _this3 = this;
3251
+
3252
+ player.on('play', props.onPlay);
3253
+ player.on('pause', props.onPause);
3254
+ player.on('ended', props.onEnded);
3255
+ player.on('error', props.onError);
3256
+ player.on('timeupdate', function (_ref) {
3257
+ var duration = _ref.duration,
3258
+ seconds = _ref.seconds;
3259
+ _this3.duration = duration;
3260
+ _this3.currentTime = seconds;
3261
+ });
3262
+ }
3242
3263
  }, {
3243
3264
  key: "play",
3244
3265
  value: function play() {
@@ -3296,8 +3317,7 @@ var StreamChatReact = (function (exports, React, streamChat) {
3296
3317
  frameBorder: "0",
3297
3318
  scrolling: "no",
3298
3319
  style: style,
3299
- allowFullScreen: true,
3300
- allow: "encrypted-media",
3320
+ allow: "encrypted-media; autoplay; fullscreen;",
3301
3321
  referrerPolicy: "no-referrer-when-downgrade"
3302
3322
  });
3303
3323
  }
@@ -3430,6 +3450,10 @@ var StreamChatReact = (function (exports, React, streamChat) {
3430
3450
  return (_this$props7 = _this.props).onError.apply(_this$props7, arguments);
3431
3451
  });
3432
3452
 
3453
+ _defineProperty(_assertThisInitialized(_this), "onPlayBackRateChange", function (event) {
3454
+ return _this.props.onPlaybackRateChange(event.target.playbackRate);
3455
+ });
3456
+
3433
3457
  _defineProperty(_assertThisInitialized(_this), "onEnablePIP", function () {
3434
3458
  var _this$props8;
3435
3459
 
@@ -3546,6 +3570,7 @@ var StreamChatReact = (function (exports, React, streamChat) {
3546
3570
  player.addEventListener('seeked', this.onSeek);
3547
3571
  player.addEventListener('ended', this.onEnded);
3548
3572
  player.addEventListener('error', this.onError);
3573
+ player.addEventListener('ratechange', this.onPlayBackRateChange);
3549
3574
  player.addEventListener('enterpictureinpicture', this.onEnablePIP);
3550
3575
  player.addEventListener('leavepictureinpicture', this.onDisablePIP);
3551
3576
  player.addEventListener('webkitpresentationmodechanged', this.onPresentationModeChange);
@@ -3572,6 +3597,7 @@ var StreamChatReact = (function (exports, React, streamChat) {
3572
3597
  player.removeEventListener('seeked', this.onSeek);
3573
3598
  player.removeEventListener('ended', this.onEnded);
3574
3599
  player.removeEventListener('error', this.onError);
3600
+ player.removeEventListener('ratechange', this.onPlayBackRateChange);
3575
3601
  player.removeEventListener('enterpictureinpicture', this.onEnablePIP);
3576
3602
  player.removeEventListener('leavepictureinpicture', this.onDisablePIP);
3577
3603
  player.removeEventListener('webkitpresentationmodechanged', this.onPresentationModeChange);
@@ -3694,6 +3720,10 @@ var StreamChatReact = (function (exports, React, streamChat) {
3694
3720
 
3695
3721
  _this2.flv.attachMediaElement(_this2.player);
3696
3722
 
3723
+ _this2.flv.on(flvjs.Events.ERROR, function (e, data) {
3724
+ _this2.props.onError(e, data, _this2.flv, flvjs);
3725
+ });
3726
+
3697
3727
  _this2.flv.load();
3698
3728
 
3699
3729
  _this2.props.onLoaded();
@@ -3768,7 +3798,11 @@ var StreamChatReact = (function (exports, React, streamChat) {
3768
3798
  }, {
3769
3799
  key: "setPlaybackRate",
3770
3800
  value: function setPlaybackRate(rate) {
3771
- this.player.playbackRate = rate;
3801
+ try {
3802
+ this.player.playbackRate = rate;
3803
+ } catch (error) {
3804
+ this.props.onError(error);
3805
+ }
3772
3806
  }
3773
3807
  }, {
3774
3808
  key: "getDuration",
@@ -4320,6 +4354,7 @@ var StreamChatReact = (function (exports, React, streamChat) {
4320
4354
  playIcon: node,
4321
4355
  previewTabIndex: number,
4322
4356
  fallback: node,
4357
+ oEmbedUrl: string,
4323
4358
  wrapper: oneOfType([string, func, shape({
4324
4359
  render: func.isRequired
4325
4360
  })]),
@@ -4342,7 +4377,8 @@ var StreamChatReact = (function (exports, React, streamChat) {
4342
4377
  params: object
4343
4378
  }),
4344
4379
  vimeo: shape({
4345
- playerOptions: object
4380
+ playerOptions: object,
4381
+ title: string
4346
4382
  }),
4347
4383
  file: shape({
4348
4384
  attributes: object,
@@ -4383,6 +4419,7 @@ var StreamChatReact = (function (exports, React, streamChat) {
4383
4419
  onError: func,
4384
4420
  onDuration: func,
4385
4421
  onSeek: func,
4422
+ onPlaybackRateChange: func,
4386
4423
  onProgress: func,
4387
4424
  onClickPreview: func,
4388
4425
  onEnablePIP: func,
@@ -4410,6 +4447,7 @@ var StreamChatReact = (function (exports, React, streamChat) {
4410
4447
  fallback: null,
4411
4448
  wrapper: 'div',
4412
4449
  previewTabIndex: 0,
4450
+ oEmbedUrl: 'https://noembed.com/embed?url={url}',
4413
4451
  config: {
4414
4452
  soundcloud: {
4415
4453
  options: {
@@ -4452,7 +4490,8 @@ var StreamChatReact = (function (exports, React, streamChat) {
4452
4490
  byline: false,
4453
4491
  portrait: false,
4454
4492
  title: false
4455
- }
4493
+ },
4494
+ title: null
4456
4495
  },
4457
4496
  file: {
4458
4497
  attributes: {},
@@ -4463,7 +4502,7 @@ var StreamChatReact = (function (exports, React, streamChat) {
4463
4502
  forceDASH: false,
4464
4503
  forceFLV: false,
4465
4504
  hlsOptions: {},
4466
- hlsVersion: '0.14.16',
4505
+ hlsVersion: '1.1.4',
4467
4506
  dashVersion: '3.1.3',
4468
4507
  flvVersion: '1.5.0'
4469
4508
  },
@@ -4495,6 +4534,7 @@ var StreamChatReact = (function (exports, React, streamChat) {
4495
4534
  onError: noop,
4496
4535
  onDuration: noop,
4497
4536
  onSeek: noop,
4537
+ onPlaybackRateChange: noop,
4498
4538
  onProgress: noop,
4499
4539
  onClickPreview: noop,
4500
4540
  onEnablePIP: noop,
@@ -4523,6 +4563,8 @@ var StreamChatReact = (function (exports, React, streamChat) {
4523
4563
 
4524
4564
 
4525
4565
 
4566
+
4567
+
4526
4568
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
4527
4569
 
4528
4570
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
@@ -4588,6 +4630,8 @@ var StreamChatReact = (function (exports, React, streamChat) {
4588
4630
  _defineProperty(_assertThisInitialized(_this), "onDurationCalled", false);
4589
4631
 
4590
4632
  _defineProperty(_assertThisInitialized(_this), "handlePlayerMount", function (player) {
4633
+ if (_this.player) return; // Prevent loading twice in strict mode
4634
+
4591
4635
  _this.player = player;
4592
4636
 
4593
4637
  _this.player.load(_this.props.url);
@@ -4783,10 +4827,11 @@ var StreamChatReact = (function (exports, React, streamChat) {
4783
4827
  playbackRate = _this$props5.playbackRate,
4784
4828
  pip = _this$props5.pip,
4785
4829
  loop = _this$props5.loop,
4786
- activePlayer = _this$props5.activePlayer;
4830
+ activePlayer = _this$props5.activePlayer,
4831
+ disableDeferredLoading = _this$props5.disableDeferredLoading;
4787
4832
 
4788
4833
  if (!(0, _reactFastCompare["default"])(prevProps.url, url)) {
4789
- if (this.isLoading && !activePlayer.forceLoad) {
4834
+ if (this.isLoading && !activePlayer.forceLoad && !disableDeferredLoading && !(0, utils$2.isMediaStream)(url)) {
4790
4835
  console.warn("ReactPlayer: the attempt to load ".concat(url, " is being deferred until the player has loaded"));
4791
4836
  this.loadOnReady = url;
4792
4837
  return;
@@ -4865,11 +4910,14 @@ var StreamChatReact = (function (exports, React, streamChat) {
4865
4910
  var _this3 = this;
4866
4911
 
4867
4912
  // When seeking before player is ready, store value and seek later
4868
- if (!this.isReady && amount !== 0) {
4869
- this.seekOnPlay = amount;
4870
- setTimeout(function () {
4871
- _this3.seekOnPlay = null;
4872
- }, SEEK_ON_PLAY_EXPIRY);
4913
+ if (!this.isReady) {
4914
+ if (amount !== 0) {
4915
+ this.seekOnPlay = amount;
4916
+ setTimeout(function () {
4917
+ _this3.seekOnPlay = null;
4918
+ }, SEEK_ON_PLAY_EXPIRY);
4919
+ }
4920
+
4873
4921
  return;
4874
4922
  }
4875
4923
 
@@ -5029,7 +5077,8 @@ var StreamChatReact = (function (exports, React, streamChat) {
5029
5077
  var _this2 = this;
5030
5078
 
5031
5079
  var url = _ref.url,
5032
- light = _ref.light;
5080
+ light = _ref.light,
5081
+ oEmbedUrl = _ref.oEmbedUrl;
5033
5082
 
5034
5083
  if (typeof light === 'string') {
5035
5084
  this.setState({
@@ -5048,7 +5097,7 @@ var StreamChatReact = (function (exports, React, streamChat) {
5048
5097
  this.setState({
5049
5098
  image: null
5050
5099
  });
5051
- return window.fetch("https://noembed.com/embed?url=".concat(url)).then(function (response) {
5100
+ return window.fetch(oEmbedUrl.replace('{url}', url)).then(function (response) {
5052
5101
  return response.json();
5053
5102
  }).then(function (data) {
5054
5103
  if (data.thumbnail_url && _this2.mounted) {
@@ -5361,12 +5410,14 @@ var StreamChatReact = (function (exports, React, streamChat) {
5361
5410
  var _this$props = this.props,
5362
5411
  light = _this$props.light,
5363
5412
  playIcon = _this$props.playIcon,
5364
- previewTabIndex = _this$props.previewTabIndex;
5413
+ previewTabIndex = _this$props.previewTabIndex,
5414
+ oEmbedUrl = _this$props.oEmbedUrl;
5365
5415
  return /*#__PURE__*/_react["default"].createElement(Preview, {
5366
5416
  url: url,
5367
5417
  light: light,
5368
5418
  playIcon: playIcon,
5369
5419
  previewTabIndex: previewTabIndex,
5420
+ oEmbedUrl: oEmbedUrl,
5370
5421
  onClick: this.handleClickPreview
5371
5422
  });
5372
5423
  }
@@ -9697,21 +9748,18 @@ var StreamChatReact = (function (exports, React, streamChat) {
9697
9748
  var FilePreviewer = function (_a) {
9698
9749
  var uploads = _a.uploads, handleRemove = _a.handleRemove, handleRetry = _a.handleRetry;
9699
9750
  return (React__default['default'].createElement("div", { className: "rfu-file-previewer" },
9700
- React__default['default'].createElement("ol", null, uploads &&
9701
- uploads.map(function (upload) { return (React__default['default'].createElement("li", { key: upload.id, className: "rfu-file-previewer__file " + (upload.state === 'uploading'
9702
- ? 'rfu-file-previewer__file--uploading'
9703
- : '') + " " + (upload.state === 'failed'
9704
- ? 'rfu-file-previewer__file--failed'
9705
- : '') },
9706
- React__default['default'].createElement(FileIcon, { mimeType: upload.file.type, filename: upload.file.name }),
9707
- React__default['default'].createElement("a", { href: upload.url, download: true },
9708
- upload.file.name,
9709
- upload.state === 'failed' && (React__default['default'].createElement(React__default['default'].Fragment, null,
9710
- React__default['default'].createElement("div", { className: "rfu-file-previewer__failed", onClick: handleRetry && (function () { return handleRetry(upload.id); }) }, "failed"),
9711
- React__default['default'].createElement("div", { className: "rfu-file-previewer__retry", onClick: handleRetry && (function () { return handleRetry(upload.id); }) }, "retry")))),
9712
- React__default['default'].createElement("span", { className: "rfu-file-previewer__close-button", onClick: handleRemove && (function () { return handleRemove(upload.id); }) }, "\u2718"),
9713
- upload.state === 'uploading' && (React__default['default'].createElement("div", { className: "rfu-file-previewer__loading-indicator" },
9714
- React__default['default'].createElement(LoadingIndicator$1, null))))); }))));
9751
+ React__default['default'].createElement("ol", null, uploads === null || uploads === void 0 ? void 0 : uploads.map(function (upload) { return (React__default['default'].createElement("li", { key: upload.id, className: "rfu-file-previewer__file " + (upload.state === 'uploading'
9752
+ ? 'rfu-file-previewer__file--uploading'
9753
+ : '') + " " + (upload.state === 'failed' ? 'rfu-file-previewer__file--failed' : '') },
9754
+ React__default['default'].createElement(FileIcon, { mimeType: upload.file.type, filename: upload.file.name }),
9755
+ React__default['default'].createElement("a", { href: upload.url, download: true },
9756
+ upload.file.name,
9757
+ upload.state === 'failed' && (React__default['default'].createElement(React__default['default'].Fragment, null,
9758
+ React__default['default'].createElement("div", { className: "rfu-file-previewer__failed", onClick: function () { return handleRetry === null || handleRetry === void 0 ? void 0 : handleRetry(upload.id); } }, "failed"),
9759
+ React__default['default'].createElement("div", { className: "rfu-file-previewer__retry", onClick: function () { return handleRetry === null || handleRetry === void 0 ? void 0 : handleRetry(upload.id); } }, "retry")))),
9760
+ React__default['default'].createElement("span", { className: "rfu-file-previewer__close-button", onClick: handleRemove && (function () { return handleRemove(upload.id); }) }, "\u2718"),
9761
+ upload.state === 'uploading' && (React__default['default'].createElement("div", { className: "rfu-file-previewer__loading-indicator" },
9762
+ React__default['default'].createElement(LoadingIndicator$1, null))))); }))));
9715
9763
  };
9716
9764
 
9717
9765
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
@@ -9888,11 +9936,11 @@ var StreamChatReact = (function (exports, React, streamChat) {
9888
9936
  };
9889
9937
 
9890
9938
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};/**
9891
- * This is simply a button wrapper, add's a div with `role="button"` and a onClick
9939
+ * This is simply a button wrapper, adds a div with `role="button"` and a onClick
9892
9940
  */
9893
9941
  var IconButton = function (_a) {
9894
9942
  var onClick = _a.onClick, children = _a.children;
9895
- return (React__default['default'].createElement("button", { "aria-label": "Cancel upload", className: "rfu-icon-button", onClick: onClick }, children));
9943
+ return (React__default['default'].createElement("button", { type: "button", "data-testid": "cancel-upload-button", "aria-label": "Cancel upload", className: "rfu-icon-button", onClick: onClick }, children));
9896
9944
  };
9897
9945
 
9898
9946
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};/**
@@ -11510,13 +11558,23 @@ var StreamChatReact = (function (exports, React, streamChat) {
11510
11558
  React__default['default'].createElement("path", { d: "M0.000 200.000 L 0.000 400.000 200.000 400.000 L 400.000 400.000 400.000 200.000 L 400.000 0.000 200.000 0.000 L 0.000 0.000 0.000 200.000 M243.085 68.180 C 251.168 72.240,252.758 82.164,246.332 88.456 C 242.609 92.102,249.072 91.774,176.600 92.000 L 112.600 92.200 111.000 93.165 C 107.620 95.203,105.382 98.131,104.780 101.304 C 104.548 102.526,104.400 132.258,104.400 177.461 C 104.400 261.065,104.646 254.561,101.340 258.340 C 95.134 265.435,84.540 263.898,80.562 255.326 L 79.600 253.251 79.600 170.356 L 79.600 87.460 80.613 84.526 C 83.246 76.897,91.469 68.511,96.439 68.386 C 96.747 68.378,97.450 68.114,98.000 67.800 C 98.856 67.311,109.214 67.226,170.067 67.214 L 241.134 67.200 243.085 68.180 M230.400 116.002 C 236.845 117.273,237.603 117.566,242.024 120.500 C 243.269 121.327,256.977 134.788,274.002 151.902 C 299.664 177.700,305.143 183.306,307.142 185.815 C 307.838 186.688,309.600 190.497,309.602 191.133 C 309.604 191.500,309.919 192.340,310.302 193.000 C 310.956 194.125,311.007 197.998,311.108 254.600 L 311.215 315.000 310.241 318.000 C 307.327 326.967,302.400 332.072,293.800 335.031 L 291.000 335.994 219.630 335.997 L 148.260 336.000 145.430 335.018 C 140.319 333.244,139.684 332.841,134.862 328.318 C 132.616 326.212,129.907 321.565,129.427 318.997 C 129.263 318.118,128.920 317.147,128.664 316.839 C 128.315 316.416,128.200 294.170,128.200 227.039 L 128.200 137.800 129.067 134.600 C 129.543 132.840,130.393 130.590,130.954 129.600 C 131.515 128.610,132.247 127.320,132.580 126.733 C 134.155 123.961,138.478 120.313,143.000 117.940 C 144.003 117.414,146.644 116.725,151.000 115.853 C 152.661 115.520,228.681 115.664,230.400 116.002 M226.250 137.650 C 225.849 139.656,225.987 187.508,226.403 190.713 C 227.174 196.647,230.700 200.107,237.136 201.245 C 239.519 201.666,290.972 201.562,291.398 201.135 C 291.727 200.807,227.629 136.400,226.974 136.400 C 226.713 136.400,226.388 136.963,226.250 137.650", stroke: "none", fill: "#fcfcfc", fillRule: "evenodd" }),
11511
11559
  React__default['default'].createElement("path", { d: "M98.000 67.800 C 97.450 68.114,96.747 68.378,96.439 68.386 C 91.469 68.511,83.246 76.897,80.613 84.526 L 79.600 87.460 79.600 170.356 L 79.600 253.251 80.562 255.326 C 84.540 263.898,95.134 265.435,101.340 258.340 C 104.646 254.561,104.400 261.065,104.400 177.461 C 104.400 132.258,104.548 102.526,104.780 101.304 C 105.382 98.131,107.620 95.203,111.000 93.165 L 112.600 92.200 176.600 92.000 C 249.072 91.774,242.609 92.102,246.332 88.456 C 252.758 82.164,251.168 72.240,243.085 68.180 L 241.134 67.200 170.067 67.214 C 109.214 67.226,98.856 67.311,98.000 67.800 M151.000 115.853 C 146.644 116.725,144.003 117.414,143.000 117.940 C 138.478 120.313,134.155 123.961,132.580 126.733 C 132.247 127.320,131.515 128.610,130.954 129.600 C 130.393 130.590,129.543 132.840,129.067 134.600 L 128.200 137.800 128.200 227.039 C 128.200 294.170,128.315 316.416,128.664 316.839 C 128.920 317.147,129.263 318.118,129.427 318.997 C 129.907 321.565,132.616 326.212,134.862 328.318 C 139.684 332.841,140.319 333.244,145.430 335.018 L 148.260 336.000 219.630 335.997 L 291.000 335.994 293.800 335.031 C 302.400 332.072,307.327 326.967,310.241 318.000 L 311.215 315.000 311.108 254.600 C 311.007 197.998,310.956 194.125,310.302 193.000 C 309.919 192.340,309.604 191.500,309.602 191.133 C 309.600 190.497,307.838 186.688,307.142 185.815 C 305.143 183.306,299.664 177.700,274.002 151.902 C 238.906 116.622,240.594 118.012,230.400 116.002 C 228.681 115.664,152.661 115.520,151.000 115.853 M259.556 168.635 C 277.215 186.364,291.544 200.989,291.398 201.135 C 290.972 201.562,239.519 201.666,237.136 201.245 C 230.700 200.107,227.174 196.647,226.403 190.713 C 225.460 183.450,225.955 136.400,226.974 136.400 C 227.235 136.400,241.897 150.906,259.556 168.635", stroke: "none", fill: "#e4e4e4", fillRule: "evenodd" })))); };
11512
11560
 
11513
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var svg = '<svg width="28" height="28" viewBox="0 0 28 28" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path d="M465 5c5.53 0 10 4.47 10 10s-4.47 10-10 10-10-4.47-10-10 4.47-10 10-10zm3.59 5L465 13.59 461.41 10 460 11.41l3.59 3.59-3.59 3.59 1.41 1.41 3.59-3.59 3.59 3.59 1.41-1.41-3.59-3.59 3.59-3.59-1.41-1.41z" id="b"/><filter x="-30%" y="-30%" width="160%" height="160%" filterUnits="objectBoundingBox" id="a"><feOffset in="SourceAlpha" result="shadowOffsetOuter1"/><feGaussianBlur stdDeviation="2" in="shadowOffsetOuter1" result="shadowBlurOuter1"/><feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0" in="shadowBlurOuter1"/></filter></defs><g transform="translate(-451 -1)" fill-rule="nonzero" fill="none"><use fill="#000" filter="url(#a)" xlink:href="#b"/><use fill="#FFF" fill-rule="evenodd" xlink:href="#b"/></g></svg>';
11514
- var Thumbnail = function (_a) {
11515
- var id = _a.id, image = _a.image, _b = _a.size, size = _b === void 0 ? 100 : _b, handleClose = _a.handleClose, alt = _a.alt;
11516
- var onClose = React.useCallback(function () { return handleClose === null || handleClose === void 0 ? void 0 : handleClose(id); }, [id, handleClose]);
11561
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var CloseIcon = function () { return (React__default['default'].createElement("svg", { width: "28", height: "28", viewBox: "0 0 28 28", xmlns: "http://www.w3.org/2000/svg", xmlnsXlink: "http://www.w3.org/1999/xlink" },
11562
+ React__default['default'].createElement("defs", null,
11563
+ React__default['default'].createElement("path", { d: "M465 5c5.53 0 10 4.47 10 10s-4.47 10-10 10-10-4.47-10-10 4.47-10 10-10zm3.59 5L465 13.59 461.41 10 460 11.41l3.59 3.59-3.59 3.59 1.41 1.41 3.59-3.59 3.59 3.59 1.41-1.41-3.59-3.59 3.59-3.59-1.41-1.41z", id: "b" }),
11564
+ React__default['default'].createElement("filter", { x: "-30%", y: "-30%", width: "160%", height: "160%", filterUnits: "objectBoundingBox", id: "a" },
11565
+ React__default['default'].createElement("feOffset", { in: "SourceAlpha", result: "shadowOffsetOuter1" }),
11566
+ React__default['default'].createElement("feGaussianBlur", { stdDeviation: "2", in: "shadowOffsetOuter1", result: "shadowBlurOuter1" }),
11567
+ React__default['default'].createElement("feColorMatrix", { values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0", in: "shadowBlurOuter1" }))),
11568
+ React__default['default'].createElement("g", { transform: "translate(-451 -1)", fillRule: "nonzero", fill: "none" },
11569
+ React__default['default'].createElement("use", { fill: "#000", filter: "url(#a)", xlinkHref: "#b" }),
11570
+ React__default['default'].createElement("use", { fill: "#FFF", fillRule: "evenodd", xlinkHref: "#b" })))); };
11571
+
11572
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var Thumbnail = function (_a) {
11573
+ var image = _a.image, _b = _a.size, size = _b === void 0 ? 100 : _b, handleClose = _a.handleClose, alt = _a.alt;
11574
+ var onClose = React.useCallback(function (event) { return handleClose === null || handleClose === void 0 ? void 0 : handleClose(event); }, [handleClose]);
11517
11575
  return (React__default['default'].createElement("div", { className: "rfu-thumbnail__wrapper", style: { width: size, height: size } },
11518
11576
  React__default['default'].createElement("div", { className: "rfu-thumbnail__overlay" }, handleClose ? (React__default['default'].createElement(IconButton, { onClick: onClose },
11519
- React__default['default'].createElement("div", { dangerouslySetInnerHTML: { __html: svg } }))) : null),
11577
+ React__default['default'].createElement(CloseIcon, null))) : null),
11520
11578
  image ? (React__default['default'].createElement("img", { src: image, className: "rfu-thumbnail__image", alt: alt !== null && alt !== void 0 ? alt : '' })) : (React__default['default'].createElement(FilePlaceholder, { preserveAspectRatio: "xMinYMin slice", className: "rfu-thumbnail__image" }))));
11521
11579
  };
11522
11580
 
@@ -11543,16 +11601,15 @@ var StreamChatReact = (function (exports, React, streamChat) {
11543
11601
  React__default['default'].createElement("path", { d: "M14 8.998H8v6H6v-6H0v-2h6v-6h2v6h6z", fill: "#A0B2B8", fillRule: "nonzero" })))));
11544
11602
  };
11545
11603
 
11604
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var RetryIcon = function () { return (React__default['default'].createElement("svg", { width: "22", height: "20", viewBox: "0 0 22 20", xmlns: "http://www.w3.org/2000/svg" },
11605
+ React__default['default'].createElement("path", { d: "M20 5.535V2a1 1 0 0 1 2 0v6a1 1 0 0 1-1 1h-6a1 1 0 0 1 0-2h3.638l-2.975-2.653a8 8 0 1 0 1.884 8.32 1 1 0 1 1 1.886.666A10 10 0 1 1 5.175 1.245c3.901-2.15 8.754-1.462 11.88 1.667L20 5.535z", fill: "#FFF", fillRule: "nonzero" }))); };
11606
+
11546
11607
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var ImagePreviewer = function (_a) {
11547
11608
  var _b = _a.multiple, multiple = _b === void 0 ? true : _b, _c = _a.disabled, disabled = _c === void 0 ? false : _c, imageUploads = _a.imageUploads, handleRemove = _a.handleRemove, handleRetry = _a.handleRetry, handleFiles = _a.handleFiles;
11548
- var onClose = React.useCallback(function (id) {
11549
- if (handleRemove) {
11550
- if (id == null) {
11551
- console.warn("id of closed image was undefined, this shouldn't happen");
11552
- return;
11553
- }
11554
- handleRemove(id);
11555
- }
11609
+ var onClose = React.useCallback(function (id, event) {
11610
+ if (!id)
11611
+ return console.warn("image.id of closed image was \"null\", this shouldn't happen");
11612
+ handleRemove === null || handleRemove === void 0 ? void 0 : handleRemove(id, event);
11556
11613
  }, [handleRemove]);
11557
11614
  return (React__default['default'].createElement("div", { className: "rfu-image-previewer" }, imageUploads === null || imageUploads === void 0 ? void 0 :
11558
11615
  imageUploads.map(function (image) {
@@ -11560,11 +11617,10 @@ var StreamChatReact = (function (exports, React, streamChat) {
11560
11617
  return (React__default['default'].createElement("div", { key: image.id, className: "rfu-image-previewer__image" + (image.state === 'finished'
11561
11618
  ? ' rfu-image-previewer__image--loaded'
11562
11619
  : '') },
11563
- image.state === 'failed' && (React__default['default'].createElement("button", { "aria-label": "Retry upload", className: "rfu-image-previewer__retry", dangerouslySetInnerHTML: {
11564
- __html: '<svg width="22" height="20" viewBox="0 0 22 20" xmlns="http://www.w3.org/2000/svg"><path d="M20 5.535V2a1 1 0 0 1 2 0v6a1 1 0 0 1-1 1h-6a1 1 0 0 1 0-2h3.638l-2.975-2.653a8 8 0 1 0 1.884 8.32 1 1 0 1 1 1.886.666A10 10 0 1 1 5.175 1.245c3.901-2.15 8.754-1.462 11.88 1.667L20 5.535z" fill="#FFF" fill-rule="nonzero"/></svg>',
11565
- }, onClick: handleRetry && (function () { return handleRetry(image.id); }) })),
11566
- url !== undefined && (React__default['default'].createElement(Thumbnail, { handleClose: onClose, image: url, id: image.id })),
11567
- image.state === 'uploading' && (React__default['default'].createElement(LoadingIndicator$1, { backgroundColor: "rgba(255,255,255,0.1)", color: "rgba(255,255,255,0.7)" }))));
11620
+ image.state === 'failed' && (React__default['default'].createElement("button", { type: "button", "aria-label": "Retry upload", className: "rfu-image-previewer__retry", onClick: function (event) { return handleRetry === null || handleRetry === void 0 ? void 0 : handleRetry(image.id, event); } },
11621
+ React__default['default'].createElement(RetryIcon, null))),
11622
+ url && (React__default['default'].createElement(Thumbnail, { handleClose: function (event) { return onClose(image.id, event); }, image: url })),
11623
+ image.state === 'uploading' && (React__default['default'].createElement(LoadingIndicator$1, { backgroundColor: "#ffffff19", color: "#ffffffb2" }))));
11568
11624
  }),
11569
11625
  handleFiles && !disabled && (React__default['default'].createElement(ThumbnailPlaceholder, { handleFiles: handleFiles, multiple: multiple }))));
11570
11626
  };
@@ -11614,6 +11670,8 @@ var StreamChatReact = (function (exports, React, streamChat) {
11614
11670
  return function () { return document.removeEventListener('keydown', handleEscKey); };
11615
11671
  }, [onClose, open]);
11616
11672
  var openClasses = open ? 'str-chat__modal--open' : 'str-chat__modal--closed';
11673
+ if (!open)
11674
+ return null;
11617
11675
  return (React__default['default'].createElement("div", { className: "str-chat__modal " + openClasses, onClick: handleClick },
11618
11676
  React__default['default'].createElement("button", { className: 'str-chat__modal__close-button', ref: closeRef, title: 'Close' },
11619
11677
  t('Close'),
@@ -42150,11 +42208,7 @@ var StreamChatReact = (function (exports, React, streamChat) {
42150
42208
  React__default['default'].createElement("span", { className: 'str-chat__input-fileupload' },
42151
42209
  React__default['default'].createElement(FileUploadIcon$1, null)))))),
42152
42210
  React__default['default'].createElement("div", null,
42153
- React__default['default'].createElement("button", { onClick: function () {
42154
- if (clearEditingState) {
42155
- clearEditingState();
42156
- }
42157
- } }, t('Cancel')),
42211
+ React__default['default'].createElement("button", { onClick: clearEditingState }, t('Cancel')),
42158
42212
  React__default['default'].createElement("button", { type: 'submit' }, t('Send'))))))));
42159
42213
  };
42160
42214
 
@@ -45081,7 +45135,7 @@ var StreamChatReact = (function (exports, React, streamChat) {
45081
45135
 
45082
45136
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
45083
45137
 
45084
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var version = '9.1.0';
45138
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var version = '9.1.3';
45085
45139
 
45086
45140
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useChat = function (_a) {
45087
45141
  var _b, _c;
@@ -45405,10 +45459,7 @@ var StreamChatReact = (function (exports, React, streamChat) {
45405
45459
  var attributes = __assign$2(__assign$2({}, elementProps), { ref: function (element) {
45406
45460
  scrollComponent.current = element;
45407
45461
  } });
45408
- var childrenArray = [children];
45409
- if (isLoading && loader) {
45410
- childrenArray.unshift(loader);
45411
- }
45462
+ var childrenArray = [loader, children];
45412
45463
  return React__default['default'].createElement(element, attributes, childrenArray);
45413
45464
  };
45414
45465
 
@@ -46702,7 +46753,8 @@ var StreamChatReact = (function (exports, React, streamChat) {
46702
46753
  };
46703
46754
  }
46704
46755
 
46705
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var ResizeObserver$1 = window.ResizeObserver || ResizeObserver$2;
46756
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var isBrowser = typeof window !== 'undefined';
46757
+ var ResizeObserver$1 = (isBrowser && window.ResizeObserver) || ResizeObserver$2;
46706
46758
  var useScrollLocationLogic = function (params) {
46707
46759
  var _a = params.messages, messages = _a === void 0 ? [] : _a, _b = params.scrolledUpThreshold, scrolledUpThreshold = _b === void 0 ? 200 : _b, hasMoreNewer = params.hasMoreNewer, suppressAutoscroll = params.suppressAutoscroll, listElement = params.listElement, ulElement = params.ulElement;
46708
46760
  var _c = React.useState(false), hasNewMessages = _c[0], setHasNewMessages = _c[1];
@@ -46793,12 +46845,6 @@ var StreamChatReact = (function (exports, React, streamChat) {
46793
46845
  };
46794
46846
  };
46795
46847
 
46796
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var UnMemoizedCenter = function (_a) {
46797
- var children = _a.children;
46798
- return (React__default['default'].createElement("div", { className: 'str-chat__list__center' }, children));
46799
- };
46800
- var Center = React__default['default'].memo(UnMemoizedCenter);
46801
-
46802
46848
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var UnMemoizedMessageNotification = function (props) {
46803
46849
  var children = props.children, onClick = props.onClick, _a = props.showNotification, showNotification = _a === void 0 ? true : _a;
46804
46850
  if (!showNotification)
@@ -46955,8 +47001,7 @@ var StreamChatReact = (function (exports, React, streamChat) {
46955
47001
  }
46956
47002
  }, [highlightedMessageId]);
46957
47003
  return (React__default['default'].createElement(React__default['default'].Fragment, null,
46958
- React__default['default'].createElement("div", { className: messageListClass + " " + threadListClass, onScroll: onScroll, ref: setListElement, tabIndex: 0 }, !elements.length ? (React__default['default'].createElement(EmptyStateIndicator$1, { listType: 'message' })) : (React__default['default'].createElement(InfiniteScroll, __assign$2({ className: 'str-chat__reverse-infinite-scroll', "data-testid": 'reverse-infinite-scroll', hasMore: props.hasMore, hasMoreNewer: props.hasMoreNewer, isLoading: props.loadingMore, loader: React__default['default'].createElement(Center, { key: 'loadingindicator' },
46959
- React__default['default'].createElement(LoadingIndicator$1, { size: 20 })), loadMore: loadMore, loadMoreNewer: loadMoreNewer }, props.internalInfiniteScrollProps),
47004
+ React__default['default'].createElement("div", { className: messageListClass + " " + threadListClass, onScroll: onScroll, ref: setListElement, tabIndex: 0 }, !elements.length ? (React__default['default'].createElement(EmptyStateIndicator$1, { listType: 'message' })) : (React__default['default'].createElement(InfiniteScroll, __assign$2({ className: 'str-chat__reverse-infinite-scroll', "data-testid": 'reverse-infinite-scroll', hasMore: props.hasMore, hasMoreNewer: props.hasMoreNewer, isLoading: props.loadingMore, loader: React__default['default'].createElement("div", { className: 'str-chat__list__loading', key: 'loadingindicator' }, props.loadingMore && React__default['default'].createElement(LoadingIndicator$1, { size: 20 })), loadMore: loadMore, loadMoreNewer: loadMoreNewer }, props.internalInfiniteScrollProps),
46960
47005
  React__default['default'].createElement("ul", { className: 'str-chat__ul', ref: setUlElement }, elements),
46961
47006
  React__default['default'].createElement(TypingIndicator$1, { threadList: threadList }),
46962
47007
  React__default['default'].createElement("div", { key: 'bottom' })))),
@@ -48241,9 +48286,10 @@ var StreamChatReact = (function (exports, React, streamChat) {
48241
48286
  return { atBottom: atBottom, newMessagesNotification: newMessagesNotification, setNewMessagesNotification: setNewMessagesNotification };
48242
48287
  }
48243
48288
 
48244
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};function usePrependedMessagesCount(messages) {
48289
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};function usePrependedMessagesCount(messages, hasDateSeparator) {
48245
48290
  var _a;
48246
- var currentFirstMessageId = (_a = messages === null || messages === void 0 ? void 0 : messages[0]) === null || _a === void 0 ? void 0 : _a.id;
48291
+ var firstRealMessageIndex = hasDateSeparator ? 1 : 0;
48292
+ var currentFirstMessageId = (_a = messages === null || messages === void 0 ? void 0 : messages[firstRealMessageIndex]) === null || _a === void 0 ? void 0 : _a.id;
48247
48293
  var firstMessageId = React.useRef(currentFirstMessageId);
48248
48294
  var earliestMessageId = React.useRef(currentFirstMessageId);
48249
48295
  var previousNumItemsPrepended = React.useRef(0);
@@ -48423,7 +48469,7 @@ var StreamChatReact = (function (exports, React, streamChat) {
48423
48469
  window.removeEventListener('blur', resetNewMessagesReceivedInBackground);
48424
48470
  };
48425
48471
  }, [scrollToBottomIfConfigured]);
48426
- var numItemsPrepended = usePrependedMessagesCount(processedMessages);
48472
+ var numItemsPrepended = usePrependedMessagesCount(processedMessages, !disableDateSeparator);
48427
48473
  /**
48428
48474
  * Logic to update the key of the virtuoso component when the list jumps to a new location.
48429
48475
  */
@@ -48431,7 +48477,7 @@ var StreamChatReact = (function (exports, React, streamChat) {
48431
48477
  var firstMessageId = React.useRef();
48432
48478
  React.useEffect(function () {
48433
48479
  var _a;
48434
- var continuousSet = messages && messages.find(function (message) { return message.id === firstMessageId.current; });
48480
+ var continuousSet = messages === null || messages === void 0 ? void 0 : messages.find(function (message) { return message.id === firstMessageId.current; });
48435
48481
  if (!continuousSet) {
48436
48482
  setMessageSetKey(+new Date());
48437
48483
  }