stream-chat-react 8.1.1 → 8.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 (58) hide show
  1. package/dist/browser.full-bundle.js +86 -96
  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/Channel/hooks/useCreateChannelStateContext.js +2 -2
  6. package/dist/components/ChannelPreview/ChannelPreview.d.ts.map +1 -1
  7. package/dist/components/ChannelPreview/ChannelPreview.js +20 -4
  8. package/dist/components/ChatDown/ChatDown.d.ts +5 -5
  9. package/dist/components/ChatDown/ChatDown.d.ts.map +1 -1
  10. package/dist/components/ChatDown/ChatDown.js +4 -4
  11. package/dist/components/ChatDown/icons.d.ts +2 -0
  12. package/dist/components/ChatDown/icons.d.ts.map +1 -0
  13. package/dist/components/ChatDown/icons.js +7 -0
  14. package/dist/components/Gallery/Gallery.d.ts.map +1 -1
  15. package/dist/components/Gallery/Gallery.js +11 -8
  16. package/dist/components/Message/utils.d.ts.map +1 -1
  17. package/dist/components/Message/utils.js +5 -10
  18. package/dist/components/MessageInput/MessageInput.d.ts +2 -1
  19. package/dist/components/MessageInput/MessageInput.d.ts.map +1 -1
  20. package/dist/components/MessageInput/hooks/useSubmitHandler.d.ts.map +1 -1
  21. package/dist/components/MessageInput/hooks/useSubmitHandler.js +17 -15
  22. package/dist/components/Thread/Thread.js +50 -10
  23. package/dist/index.cjs.js +79 -54
  24. package/dist/index.cjs.js.map +1 -1
  25. package/dist/stories/{connected-user.stories.d.ts → add-message.stories.d.ts} +1 -1
  26. package/dist/stories/add-message.stories.d.ts.map +1 -0
  27. package/dist/stories/{connected-user.stories.js → add-message.stories.js} +6 -7
  28. package/dist/stories/hello.stories.d.ts.map +1 -1
  29. package/dist/stories/hello.stories.js +11 -35
  30. package/dist/stories/jump-to-message.stories.d.ts +2 -2
  31. package/dist/stories/jump-to-message.stories.d.ts.map +1 -1
  32. package/dist/stories/jump-to-message.stories.js +18 -51
  33. package/dist/stories/mark-read.stories.d.ts.map +1 -1
  34. package/dist/stories/mark-read.stories.js +4 -27
  35. package/dist/stories/navigate-long-message-lists.stories.d.ts +4 -0
  36. package/dist/stories/navigate-long-message-lists.stories.d.ts.map +1 -0
  37. package/dist/stories/navigate-long-message-lists.stories.js +167 -0
  38. package/dist/stories/utils.d.ts +2 -3
  39. package/dist/stories/utils.d.ts.map +1 -1
  40. package/dist/stories/utils.js +14 -14
  41. package/dist/version.d.ts +1 -1
  42. package/dist/version.js +1 -1
  43. package/package.json +7 -5
  44. package/dist/assets/str-chat__alert.svg +0 -1
  45. package/dist/assets/str-chat__connection-error.svg +0 -13
  46. package/dist/assets/str-chat__file-file.svg +0 -20
  47. package/dist/assets/str-chat__icon-chevron-down.svg +0 -1
  48. package/dist/assets/str-chat__icon-search.svg +0 -1
  49. package/dist/assets/str-chat__icon-send.svg +0 -1
  50. package/dist/assets/str-chat__icon-sprite.png +0 -0
  51. package/dist/assets/str-chat__icon-sprite@1x.png +0 -0
  52. package/dist/assets/str-chat__icon-sprite@2x.png +0 -0
  53. package/dist/assets/str-chat__icon-sprite@3x.png +0 -0
  54. package/dist/assets/str-chat__loading-indicator.svg +0 -23
  55. package/dist/assets/str-chat__reactions-sprite@1x.png +0 -0
  56. package/dist/assets/str-chat__reactions-sprite@2x.png +0 -0
  57. package/dist/assets/str-chat__reactions-sprite@3x.png +0 -0
  58. package/dist/stories/connected-user.stories.d.ts.map +0 -1
