stream-chat-react 11.22.0 → 11.23.0

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 (30) hide show
  1. package/dist/{Window-b4032c33.js → Window-a963f22a.js} +66 -19
  2. package/dist/browser.full-bundle.js +204 -155
  3. package/dist/browser.full-bundle.js.map +1 -1
  4. package/dist/browser.full-bundle.min.js +3 -3
  5. package/dist/browser.full-bundle.min.js.map +1 -1
  6. package/dist/components/Attachment/components/WaveProgressBar.d.ts +3 -1
  7. package/dist/components/Attachment/components/WaveProgressBar.d.ts.map +1 -1
  8. package/dist/components/Attachment/components/WaveProgressBar.js +48 -10
  9. package/dist/components/Channel/channelState.d.ts.map +1 -1
  10. package/dist/components/Channel/channelState.js +1 -1
  11. package/dist/components/Emojis/index.cjs.js +2 -2
  12. package/dist/components/Message/Timestamp.js +1 -1
  13. package/dist/components/MessageList/MessageList.d.ts +3 -1
  14. package/dist/components/MessageList/MessageList.d.ts.map +1 -1
  15. package/dist/components/MessageList/MessageList.js +2 -1
  16. package/dist/components/MessageList/VirtualizedMessageList.d.ts +3 -1
  17. package/dist/components/MessageList/VirtualizedMessageList.d.ts.map +1 -1
  18. package/dist/components/MessageList/VirtualizedMessageList.js +3 -3
  19. package/dist/components/MessageList/VirtualizedMessageListComponents.d.ts.map +1 -1
  20. package/dist/components/MessageList/VirtualizedMessageListComponents.js +4 -3
  21. package/dist/components/MessageList/hooks/MessageList/useEnrichedMessages.d.ts +2 -1
  22. package/dist/components/MessageList/hooks/MessageList/useEnrichedMessages.d.ts.map +1 -1
  23. package/dist/components/MessageList/hooks/MessageList/useEnrichedMessages.js +3 -3
  24. package/dist/components/MessageList/utils.d.ts +1 -1
  25. package/dist/components/MessageList/utils.d.ts.map +1 -1
  26. package/dist/components/MessageList/utils.js +16 -6
  27. package/dist/index.cjs.js +14 -12
  28. package/dist/version.d.ts +1 -1
  29. package/dist/version.js +1 -1
  30. package/package.json +1 -1
@@ -12,10 +12,10 @@ var utc = require('dayjs/plugin/utc');
12
12
  var timezone = require('dayjs/plugin/timezone');
13
13
  var ReactPlayer = require('react-player');
14
14
  var sanitizeUrl = require('@braintree/sanitize-url');
15
+ var throttle = require('lodash.throttle');
15
16
  var PropTypes = require('prop-types');
16
17
  var ImageGallery = require('react-image-gallery');
17
18
  var linkify = require('linkifyjs');
18
- var throttle = require('lodash.throttle');
19
19
  var emojiRegex = require('emoji-regex');
20
20
  var uniqBy = require('lodash.uniqby');
21
21
  var _extends = require('@babel/runtime/helpers/extends');
@@ -75,10 +75,10 @@ var relativeTime__default = /*#__PURE__*/_interopDefaultLegacy(relativeTime);
75
75
  var utc__default = /*#__PURE__*/_interopDefaultLegacy(utc);
76
76
  var timezone__default = /*#__PURE__*/_interopDefaultLegacy(timezone);
77
77
  var ReactPlayer__default = /*#__PURE__*/_interopDefaultLegacy(ReactPlayer);
78
+ var throttle__default = /*#__PURE__*/_interopDefaultLegacy(throttle);
78
79
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
79
80
  var ImageGallery__default = /*#__PURE__*/_interopDefaultLegacy(ImageGallery);
80
81
  var linkify__namespace = /*#__PURE__*/_interopNamespace(linkify);