package/dist/index.cjs.js CHANGED
@@ -448,6 +448,8 @@ var UnMemoizedGallery = function (props) {
448
448
  var _a = React.useState(0), index = _a[0], setIndex = _a[1];
449
449
  var _b = React.useState(false), modalOpen = _b[0], setModalOpen = _b[1];
450
450
  var t = useTranslationContext('Gallery').t;
451
+ var countImagesDisplayedInPreview = 4;
452
+ var lastImageIndexInPreview = countImagesDisplayedInPreview - 1;
451
453
  var toggleModal = function (selectedIndex) {
452
454
  if (modalOpen) {
453
455
  setModalOpen(false);
@@ -464,16 +466,17 @@ var UnMemoizedGallery = function (props) {
464
466
  source: image.image_url || image.thumb_url || '',
465
467
  }); });
466
468
  }, [images]);
467
- var renderImages = images.slice(0, 3).map(function (image, i) { return (React__default['default'].createElement("button", { className: 'str-chat__gallery-image', "data-testid": 'gallery-image', key: "gallery-image-" + i, onClick: function () { return toggleModal(i); } },
468
- React__default['default'].createElement("img", { alt: 'User uploaded content', src: image.image_url || image.thumb_url }))); });
469
- return (React__default['default'].createElement("div", { className: "str-chat__gallery " + (images.length > 3 ? 'str-chat__gallery--square' : '') },
470
- renderImages,
471
- images.length > 3 && (React__default['default'].createElement("button", { className: 'str-chat__gallery-placeholder', onClick: function () { return toggleModal(3); }, style: {
472
- backgroundImage: "url(" + images[3].image_url + ")",
469
+ var renderImages = images.slice(0, countImagesDisplayedInPreview).map(function (image, i) {
470
+ return i === lastImageIndexInPreview && images.length > countImagesDisplayedInPreview ? (React__default['default'].createElement("button", { className: 'str-chat__gallery-placeholder', key: "gallery-image-" + i, onClick: function () { return toggleModal(i); }, style: {
471
+ backgroundImage: "url(" + images[lastImageIndexInPreview].image_url + ")",
473
472
  } },
474
473
  React__default['default'].createElement("p", null, t('{{ imageCount }} more', {
475
- imageCount: images.length - 3,
476
- })))),
474
+ imageCount: images.length - countImagesDisplayedInPreview,
475
+ })))) : (React__default['default'].createElement("button", { className: 'str-chat__gallery-image', "data-testid": 'gallery-image', key: "gallery-image-" + i, onClick: function () { return toggleModal(i); } },
476
+ React__default['default'].createElement("img", { alt: 'User uploaded content', src: image.image_url || image.thumb_url })));
477
+ });
478
+ return (React__default['default'].createElement("div", { className: "str-chat__gallery " + (images.length > lastImageIndexInPreview ? 'str-chat__gallery--square' : '') },
479
+ renderImages,
477
480
  React__default['default'].createElement(ModalComponent, { images: formattedArray, index: index, modalIsOpen: modalOpen, toggleModal: function () { return setModalOpen(!modalOpen); } })));
478
481
  };
479
482
  /**
@@ -2185,7 +2188,7 @@ var useCreateChannelStateContext = function (value) {
2185
2188
  return type;
2186
2189
  }).join() : '') + pinned + reply_count + status + (updated_at && (isDayOrMoment(updated_at) || isDate(updated_at))
2187
2190
  ? updated_at.toISOString()
2188
- : updated_at || '') + (user === null || user === void 0 ? void 0 : user.image) + (user === null || user === void 0 ? void 0 : user.name);
2191
+ : updated_at || '') + (user === null || user === void 0 ? void 0 : user.updated_at);
2189
2192
  })
2190
2193
  .join();
2191
2194
  var memoizedThreadMessageData = threadMessages
@@ -2196,7 +2199,7 @@ var useCreateChannelStateContext = function (value) {
2196
2199
  return type;
2197
2200
  }).join() : '') + pinned + status + (updated_at && (isDayOrMoment(updated_at) || isDate(updated_at))
2198
2201
  ? updated_at.toISOString()
2199
- : updated_at || '') + (user === null || user === void 0 ? void 0 : user.image) + (user === null || user === void 0 ? void 0 : user.name);
2202
+ : updated_at || '') + (user === null || user === void 0 ? void 0 : user.updated_at);
2200
2203
  })
2201
2204
  .join();
2202
2205
  var channelStateContext = React.useMemo(function () { return ({
@@ -2609,7 +2612,7 @@ var showMessageActionsBox = function (actions, inThread) {
2609
2612
  return true;
2610
2613
  };
2611
2614
  var areMessagePropsEqual = function (prevProps, nextProps) {
2612
- var _a, _b, _c, _d, _e, _f, _g, _h;
2615
+ var _a, _b, _c, _d, _e, _f;
2613
2616
  var prevMessage = prevProps.message, prevMessageUI = prevProps.Message;
2614
2617
  var nextMessage = nextProps.message, nextMessageUI = nextProps.Message;
2615
2618
  if (prevMessageUI !== nextMessageUI)
@@ -2628,8 +2631,7 @@ var areMessagePropsEqual = function (prevProps, nextProps) {
2628
2631
  prevMessage.text === nextMessage.text &&
2629
2632
  prevMessage.type === nextMessage.type &&
2630
2633
  prevMessage.updated_at === nextMessage.updated_at &&
2631
- ((_e = prevMessage.user) === null || _e === void 0 ? void 0 : _e.image) === ((_f = nextMessage.user) === null || _f === void 0 ? void 0 : _f.image) &&
2632
- ((_g = prevMessage.user) === null || _g === void 0 ? void 0 : _g.name) === ((_h = nextMessage.user) === null || _h === void 0 ? void 0 : _h.name);
2634
+ ((_e = prevMessage.user) === null || _e === void 0 ? void 0 : _e.updated_at) === ((_f = nextMessage.user) === null || _f === void 0 ? void 0 : _f.updated_at);
2633
2635
  if (!messagesAreEqual)
2634
2636
  return false;
2635
2637
  var deepEqualProps = deepequal__default['default'](nextProps.readBy, prevProps.readBy) &&
@@ -2643,7 +2645,7 @@ var areMessagePropsEqual = function (prevProps, nextProps) {
2643
2645
  );
2644
2646
  };
2645
2647
  var areMessageUIPropsEqual = function (prevProps, nextProps) {
2646
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
2648
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
2647
2649
  var prevLastReceivedId = prevProps.lastReceivedId, prevMessage = prevProps.message;
2648
2650
  var nextLastReceivedId = nextProps.lastReceivedId, nextMessage = nextProps.message;
2649
2651
  if (prevProps.editing !== nextProps.editing)
@@ -2663,7 +2665,7 @@ var areMessageUIPropsEqual = function (prevProps, nextProps) {
2663
2665
  prevLastReceivedId !== nextLastReceivedId) {
2664
2666
  return false;
2665
2667
  }
2666
- var messagesAreEqual = prevMessage.deleted_at === nextMessage.deleted_at &&
2668
+ return (prevMessage.deleted_at === nextMessage.deleted_at &&
2667
2669
  ((_e = prevMessage.latest_reactions) === null || _e === void 0 ? void 0 : _e.length) === ((_f = nextMessage.latest_reactions) === null || _f === void 0 ? void 0 : _f.length) &&
2668
2670
  ((_g = prevMessage.own_reactions) === null || _g === void 0 ? void 0 : _g.length) === ((_h = nextMessage.own_reactions) === null || _h === void 0 ? void 0 : _h.length) &&
2669
2671
  prevMessage.pinned === nextMessage.pinned &&
@@ -2672,11 +2674,7 @@ var areMessageUIPropsEqual = function (prevProps, nextProps) {
2672
2674
  prevMessage.text === nextMessage.text &&
2673
2675
  prevMessage.type === nextMessage.type &&
2674
2676
  prevMessage.updated_at === nextMessage.updated_at &&
2675
- ((_j = prevMessage.user) === null || _j === void 0 ? void 0 : _j.image) === ((_k = nextMessage.user) === null || _k === void 0 ? void 0 : _k.image) &&
2676
- ((_l = prevMessage.user) === null || _l === void 0 ? void 0 : _l.name) === ((_m = nextMessage.user) === null || _m === void 0 ? void 0 : _m.name);
2677
- if (!messagesAreEqual)
2678
- return false;
2679
- return true;
2677
+ ((_j = prevMessage.user) === null || _j === void 0 ? void 0 : _j.updated_at) === ((_k = nextMessage.user) === null || _k === void 0 ? void 0 : _k.updated_at));
2680
2678
  };
2681
2679
  var messageHasReactions = function (message) { return !!(message === null || message === void 0 ? void 0 : message.latest_reactions) && !!message.latest_reactions.length; };
2682
2680
  var messageHasAttachments = function (message) { return !!(message === null || message === void 0 ? void 0 : message.attachments) && !!message.attachments.length; };
@@ -4800,25 +4798,27 @@ var useSubmitHandler = function (props, state, dispatch, numberOfUploads) {
4800
4798
  _a.sent();
4801
4799
  addNotification(t('Edit message request failed'), 'error');
4802
4800
  return [3 /*break*/, 4];