81
- var throttle__default = /*#__PURE__*/_interopDefaultLegacy(throttle);
82
82
  var emojiRegex__default = /*#__PURE__*/_interopDefaultLegacy(emojiRegex);
83
83
  var uniqBy__default = /*#__PURE__*/_interopDefaultLegacy(uniqBy);
84
84
  var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
@@ -1537,10 +1537,12 @@ var upSample = function (values, targetSize) {
1537
1537
  };
1538
1538
 
1539
1539
  var WaveProgressBar = function (_a) {
1540
- var _b = _a.amplitudesCount, amplitudesCount = _b === void 0 ? 40 : _b, _c = _a.progress, progress = _c === void 0 ? 0 : _c, seek = _a.seek, waveformData = _a.waveformData;
1541
- var _d = React.useState(null), progressIndicator = _d[0], setProgressIndicator = _d[1];
1540
+ var _b = _a.amplitudesCount, amplitudesCount = _b === void 0 ? 40 : _b, _c = _a.progress, progress = _c === void 0 ? 0 : _c, _d = _a.relativeAmplitudeBarWidth, relativeAmplitudeBarWidth = _d === void 0 ? 2 : _d, _e = _a.relativeAmplitudeGap, relativeAmplitudeGap = _e === void 0 ? 1 : _e, seek = _a.seek, waveformData = _a.waveformData;
1541
+ var _f = React.useState(null), progressIndicator = _f[0], setProgressIndicator = _f[1];
1542
1542
  var isDragging = React.useRef(false);
1543
- var rootRef = React.useRef(null);
1543
+ var _g = React.useState(null), root = _g[0], setRoot = _g[1];
1544
+ var _h = React.useState(), trackAxisX = _h[0], setTrackAxisX = _h[1];
1545
+ var lastRootWidth = React.useRef();
1544
1546
  var handleDragStart = function (e) {
1545
1547
  e.preventDefault();
1546
1548
  if (!progressIndicator)
@@ -1561,24 +1563,59 @@ var WaveProgressBar = function (_a) {
1561
1563
  isDragging.current = false;
1562
1564
  progressIndicator.style.removeProperty('cursor');
1563
1565
  }, [progressIndicator]);
1564
- var resampledWaveformData = React.useMemo(function () { return resampleWaveformData(waveformData, amplitudesCount); }, [
1565
- amplitudesCount,
1566
- waveformData,
1567
- ]);
1566
+ var getTrackAxisX = React.useMemo(function () {
1567
+ return throttle__default["default"](function (rootWidth) {
1568
+ if (rootWidth === lastRootWidth.current)
1569
+ return;
1570
+ lastRootWidth.current = rootWidth;
1571
+ var possibleAmpCount = Math.floor(rootWidth / (relativeAmplitudeGap + relativeAmplitudeBarWidth));
1572
+ var tooManyAmplitudesToRender = possibleAmpCount < amplitudesCount;
1573
+ var barCount = tooManyAmplitudesToRender ? possibleAmpCount : amplitudesCount;
1574
+ var amplitudeBarWidthToGapRatio = relativeAmplitudeBarWidth / (relativeAmplitudeBarWidth + relativeAmplitudeGap);
1575
+ var barWidth = barCount && (rootWidth / barCount) * amplitudeBarWidthToGapRatio;
1576
+ setTrackAxisX({
1577
+ barCount: barCount,
1578
+ barWidth: barWidth,
1579
+ gap: barWidth * (relativeAmplitudeGap / relativeAmplitudeBarWidth),
1580
+ });
1581
+ }, 1);
1582
+ }, [relativeAmplitudeBarWidth, relativeAmplitudeGap, amplitudesCount]);
1583
+ var resampledWaveformData = React.useMemo(function () { return (trackAxisX ? resampleWaveformData(waveformData, trackAxisX.barCount) : []); }, [trackAxisX, waveformData]);
1568
1584
  React.useEffect(function () {
1569
1585
  document.addEventListener('pointerup', handleDragStop);
1570
1586
  return function () {
1571
1587
  document.removeEventListener('pointerup', handleDragStop);
1572
1588
  };
1573
1589
  }, [handleDragStop]);
1574
- if (!waveformData.length)
1590
+ React.useEffect(function () {
1591
+ if (!root || typeof ResizeObserver === 'undefined')
1592
+ return;
1593
+ var observer = new ResizeObserver(function (_a) {
1594
+ var entry = _a[0];
1595
+ getTrackAxisX(entry.contentRect.width);
1596
+ });
1597
+ observer.observe(root);
1598
+ return function () {
1599
+ observer.disconnect();
1600
+ };
1601
+ }, [getTrackAxisX, root]);
1602
+ React.useLayoutEffect(function () {
1603
+ if (!root)
1604
+ return;
1605
+ var rootWidth = root.getBoundingClientRect().width;
1606
+ getTrackAxisX(rootWidth);
1607
+ }, [getTrackAxisX, root]);
1608
+ if (!waveformData.length || (trackAxisX === null || trackAxisX === void 0 ? void 0 : trackAxisX.barCount) === 0)
1575
1609
  return null;
1576
- return (React__default["default"].createElement("div", { className: 'str-chat__wave-progress-bar__track', "data-testid": 'wave-progress-bar-track', onClick: seek, onPointerDown: handleDragStart, onPointerMove: handleDrag, onPointerUp: handleDragStop, ref: rootRef, role: 'progressbar' },
1610
+ return (React__default["default"].createElement("div", { className: 'str-chat__wave-progress-bar__track', "data-testid": 'wave-progress-bar-track', onClick: seek, onPointerDown: handleDragStart, onPointerMove: handleDrag, onPointerUp: handleDragStop, ref: setRoot, role: 'progressbar', style: {
1611
+ '--str-chat__voice-recording-amplitude-bar-gap-width': (trackAxisX === null || trackAxisX === void 0 ? void 0 : trackAxisX.gap) + 'px',
1612
+ } },
1577
1613
  resampledWaveformData.map(function (amplitude, i) {
1578
1614
  var _a;
1579
1615
  return (React__default["default"].createElement("div", { className: clsx('str-chat__wave-progress-bar__amplitude-bar', (_a = {},
1580
1616
  _a['str-chat__wave-progress-bar__amplitude-bar--active'] = progress > (i / resampledWaveformData.length) * 100,
1581
1617
  _a)), "data-testid": 'amplitude-bar', key: "amplitude-".concat(i), style: {
1618
+ '--str-chat__voice-recording-amplitude-bar-width': (trackAxisX === null || trackAxisX === void 0 ? void 0 : trackAxisX.barWidth) + 'px',
1582
1619
  '--str-chat__wave-progress-bar__amplitude-bar-height': amplitude
1583
1620
  ? amplitude * 100 + '%'
1584
1621
  : '0%',
@@ -36308,7 +36345,7 @@ var channelReducer = function (state, action) {
36308
36345
  }
36309
36346
  case 'openThread': {
36310
36347
  var channel = action.channel, message = action.message;
36311
- return exports.__assign(exports.__assign({}, state), { thread: message, threadMessages: message.id ? exports.__assign({}, channel.state.threads)[message.id] || [] : [], threadSuppressAutoscroll: false });
36348
+ return exports.__assign(exports.__assign({}, state), { thread: message, threadHasMore: true, threadMessages: message.id ? exports.__assign({}, channel.state.threads)[message.id] || [] : [], threadSuppressAutoscroll: false });
36312
36349
  }
36313
36350
  case 'setError': {
36314
36351
  var error = action.error;
@@ -39320,7 +39357,7 @@ function Timestamp(props) {
39320
39357
  messageCreatedAt: normalizedTimestamp,
39321
39358
  t: t,
39322
39359
  tDateTimeParser: tDateTimeParser,
39323
- timestampTranslationKey: 'timestamp/Timestamp',
39360
+ timestampTranslationKey: 'timestamp/MessageTimestamp',
39324
39361
  });
39325
39362
  }, [calendar, calendarFormats, format, formatDate, normalizedTimestamp, t, tDateTimeParser]);
39326
39363
  if (!when) {
@@ -46448,7 +46485,7 @@ var insertIntro = function (messages, headerPosition) {
46448
46485
  }
46449
46486
  return newMessages;
46450
46487
  };
46451
- var getGroupStyles = function (message, previousMessage, nextMessage, noGroupByUser) {
46488
+ var getGroupStyles = function (message, previousMessage, nextMessage, noGroupByUser, maxTimeBetweenGroupedMessages) {
46452
46489
  var _a, _b, _c, _d, _e, _f, _g;
46453
46490
  if (message.customType === CUSTOM_MESSAGE_TYPE.date)
46454
46491
  return '';
@@ -46460,22 +46497,32 @@ var getGroupStyles = function (message, previousMessage, nextMessage, noGroupByU
46460
46497
  previousMessage.customType === CUSTOM_MESSAGE_TYPE.intro ||
46461
46498
  previousMessage.customType === CUSTOM_MESSAGE_TYPE.date ||
46462
46499
  previousMessage.type === 'system' ||
46500
+ previousMessage.type === 'error' ||
46463
46501
  ((_b = previousMessage.attachments) === null || _b === void 0 ? void 0 : _b.length) !== 0 ||
46464
46502
  ((_c = message.user) === null || _c === void 0 ? void 0 : _c.id) !== ((_d = previousMessage.user) === null || _d === void 0 ? void 0 : _d.id) ||
46465
- previousMessage.type === 'error' ||
46466
46503
  previousMessage.deleted_at ||
46467
46504
  (message.reaction_groups && Object.keys(message.reaction_groups).length > 0) ||
46468
- isMessageEdited(previousMessage);
46505
+ isMessageEdited(previousMessage) ||
46506
+ (maxTimeBetweenGroupedMessages !== undefined &&
46507
+ previousMessage.created_at &&
46508
+ message.created_at &&
46509
+ new Date(message.created_at).getTime() - new Date(previousMessage.created_at).getTime() >
46510
+ maxTimeBetweenGroupedMessages);
46469
46511
  var isBottomMessage = !nextMessage ||
46512
+ nextMessage.customType === CUSTOM_MESSAGE_TYPE.intro ||
46470
46513
  nextMessage.customType === CUSTOM_MESSAGE_TYPE.date ||
46471
46514
  nextMessage.type === 'system' ||
46472
- nextMessage.customType === CUSTOM_MESSAGE_TYPE.intro ||
46515
+ nextMessage.type === 'error' ||
46473
46516
  ((_e = nextMessage.attachments) === null || _e === void 0 ? void 0 : _e.length) !== 0 ||
46474
46517
  ((_f = message.user) === null || _f === void 0 ? void 0 : _f.id) !== ((_g = nextMessage.user) === null || _g === void 0 ? void 0 : _g.id) ||
46475
- nextMessage.type === 'error' ||
46476
46518
  nextMessage.deleted_at ||
46477
46519
  (nextMessage.reaction_groups && Object.keys(nextMessage.reaction_groups).length > 0) ||
46478
- isMessageEdited(message);
46520
+ isMessageEdited(message) ||
46521
+ (maxTimeBetweenGroupedMessages !== undefined &&
46522
+ nextMessage.created_at &&
46523
+ message.created_at &&
46524
+ new Date(nextMessage.created_at).getTime() - new Date(message.created_at).getTime() >
46525
+ maxTimeBetweenGroupedMessages);
46479
46526
  if (!isTopMessage && !isBottomMessage) {
46480
46527
  if (message.deleted_at || message.type === 'error')
46481
46528
  return 'single';