4803
- case 4: return [3 /*break*/, 12];
4801
+ case 4: return [3 /*break*/, 13];
4804
4802
  case 5:
4805
- _a.trys.push([5, 11, , 12]);
4803
+ _a.trys.push([5, 12, , 13]);
4806
4804
  dispatch({ type: 'clear' });
4807
- if (!overrideSubmitHandler) return [3 /*break*/, 6];
4808
- overrideSubmitHandler(__assign(__assign({}, updatedMessage), { parent: parent }), channel.cid);
4809
- return [3 /*break*/, 8];
4810
- case 6: return [4 /*yield*/, sendMessage(__assign(__assign({}, updatedMessage), { parent: parent }), customMessageData)];
4811
- case 7:
4805
+ if (!overrideSubmitHandler) return [3 /*break*/, 7];
4806
+ return [4 /*yield*/, overrideSubmitHandler(__assign(__assign({}, updatedMessage), { parent: parent }), channel.cid, customMessageData)];
4807
+ case 6:
4812
4808
  _a.sent();
4813
- _a.label = 8;
4809
+ return [3 /*break*/, 9];
4810
+ case 7: return [4 /*yield*/, sendMessage(__assign(__assign({}, updatedMessage), { parent: parent }), customMessageData)];
4814
4811
  case 8:
4815
- if (!publishTypingEvent) return [3 /*break*/, 10];
4816
- return [4 /*yield*/, channel.stopTyping()];
4812
+ _a.sent();
4813
+ _a.label = 9;
4817
4814
  case 9:
4815
+ if (!publishTypingEvent) return [3 /*break*/, 11];
4816
+ return [4 /*yield*/, channel.stopTyping()];
4817
+ case 10:
4818
4818
  _a.sent();
4819
- _a.label = 10;
4820
- case 10: return [3 /*break*/, 12];
4821
- case 11:
4819
+ _a.label = 11;
4820
+ case 11: return [3 /*break*/, 13];
4821
+ case 12:
4822
4822
  _a.sent();
4823
4823
  dispatch({
4824
4824
  getNewText: function () { return text; },
@@ -4830,8 +4830,8 @@ var useSubmitHandler = function (props, state, dispatch, numberOfUploads) {
4830
4830
  });
4831
4831
  }
4832
4832
  addNotification(t('Send message request failed'), 'error');
4833
- return [3 /*break*/, 12];
4834
- case 12: return [2 /*return*/];
4833
+ return [3 /*break*/, 13];
4834
+ case 13: return [2 /*return*/];
4835
4835
  }
4836
4836
  });
4837
4837
  }); };
@@ -6278,15 +6278,20 @@ var UnMemoizedChannelHeader = function (props) {
6278
6278
  */
6279
6279
  var ChannelHeader = React__default['default'].memo(UnMemoizedChannelHeader);
6280
6280
 
6281
- var img = "data:image/svg+xml,%3c%3fxml version='1.0' encoding='UTF-8'%3f%3e%3csvg width='78px' height='78px' viewBox='0 0 78 78' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3e %3c!-- Generator: Sketch 52.6 (67491) - http://www.bohemiancoding.com/sketch --%3e %3ctitle%3eCombined Shape%3c/title%3e %3cdesc%3eCreated with Sketch.%3c/desc%3e %3cg id='Interactions' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3e %3cg id='Connection-Error-_-Connectivity' transform='translate(-270.000000%2c -30.000000)' fill='%23CF1F25'%3e %3cg id='109-network-connection' transform='translate(270.000000%2c 30.000000)'%3e %3cpath d='M66.4609744%2c11.414231 C81.6225232%2c26.5757798 81.6225232%2c51.157545 66.4609744%2c66.3188467 C51.2994256%2c81.4803954 26.7176604%2c81.4803954 11.5563587%2c66.3188467 C-3.60519004%2c51.1572979 -3.60519004%2c26.5755327 11.5563587%2c11.414231 C26.7179075%2c-3.74731776 51.2996727%2c-3.74731776 66.4609744%2c11.414231 Z M54.7853215%2c45.8823776 L54.7853215%2c40.5882574 C54.7853215%2c39.613638 53.9952341%2c38.8235506 53.0206147%2c38.8235506 L44.9576695%2c38.8235506 L41.428256%2c42.3529641 L51.255555%2c42.3529641 L51.255555%2c45.8823776 L54.7853215%2c45.8823776 Z M40.6659027%2c43.1153174 L37.8988425%2c45.8823776 L40.6659027%2c45.8823776 L40.6659027%2c43.1153174 Z M51.1764962%2c56.4702653 L58.2353232%2c56.4702653 C59.2099355%2c56.4702653 60.00003%2c55.6801708 60.00003%2c54.7055585 L60.00003%2c51.176145 C60.00003%2c50.2015327 59.2099355%2c49.4114382 58.2353232%2c49.4114382 L51.1764962%2c49.4114382 C50.2018839%2c49.4114382 49.4117894%2c50.2015327 49.4117894%2c51.176145 L49.4117894%2c54.7055585 C49.4117894%2c55.6801708 50.2018839%2c56.4702653 51.1764962%2c56.4702653 Z M35.2941353%2c56.4702653 L42.3529624%2c56.4702653 C43.3275746%2c56.4702653 44.1176691%2c55.6801708 44.1176691%2c54.7055585 L44.1176691%2c51.176145 C44.1176691%2c50.2015327 43.3275746%2c49.4114382 42.3529624%2c49.4114382 L35.2941353%2c49.4114382 C34.319523%2c49.4114382 33.5294285%2c50.2015327 33.5294285%2c51.176145 L33.5294285%2c54.7055585 C33.5294285%2c55.6801708 34.319523%2c56.4702653 35.2941353%2c56.4702653 Z M56.6964989%2c19.0874231 C56.007381%2c18.3985134 54.8903216%2c18.3985134 54.2012036%2c19.087423 L45.882376%2c27.4062507 L45.882376%2c19.4117761 C45.882376%2c18.4371568 45.0922885%2c17.6470693 44.1176692%2c17.6470693 L33.5294286%2c17.6470693 C32.5548092%2c17.6470694 31.7647218%2c18.4371568 31.7647218%2c19.4117761 L31.7647218%2c30.0000167 C31.7647219%2c30.9746363 32.5548092%2c31.7647237 33.5294285%2c31.7647237 L41.5239031%2c31.7647237 L34.4650761%2c38.8235508 L24.7058947%2c38.8235508 C23.7312753%2c38.8235508 22.9411879%2c39.6136382 22.9411879%2c40.5882575 L22.9411879%2c45.8823778 L26.4706014%2c45.8823778 L26.4706014%2c42.3529643 L30.9356624%2c42.3529643 L23.8768354%2c49.4117914 L19.4117743%2c49.4117914 C18.4371549%2c49.4117914 17.6470675%2c50.2018788 17.6470675%2c51.1764981 L17.6470675%2c54.7059117 C17.6504049%2c54.9674302 17.7129076%2c55.2248042 17.8298886%2c55.4587302 L16.4456526%2c56.8429662 C15.7446193%2c57.5200453 15.7252005%2c58.6372282 16.4022825%2c59.3382615 C17.0793616%2c60.0392948 18.1965445%2c60.0587136 18.8975778%2c59.3816316 C18.9122847%2c59.3674273 18.9267436%2c59.3529684 18.940948%2c59.3382615 L56.6964963%2c21.5830662 C57.3856425%2c20.8939094 57.3856425%2c19.7765747 56.6964963%2c19.0874179 Z' id='Combined-Shape'%3e%3c/path%3e %3c/g%3e %3c/g%3e %3c/g%3e%3c/svg%3e";
6281
+ var ConnectionErrorIcon = function () { return (React__default['default'].createElement("svg", { height: '78px', version: '1.1', viewBox: '0 0 78 78', width: '78px', xmlns: 'http://www.w3.org/2000/svg' },
6282
+ React__default['default'].createElement("title", null, "Connection Error"),
6283
+ React__default['default'].createElement("g", { fill: 'none', fillRule: 'evenodd', id: 'Interactions', stroke: 'none', strokeWidth: '1' },
6284
+ React__default['default'].createElement("g", { fill: '#CF1F25', id: 'Connection-Error-_-Connectivity', transform: 'translate(-270.000000, -30.000000)' },
6285
+ React__default['default'].createElement("g", { id: '109-network-connection', transform: 'translate(270.000000, 30.000000)' },
6286
+ React__default['default'].createElement("path", { d: 'M66.4609744,11.414231 C81.6225232,26.5757798 81.6225232,51.157545 66.4609744,66.3188467 C51.2994256,81.4803954 26.7176604,81.4803954 11.5563587,66.3188467 C-3.60519004,51.1572979 -3.60519004,26.5755327 11.5563587,11.414231 C26.7179075,-3.74731776 51.2996727,-3.74731776 66.4609744,11.414231 Z M54.7853215,45.8823776 L54.7853215,40.5882574 C54.7853215,39.613638 53.9952341,38.8235506 53.0206147,38.8235506 L44.9576695,38.8235506 L41.428256,42.3529641 L51.255555,42.3529641 L51.255555,45.8823776 L54.7853215,45.8823776 Z M40.6659027,43.1153174 L37.8988425,45.8823776 L40.6659027,45.8823776 L40.6659027,43.1153174 Z M51.1764962,56.4702653 L58.2353232,56.4702653 C59.2099355,56.4702653 60.00003,55.6801708 60.00003,54.7055585 L60.00003,51.176145 C60.00003,50.2015327 59.2099355,49.4114382 58.2353232,49.4114382 L51.1764962,49.4114382 C50.2018839,49.4114382 49.4117894,50.2015327 49.4117894,51.176145 L49.4117894,54.7055585 C49.4117894,55.6801708 50.2018839,56.4702653 51.1764962,56.4702653 Z M35.2941353,56.4702653 L42.3529624,56.4702653 C43.3275746,56.4702653 44.1176691,55.6801708 44.1176691,54.7055585 L44.1176691,51.176145 C44.1176691,50.2015327 43.3275746,49.4114382 42.3529624,49.4114382 L35.2941353,49.4114382 C34.319523,49.4114382 33.5294285,50.2015327 33.5294285,51.176145 L33.5294285,54.7055585 C33.5294285,55.6801708 34.319523,56.4702653 35.2941353,56.4702653 Z M56.6964989,19.0874231 C56.007381,18.3985134 54.8903216,18.3985134 54.2012036,19.087423 L45.882376,27.4062507 L45.882376,19.4117761 C45.882376,18.4371568 45.0922885,17.6470693 44.1176692,17.6470693 L33.5294286,17.6470693 C32.5548092,17.6470694 31.7647218,18.4371568 31.7647218,19.4117761 L31.7647218,30.0000167 C31.7647219,30.9746363 32.5548092,31.7647237 33.5294285,31.7647237 L41.5239031,31.7647237 L34.4650761,38.8235508 L24.7058947,38.8235508 C23.7312753,38.8235508 22.9411879,39.6136382 22.9411879,40.5882575 L22.9411879,45.8823778 L26.4706014,45.8823778 L26.4706014,42.3529643 L30.9356624,42.3529643 L23.8768354,49.4117914 L19.4117743,49.4117914 C18.4371549,49.4117914 17.6470675,50.2018788 17.6470675,51.1764981 L17.6470675,54.7059117 C17.6504049,54.9674302 17.7129076,55.2248042 17.8298886,55.4587302 L16.4456526,56.8429662 C15.7446193,57.5200453 15.7252005,58.6372282 16.4022825,59.3382615 C17.0793616,60.0392948 18.1965445,60.0587136 18.8975778,59.3816316 C18.9122847,59.3674273 18.9267436,59.3529684 18.940948,59.3382615 L56.6964963,21.5830662 C57.3856425,20.8939094 57.3856425,19.7765747 56.6964963,19.0874179 Z', id: 'Combined-Shape' })))))); };
6282
6287
 
6283
- var UnMemoizedChatDown = function (props) {
6284
- var image = props.image, text = props.text, _a = props.type, type = _a === void 0 ? 'Error' : _a;
6288
+ var UnMemoizedChatDown = function (_a) {
6289
+ var _b = _a.image, image = _b === void 0 ? React__default['default'].createElement(ConnectionErrorIcon, null) : _b, text = _a.text, _c = _a.type, type = _c === void 0 ? 'Error' : _c;
6285
6290
  var t = useTranslationContext('ChatDown').t;
6286
6291
  return (React__default['default'].createElement("div", { className: 'str-chat__down' },
6287
6292
  React__default['default'].createElement(LoadingChannels, null),
6288
6293
  React__default['default'].createElement("div", { className: 'str-chat__down-main' },
6289
- React__default['default'].createElement("img", { alt: 'Connection error', "data-testid": 'chatdown-img', src: image || img }),
6294
+ typeof image === 'string' ? (React__default['default'].createElement("img", { alt: 'Connection error', "data-testid": 'chatdown-img', src: image })) : (image),
6290
6295
  React__default['default'].createElement("h1", null, type),
6291
6296
  React__default['default'].createElement("h3", { "aria-live": 'assertive' }, text || t('Error connecting to chat, refresh the page to try again.')))));
6292
6297
  };
@@ -6782,8 +6787,10 @@ var ChannelPreview = function (props) {
6782
6787
  var channel = props.channel, _a = props.Preview, Preview = _a === void 0 ? ChannelPreviewMessenger : _a, channelUpdateCount = props.channelUpdateCount;
6783
6788
  var _b = useChatContext('ChannelPreview'), activeChannel = _b.channel, client = _b.client, setActiveChannel = _b.setActiveChannel;
6784
6789
  var _c = useTranslationContext('ChannelPreview'), t = _c.t, userLanguage = _c.userLanguage;
6785
- var _d = React.useState(channel.state.messages[channel.state.messages.length - 1]), lastMessage = _d[0], setLastMessage = _d[1];
6786
- var _e = React.useState(0), unread = _e[0], setUnread = _e[1];
6790
+ var _d = React.useState(getDisplayTitle(channel, client.user)), displayTitle = _d[0], setDisplayTitle = _d[1];
6791
+ var _e = React.useState(getDisplayImage(channel, client.user)), displayImage = _e[0], setDisplayImage = _e[1];
6792
+ var _f = React.useState(channel.state.messages[channel.state.messages.length - 1]), lastMessage = _f[0], setLastMessage = _f[1];
6793
+ var _g = React.useState(0), unread = _g[0], setUnread = _g[1];
6787
6794
  var isActive = (activeChannel === null || activeChannel === void 0 ? void 0 : activeChannel.cid) === channel.cid;
6788
6795
  var muted = useIsChannelMuted(channel).muted;
6789
6796
  React.useEffect(function () {
@@ -6820,10 +6827,24 @@ var ChannelPreview = function (props) {
6820
6827
  channel.off('message.deleted', handleEvent);
6821
6828
  };
6822
6829
  }, [refreshUnreadCount, channelUpdateCount]);
6830
+ React.useEffect(function () {
6831
+ var handleEvent = function () {
6832
+ setDisplayTitle(function (displayTitle) {
6833
+ var newDisplayTitle = getDisplayTitle(channel, client.user);
6834
+ return displayTitle !== newDisplayTitle ? newDisplayTitle : displayTitle;
6835
+ });
6836
+ setDisplayImage(function (displayImage) {
6837
+ var newDisplayImage = getDisplayImage(channel, client.user);
6838
+ return displayImage !== newDisplayImage ? newDisplayImage : displayImage;
6839
+ });
6840
+ };
6841
+ client.on('user.updated', handleEvent);
6842
+ return function () {
6843
+ client.off('user.updated', handleEvent);
6844
+ };
6845
+ }, []);
6823
6846
  if (!Preview)
6824
6847
  return null;
6825
- var displayImage = getDisplayImage(channel, client.user);
6826
- var displayTitle = getDisplayTitle(channel, client.user);
6827
6848
  var latestMessage = getLatestMessagePreview(channel, t, userLanguage);
6828
6849
  return (React__default['default'].createElement(Preview, __assign({}, props, { active: isActive, displayImage: displayImage, displayTitle: displayTitle, lastMessage: lastMessage, latestMessage: latestMessage, setActiveChannel: setActiveChannel, unread: unread })));
6829
6850
  };
@@ -7779,7 +7800,7 @@ var Streami18n = /** @class */ (function () {
7779
7800
  return Streami18n;
7780
7801
  }());
7781
7802
 
7782
- var version = '8.1.1';
7803
+ var version = '8.1.3';
7783
7804
 
7784
7805
  var useChat = function (_a) {
7785
7806
  var _b, _c;
@@ -9508,7 +9529,7 @@ var DefaultThreadStart = function () {
9508
9529
  var ThreadInner = function (props) {
9509
9530
  var additionalMessageInputProps = props.additionalMessageInputProps, additionalMessageListProps = props.additionalMessageListProps, additionalParentMessageProps = props.additionalParentMessageProps, additionalVirtualizedMessageListProps = props.additionalVirtualizedMessageListProps, _a = props.autoFocus, autoFocus = _a === void 0 ? true : _a, _b = props.enableDateSeparator, enableDateSeparator = _b === void 0 ? false : _b, _c = props.fullWidth, fullWidth = _c === void 0 ? false : _c, PropInput = props.Input, PropMessage = props.Message, virtualized = props.virtualized;
9510
9531
  var _d = useChannelStateContext('Thread'), thread = _d.thread, threadHasMore = _d.threadHasMore, threadLoadingMore = _d.threadLoadingMore, threadMessages = _d.threadMessages;
9511
- var _e = useChannelActionContext('Thread'), closeThread = _e.closeThread, loadMoreThread = _e.loadMoreThread;
9532
+ var _e = useChannelActionContext('Thread'), closeThread = _e.closeThread, loadMoreThread = _e.loadMoreThread, sendMessage = _e.sendMessage;
9512
9533
  var customClasses = useChatContext('Thread').customClasses;
9513
9534
  var _f = useComponentContext('Thread'), ContextInput = _f.ThreadInput, ContextMessage = _f.Message, _g = _f.ThreadHeader, ThreadHeader = _g === void 0 ? DefaultThreadHeader : _g, _h = _f.ThreadStart, ThreadStart = _h === void 0 ? DefaultThreadStart : _h, _j = _f.VirtualMessage, VirtualMessage = _j === void 0 ? FixedHeightMessage : _j;
9514
9535
  var messageList = React.useRef(null);
@@ -9521,15 +9542,19 @@ var ThreadInner = function (props) {
9521
9542
  loadMoreThread();
9522
9543
  }
9523
9544
  }, []);
9524
- React.useEffect(function () {
9525
- if (messageList.current && (threadMessages === null || threadMessages === void 0 ? void 0 : threadMessages.length)) {
9526
- var _a = messageList.current, clientHeight = _a.clientHeight, scrollHeight = _a.scrollHeight, scrollTop = _a.scrollTop;
9527
- var scrollDown = clientHeight + scrollTop !== scrollHeight;
9528
- if (scrollDown) {
9529
- messageList.current.scrollTop = scrollHeight - clientHeight;
9545
+ var threadSubmitHandler = function (message, _, customMessageData) { return __awaiter(void 0, void 0, void 0, function () {
9546
+ return __generator(this, function (_a) {
9547
+ switch (_a.label) {
9548
+ case 0: return [4 /*yield*/, sendMessage(message, customMessageData)];
9549
+ case 1:
9550
+ _a.sent();
9551
+ if (messageList.current) {
9552
+ messageList.current.scrollTop = messageList.current.scrollHeight;
9553
+ }
9554
+ return [2 /*return*/];
9530
9555
  }
9531
- }
9532
- }, [threadMessages === null || threadMessages === void 0 ? void 0 : threadMessages.length]);
9556
+ });
9557
+ }); };
9533
9558
  if (!thread)
9534
9559
  return null;
9535
9560
  var threadClass = (customClasses === null || customClasses === void 0 ? void 0 : customClasses.thread) || 'str-chat__thread';
@@ -9539,7 +9564,7 @@ var ThreadInner = function (props) {
9539
9564
  React__default['default'].createElement(Message, __assign({ initialMessage: true, message: thread, Message: ThreadMessage || FallbackMessage, threadList: true }, additionalParentMessageProps)),
9540
9565
  React__default['default'].createElement(ThreadStart, null),
9541
9566
  React__default['default'].createElement(ThreadMessageList, __assign({ disableDateSeparator: !enableDateSeparator, hasMore: threadHasMore, loadingMore: threadLoadingMore, loadMore: loadMoreThread, Message: ThreadMessage || FallbackMessage, messages: threadMessages || [], threadList: true }, (virtualized ? additionalVirtualizedMessageListProps : additionalMessageListProps)))),
9542
- React__default['default'].createElement(MessageInput, __assign({ focus: autoFocus, Input: ThreadInput, parent: thread, publishTypingEvent: false }, additionalMessageInputProps))));
9567
+ React__default['default'].createElement(MessageInput, __assign({ focus: autoFocus, Input: ThreadInput, overrideSubmitHandler: threadSubmitHandler, parent: thread, publishTypingEvent: false }, additionalMessageInputProps))));
9543
9568
  };
9544
9569
 
9545
9570
  var UnMemoizedWindow = function (props) {