stream-chat-react 10.10.1 → 10.11.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 (40) hide show
  1. package/dist/browser.full-bundle.js +192 -101
  2. package/dist/browser.full-bundle.js.map +1 -1
  3. package/dist/browser.full-bundle.min.js +5 -5
  4. package/dist/browser.full-bundle.min.js.map +1 -1
  5. package/dist/components/Channel/Channel.d.ts.map +1 -1
  6. package/dist/components/Channel/Channel.js +27 -8
  7. package/dist/components/ChannelList/hooks/useChannelVisibleListener.d.ts.map +1 -1
  8. package/dist/components/ChannelList/hooks/useChannelVisibleListener.js +6 -2
  9. package/dist/components/ChannelList/hooks/useNotificationAddedToChannelListener.d.ts.map +1 -1
  10. package/dist/components/ChannelList/hooks/useNotificationAddedToChannelListener.js +19 -7
  11. package/dist/components/ChannelList/hooks/useNotificationMessageNewListener.d.ts.map +1 -1
  12. package/dist/components/ChannelList/hooks/useNotificationMessageNewListener.js +6 -2
  13. package/dist/components/ChannelList/utils.d.ts +1 -8
  14. package/dist/components/ChannelList/utils.d.ts.map +1 -1
  15. package/dist/components/ChannelList/utils.js +1 -35
  16. package/dist/components/Message/MessageSimple.d.ts.map +1 -1
  17. package/dist/components/Message/MessageSimple.js +10 -3
  18. package/dist/components/Message/hooks/useReactionHandler.d.ts.map +1 -1
  19. package/dist/components/Message/hooks/useReactionHandler.js +17 -21
  20. package/dist/components/MessageInput/CooldownTimer.js +1 -1
  21. package/dist/components/MessageInput/hooks/useCooldownTimer.d.ts.map +1 -1
  22. package/dist/components/MessageInput/hooks/useCooldownTimer.js +5 -2
  23. package/dist/context/MessageContext.d.ts +3 -1
  24. package/dist/context/MessageContext.d.ts.map +1 -1
  25. package/dist/context/TranslationContext.d.ts +1 -1
  26. package/dist/context/TranslationContext.d.ts.map +1 -1
  27. package/dist/i18n/Streami18n.d.ts +9 -3
  28. package/dist/i18n/Streami18n.d.ts.map +1 -1
  29. package/dist/i18n/Streami18n.js +18 -11
  30. package/dist/index.cjs.js +178 -101
  31. package/dist/index.cjs.js.map +1 -1
  32. package/dist/index.d.ts +1 -0
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +1 -0
  35. package/dist/utils/getChannel.d.ts +20 -0
  36. package/dist/utils/getChannel.d.ts.map +1 -0
  37. package/dist/utils/getChannel.js +58 -0
  38. package/dist/version.d.ts +1 -1
  39. package/dist/version.js +1 -1
  40. package/package.json +3 -3
@@ -9993,6 +9993,24 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
9993
9993
 
9994
9994
  var relativeTime = relativeTime$1.exports;
9995
9995
 
9996
+ var utc$1 = {exports: {}};
9997
+
9998
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
9999
+ (function (module, exports) {
10000
+ !function(t,i){module.exports=i();}(commonjsGlobal,function(){return function(t,i,e){var s=i.prototype;e.utc=function(t){return new i({date:t,utc:!0,args:arguments})},s.utc=function(t){var i=e(this.toDate(),{locale:this.$L,utc:!0});return t?i.add(this.utcOffset(),"minute"):i},s.local=function(){return e(this.toDate(),{locale:this.$L,utc:!1})};var f=s.parse;s.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),f.call(this,t);};var n=s.init;s.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds();}else n.call(this);};var u=s.utcOffset;s.utcOffset=function(t,i){var e=this.$utils().u;if(e(t))return this.$u?0:e(this.$offset)?u.call(this):this.$offset;var s=Math.abs(t)<=16?60*t:t,f=this;if(i)return f.$offset=s,f.$u=0===t,f;if(0!==t){var n=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(f=this.local().add(s+n,"minute")).$offset=s,f.$x.$localOffset=n;}else f=this.utc();return f};var o=s.format;s.format=function(t){var i=t||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return o.call(this,i)},s.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||(new Date).getTimezoneOffset());return this.$d.valueOf()-6e4*t},s.isUTC=function(){return !!this.$u},s.toISOString=function(){return this.toDate().toISOString()},s.toString=function(){return this.toDate().toUTCString()};var r=s.toDate;s.toDate=function(t){return "s"===t&&this.$offset?e(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():r.call(this)};var a=s.diff;s.diff=function(t,i,s){if(t&&this.$u===t.$u)return a.call(this,t,i,s);var f=this.local(),n=e(t).local();return a.call(f,n,i,s)};}});
10001
+ } (utc$1));
10002
+
10003
+ var utc = utc$1.exports;
10004
+
10005
+ var timezone$1 = {exports: {}};
10006
+
10007
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
10008
+ (function (module, exports) {
10009
+ !function(t,e){module.exports=e();}(commonjsGlobal,function(){var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(n,i,r){var o,u=r().utcOffset(),a=function(t,n,i){void 0===i&&(i={});var r=new Date(t);return function(t,n){void 0===n&&(n={});var i=n.timeZoneName||"short",r=t+"|"+i,o=e[r];return o||(o=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:i}),e[r]=o),o}(n,i).formatToParts(r)},f=function(e,n){for(var i=a(e,n),o=[],u=0;u<i.length;u+=1){var f=i[u],s=f.type,m=f.value,c=t[s];c>=0&&(o[c]=parseInt(m,10));}var d=o[3],v=24===d?0:d,h=o[0]+"-"+o[1]+"-"+o[2]+" "+v+":"+o[4]+":"+o[5]+":000",l=+e;return (r.utc(h).valueOf()-(l-=l%1e3))/6e4},s=i.prototype;s.tz=function(t,e){void 0===t&&(t=o);var n=this.utcOffset(),i=this.toDate().toLocaleString("en-US",{timeZone:t}),a=Math.round((this.toDate()-new Date(i))/1e3/60),f=r(i).$set("millisecond",this.$ms).utcOffset(u-a,!0);if(e){var s=f.utcOffset();f=f.add(n-s,"minute");}return f.$x.$timezone=t,f},s.offsetName=function(t){var e=this.$x.$timezone||r.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find(function(t){return "timezonename"===t.type.toLowerCase()});return n&&n.value};var m=s.startOf;s.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return m.call(this,t,e);var n=r(this.format("YYYY-MM-DD HH:mm:ss:SSS"));return m.call(n,t,e).tz(this.$x.$timezone,!0)},r.tz=function(t,e,n){var i=n&&e,u=n||e||o,a=f(+r(),u);if("string"!=typeof t)return r(t).tz(u);var s=function(t,e,n){var i=t-60*e*1e3,r=f(i,n);if(e===r)return [i,e];var o=f(i-=60*(r-e)*1e3,n);return r===o?[i,r]:[t-60*Math.min(r,o)*1e3,Math.max(r,o)]}(r.utc(t,i).valueOf(),a,u),m=s[0],c=s[1],d=r(m).utcOffset(c);return d.$x.$timezone=u,d},r.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},r.tz.setDefault=function(t){o=t;};}});
10010
+ } (timezone$1));
10011
+
10012
+ var timezone = timezone$1.exports;
10013
+
9996
10014
  var de$3 = {exports: {}};
9997
10015
 
9998
10016
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
@@ -10080,6 +10098,8 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
10080
10098
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var defaultNS = 'translation';
10081
10099
  var defaultLng = 'en';
10082
10100
  dayjs_minExports.extend(updateLocale);
10101
+ dayjs_minExports.extend(utc);
10102
+ dayjs_minExports.extend(timezone);
10083
10103
  dayjs_minExports.updateLocale('de', {
10084
10104
  calendar: {
10085
10105
  lastDay: '[gestern um] LT',
@@ -10248,6 +10268,9 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
10248
10268
  var isDayJs = function (dateTimeParser) {
10249
10269
  return dateTimeParser.extend !== undefined;
10250
10270
  };
10271
+ var supportsTz = function (dateTimeParser) {
10272
+ return dateTimeParser.tz !== undefined;
10273
+ };
10251
10274
  /**
10252
10275
  * Wrapper around [i18next](https://www.i18next.com/) class for Stream related translations.
10253
10276
  * Instance of this class should be provided to Chat component to handle translations.
@@ -10491,6 +10514,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
10491
10514
  this.logger = finalOptions.logger;
10492
10515
  this.currentLanguage = finalOptions.language;
10493
10516
  this.DateTimeParser = finalOptions.DateTimeParser;
10517
+ this.timezone = finalOptions.timezone;
10494
10518
  try {
10495
10519
  if (this.DateTimeParser && isDayJs(this.DateTimeParser)) {
10496
10520
  this.DateTimeParser.extend(localizedFormat);
@@ -10540,19 +10564,18 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
10540
10564
  "register the locale config with Streami18n using registerTranslation(language, translation, customDayjsLocale)");
10541
10565
  }
10542
10566
  this.tDateTimeParser = function (timestamp) {
10543
- if (finalOptions.disableDateTimeTranslations || !_this.localeExists(_this.currentLanguage)) {
10544
- /**
10545
- * TS needs to know which is being called to accept the chain call
10546
- */
10547
- if (isDayJs(_this.DateTimeParser)) {
10548
- return _this.DateTimeParser(timestamp).locale(defaultLng);
10549
- }
10550
- return _this.DateTimeParser(timestamp).locale(defaultLng);
10551
- }
10567
+ var language = finalOptions.disableDateTimeTranslations || !_this.localeExists(_this.currentLanguage)
10568
+ ? defaultLng
10569
+ : _this.currentLanguage;
10552
10570
  if (isDayJs(_this.DateTimeParser)) {
10553
- return _this.DateTimeParser(timestamp).locale(_this.currentLanguage);
10571
+ return supportsTz(_this.DateTimeParser)
10572
+ ? _this.DateTimeParser(timestamp).tz(_this.timezone).locale(language)
10573
+ : _this.DateTimeParser(timestamp).locale(language);
10574
+ }
10575
+ if (supportsTz(_this.DateTimeParser) && _this.timezone) {
10576
+ return _this.DateTimeParser(timestamp).tz(_this.timezone).locale(language);
10554
10577
  }
10555
- return _this.DateTimeParser(timestamp).locale(_this.currentLanguage);
10578
+ return _this.DateTimeParser(timestamp).locale(language);
10556
10579
  };
10557
10580
  }
10558
10581
  /**
@@ -42937,7 +42960,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
42937
42960
  }, 1000);
42938
42961
  return function () { return clearInterval(countdownInterval); };
42939
42962
  });
42940
- return (React__default["default"].createElement("div", { className: 'str-chat__message-input-cooldown', "data-testid": 'cooldown-timer' }, seconds === 0 ? null : seconds));
42963
+ return (React__default["default"].createElement("div", { className: 'str-chat__message-input-cooldown', "data-testid": 'cooldown-timer' }, seconds));
42941
42964
  };
42942
42965
 
42943
42966
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useCommandTrigger = function () {
@@ -43653,9 +43676,12 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
43653
43676
  }, [messages, (_a = client.user) === null || _a === void 0 ? void 0 : _a.id, latestMessageDatesByChannels, channel.cid]);
43654
43677
  React$2.useEffect(function () {
43655
43678
  var timeSinceOwnLastMessage = ownLatestMessageDate
43656
- ? (new Date().getTime() - ownLatestMessageDate.getTime()) / 1000
43679
+ ? // prevent negative values
43680
+ Math.max(0, (new Date().getTime() - ownLatestMessageDate.getTime()) / 1000)
43657
43681
  : undefined;
43658
- setCooldownRemaining(!skipCooldown && timeSinceOwnLastMessage && cooldownInterval > timeSinceOwnLastMessage
43682
+ setCooldownRemaining(!skipCooldown &&
43683
+ typeof timeSinceOwnLastMessage !== 'undefined' &&
43684
+ cooldownInterval > timeSinceOwnLastMessage
43659
43685
  ? Math.round(cooldownInterval - timeSinceOwnLastMessage)
43660
43686
  : 0);
43661
43687
  }, [cooldownInterval, ownLatestMessageDate, skipCooldown]);
@@ -45098,6 +45124,13 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
45098
45124
  if (message.deleted_at || message.type === 'deleted') {
45099
45125
  return React__default["default"].createElement(MessageDeleted$1, { message: message });
45100
45126
  }
45127
+ /** FIXME: isReactionEnabled should be removed with next major version and a proper centralized permissions logic should be put in place
45128
+ * With the current permissions implementation it would be sth like:
45129
+ * const messageActions = getMessageActions();
45130
+ * const canReact = messageActions.includes(MESSAGE_ACTIONS.react);
45131
+ */
45132
+ var canReact = isReactionEnabled;
45133
+ var canShowReactions = hasReactions;
45101
45134
  var showMetadata = !groupedByUser || endOfGroup;
45102
45135
  var showReplyCountButton = !threadList && !!message.reply_count;
45103
45136
  var allowRetry = message.status === 'failed' && message.errorStatusCode !== 403;
@@ -45107,7 +45140,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
45107
45140
  'pinned-message': message.pinned,
45108
45141
  'str-chat__message--has-attachment': hasAttachment,
45109
45142
  'str-chat__message--highlighted': highlighted,
45110
- 'str-chat__message--with-reactions str-chat__message-with-thread-link': hasReactions && isReactionEnabled,
45143
+ 'str-chat__message--with-reactions str-chat__message-with-thread-link': canShowReactions,
45111
45144
  'str-chat__message-send-can-be-retried': (message === null || message === void 0 ? void 0 : message.status) === 'failed' && (message === null || message === void 0 ? void 0 : message.errorStatusCode) !== 403,
45112
45145
  'str-chat__virtual-message__wrapper--end': endOfGroup,
45113
45146
  'str-chat__virtual-message__wrapper--first': firstOfGroup,
@@ -45124,8 +45157,8 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
45124
45157
  }), "data-testid": 'message-inner', onClick: allowRetry ? function () { return handleRetry(message); } : undefined, onKeyUp: allowRetry ? function () { return handleRetry(message); } : undefined },
45125
45158
  React__default["default"].createElement(MessageOptions$1, null),
45126
45159
  React__default["default"].createElement("div", { className: 'str-chat__message-reactions-host' },
45127
- hasReactions && isReactionEnabled && React__default["default"].createElement(ReactionsList$1, { reverse: true }),
45128
- showDetailedReactions && isReactionEnabled && (React__default["default"].createElement(ReactionSelector$1, { ref: reactionSelectorRef }))),
45160
+ canShowReactions && React__default["default"].createElement(ReactionsList$1, { reverse: true }),
45161
+ showDetailedReactions && canReact && React__default["default"].createElement(ReactionSelector$1, { ref: reactionSelectorRef })),
45129
45162
  React__default["default"].createElement("div", { className: 'str-chat__message-bubble' },
45130
45163
  ((_a = message.attachments) === null || _a === void 0 ? void 0 : _a.length) && !message.quoted_message ? (React__default["default"].createElement(Attachment, { actionHandler: handleAction, attachments: message.attachments })) : null,
45131
45164
  React__default["default"].createElement(MessageText, { message: message, renderText: renderText }),
@@ -45406,6 +45439,64 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
45406
45439
  notificationTimeouts.push(timeout);
45407
45440
  }; };
45408
45441
 
45442
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};/**
45443
+ * prevent from duplicate invocation of channel.watch()
45444
+ * when events 'notification.message_new' and 'notification.added_to_channel' arrive at the same time
45445
+ */
45446
+ var WATCH_QUERY_IN_PROGRESS_FOR_CHANNEL = {};
45447
+ /**
45448
+ * Calls channel.watch() if it was not already recently called. Waits for watch promise to resolve even if it was invoked previously.
45449
+ * @param client
45450
+ * @param members
45451
+ * @param type
45452
+ * @param id
45453
+ * @param channel
45454
+ */
45455
+ var getChannel = function (_a) {
45456
+ var channel = _a.channel, client = _a.client, id = _a.id, members = _a.members, type = _a.type;
45457
+ return __awaiter(void 0, void 0, void 0, function () {
45458
+ var theChannel, originalCid, queryPromise;
45459
+ return __generator(this, function (_b) {
45460
+ switch (_b.label) {
45461
+ case 0:
45462
+ if (!channel && !type) {
45463
+ throw new Error('Channel or channel type have to be provided to query a channel.');
45464
+ }
45465
+ theChannel = channel || client.channel(type, id, { members: members });
45466
+ originalCid = (theChannel === null || theChannel === void 0 ? void 0 : theChannel.id)
45467
+ ? theChannel.cid
45468
+ : members && members.length
45469
+ ? generateChannelTempCid(theChannel.type, members)
45470
+ : undefined;
45471
+ if (!originalCid) {
45472
+ throw new Error('Channel ID or channel members array have to be provided to query a channel.');
45473
+ }
45474
+ queryPromise = WATCH_QUERY_IN_PROGRESS_FOR_CHANNEL[originalCid];
45475
+ if (!queryPromise) return [3 /*break*/, 2];
45476
+ return [4 /*yield*/, queryPromise];
45477
+ case 1:
45478
+ _b.sent();
45479
+ return [3 /*break*/, 4];
45480
+ case 2:
45481
+ WATCH_QUERY_IN_PROGRESS_FOR_CHANNEL[originalCid] = theChannel.watch();
45482
+ return [4 /*yield*/, WATCH_QUERY_IN_PROGRESS_FOR_CHANNEL[originalCid]];
45483
+ case 3:
45484
+ _b.sent();
45485
+ delete WATCH_QUERY_IN_PROGRESS_FOR_CHANNEL[originalCid];
45486
+ _b.label = 4;
45487
+ case 4: return [2 /*return*/, theChannel];
45488
+ }
45489
+ });
45490
+ });
45491
+ };
45492
+ // Channels created without ID need to be referenced by an identifier until the back-end generates the final ID.
45493
+ var generateChannelTempCid = function (channelType, members) {
45494
+ if (!members)
45495
+ return;
45496
+ var membersStr = __spreadArray([], members, true).sort().join(',');
45497
+ return "".concat(channelType, ":!members-").concat(membersStr);
45498
+ };
45499
+
45409
45500
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useChannelContainerClasses = function (_a) {
45410
45501
  var _b, _c, _d;
45411
45502
  var customClasses = _a.customClasses;
@@ -45648,22 +45739,40 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
45648
45739
  markRead();
45649
45740
  };
45650
45741
  (function () { return __awaiter(void 0, void 0, void 0, function () {
45651
- var config, e_1;
45652
- return __generator(this, function (_a) {
45653
- switch (_a.label) {
45742
+ var members, _i, _a, member, userId, _b, user, user_id, config, e_1;
45743
+ var _c;
45744
+ return __generator(this, function (_d) {
45745
+ switch (_d.label) {
45654
45746
  case 0:
45655
45747
  if (!!channel.initialized) return [3 /*break*/, 4];
45656
- _a.label = 1;
45748
+ _d.label = 1;
45657
45749
  case 1:
45658
- _a.trys.push([1, 3, , 4]);
45659
- return [4 /*yield*/, channel.watch()];
45750
+ _d.trys.push([1, 3, , 4]);
45751
+ members = [];
45752
+ if (!channel.id && ((_c = channel.data) === null || _c === void 0 ? void 0 : _c.members)) {
45753
+ for (_i = 0, _a = channel.data.members; _i < _a.length; _i++) {
45754
+ member = _a[_i];
45755
+ userId = void 0;
45756
+ if (typeof member === 'string') {
45757
+ userId = member;
45758
+ }
45759
+ else if (typeof member === 'object') {
45760
+ _b = member, user = _b.user, user_id = _b.user_id;
45761
+ userId = user_id || (user === null || user === void 0 ? void 0 : user.id);
45762
+ }
45763
+ if (userId) {
45764
+ members.push(userId);
45765
+ }
45766
+ }
45767
+ }
45768
+ return [4 /*yield*/, getChannel({ channel: channel, client: client, members: members })];
45660
45769
  case 2:
45661
- _a.sent();
45770
+ _d.sent();
45662
45771
  config = channel.getConfig();
45663
45772
  setChannelConfig(config);
45664
45773
  return [3 /*break*/, 4];
45665
45774
  case 3:
45666
- e_1 = _a.sent();
45775
+ e_1 = _d.sent();
45667
45776
  dispatch({ error: e_1, type: 'setError' });
45668
45777
  errored = true;
45669
45778
  return [3 /*break*/, 4];
@@ -46399,52 +46508,6 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
46399
46508
  }, [customHandler]);
46400
46509
  };
46401
46510
 
46402
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};/**
46403
- * prevent from duplicate invocation of channel.watch()
46404
- * when events 'notification.message_new' and 'notification.added_to_channel' arrive at the same time
46405
- */
46406
- var WATCH_QUERY_IN_PROGRESS_FOR_CHANNEL = {};
46407
- /**
46408
- * Calls channel.watch() if it was not already recently called. Waits for watch promise to resolve even if it was invoked previously.
46409
- * @param client
46410
- * @param type
46411
- * @param id
46412
- */
46413
- var getChannel = function (client, type, id) { return __awaiter(void 0, void 0, void 0, function () {
46414
- var channel, queryPromise;
46415
- return __generator(this, function (_a) {
46416
- switch (_a.label) {
46417
- case 0:
46418
- channel = client.channel(type, id);
46419
- queryPromise = WATCH_QUERY_IN_PROGRESS_FOR_CHANNEL[channel.cid];
46420
- if (!queryPromise) return [3 /*break*/, 2];
46421
- return [4 /*yield*/, queryPromise];
46422
- case 1:
46423
- _a.sent();
46424
- return [3 /*break*/, 4];
46425
- case 2:
46426
- WATCH_QUERY_IN_PROGRESS_FOR_CHANNEL[channel.cid] = channel.watch();
46427
- return [4 /*yield*/, WATCH_QUERY_IN_PROGRESS_FOR_CHANNEL[channel.cid]];
46428
- case 3:
46429
- _a.sent();
46430
- WATCH_QUERY_IN_PROGRESS_FOR_CHANNEL[channel.cid] = undefined;
46431
- _a.label = 4;
46432
- case 4: return [2 /*return*/, channel];
46433
- }
46434
- });
46435
- }); };
46436
- var MAX_QUERY_CHANNELS_LIMIT = 30;
46437
- var moveChannelUp = function (_a) {
46438
- var activeChannel = _a.activeChannel, channels = _a.channels, cid = _a.cid;
46439
- // get index of channel to move up
46440
- var channelIndex = channels.findIndex(function (channel) { return channel.cid === cid; });
46441
- if (!activeChannel && channelIndex <= 0)
46442
- return channels;
46443
- // get channel to move up
46444
- var channel = activeChannel || channels[channelIndex];
46445
- return uniqBy(__spreadArray([channel], channels, true), 'cid');
46446
- };
46447
-
46448
46511
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useChannelVisibleListener = function (setChannels, customHandler) {
46449
46512
  var client = useChatContext('useChannelVisibleListener').client;
46450
46513
  React$2.useEffect(function () {
@@ -46458,7 +46521,11 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
46458
46521
  return [3 /*break*/, 3];
46459
46522
  case 1:
46460
46523
  if (!(event.type && event.channel_type && event.channel_id)) return [3 /*break*/, 3];
46461
- return [4 /*yield*/, getChannel(client, event.channel_type, event.channel_id)];
46524
+ return [4 /*yield*/, getChannel({
46525
+ client: client,
46526
+ id: event.channel_id,
46527
+ type: event.channel_type,
46528
+ })];
46462
46529
  case 2:
46463
46530
  channel_1 = _a.sent();
46464
46531
  setChannels(function (channels) { return uniqBy(__spreadArray([channel_1], channels, true), 'cid'); });
@@ -46489,6 +46556,18 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
46489
46556
  }, []);
46490
46557
  };
46491
46558
 
46559
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var MAX_QUERY_CHANNELS_LIMIT = 30;
46560
+ var moveChannelUp = function (_a) {
46561
+ var activeChannel = _a.activeChannel, channels = _a.channels, cid = _a.cid;
46562
+ // get index of channel to move up
46563
+ var channelIndex = channels.findIndex(function (channel) { return channel.cid === cid; });
46564
+ if (!activeChannel && channelIndex <= 0)
46565
+ return channels;
46566
+ // get channel to move up
46567
+ var channel = activeChannel || channels[channelIndex];
46568
+ return uniqBy(__spreadArray([channel], channels, true), 'cid');
46569
+ };
46570
+
46492
46571
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useMessageNewListener = function (setChannels, lockChannelOrder, allowNewMessagesFromUnfilteredChannels) {
46493
46572
  if (lockChannelOrder === void 0) { lockChannelOrder = false; }
46494
46573
  if (allowNewMessagesFromUnfilteredChannels === void 0) { allowNewMessagesFromUnfilteredChannels = true; }
@@ -46536,20 +46615,32 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
46536
46615
  React$2.useEffect(function () {
46537
46616
  var handleEvent = function (event) { return __awaiter(void 0, void 0, void 0, function () {
46538
46617
  var channel_1;
46539
- var _a;
46540
- return __generator(this, function (_b) {
46541
- switch (_b.label) {
46618
+ var _a, _b;
46619
+ return __generator(this, function (_c) {
46620
+ switch (_c.label) {
46542
46621
  case 0:
46543
46622
  if (!(customHandler && typeof customHandler === 'function')) return [3 /*break*/, 1];
46544
46623
  customHandler(setChannels, event);
46545
46624
  return [3 /*break*/, 3];
46546
46625
  case 1:
46547
46626
  if (!(allowNewMessagesFromUnfilteredChannels && ((_a = event.channel) === null || _a === void 0 ? void 0 : _a.type))) return [3 /*break*/, 3];
46548
- return [4 /*yield*/, getChannel(client, event.channel.type, event.channel.id)];
46627
+ return [4 /*yield*/, getChannel({
46628
+ client: client,
46629
+ id: event.channel.id,
46630
+ members: (_b = event.channel.members) === null || _b === void 0 ? void 0 : _b.reduce(function (acc, _a) {
46631
+ var user = _a.user, user_id = _a.user_id;
46632
+ var userId = user_id || (user === null || user === void 0 ? void 0 : user.id);
46633
+ if (userId) {
46634
+ acc.push(userId);
46635
+ }
46636
+ return acc;
46637
+ }, []),
46638
+ type: event.channel.type,
46639
+ })];
46549
46640
  case 2:
46550
- channel_1 = _b.sent();
46641
+ channel_1 = _c.sent();
46551
46642
  setChannels(function (channels) { return uniqBy(__spreadArray([channel_1], channels, true), 'cid'); });
46552
- _b.label = 3;
46643
+ _c.label = 3;
46553
46644
  case 3: return [2 /*return*/];
46554
46645
  }
46555
46646
  });
@@ -46576,7 +46667,11 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
46576
46667
  return [3 /*break*/, 3];
46577
46668
  case 1:
46578
46669
  if (!(allowNewMessagesFromUnfilteredChannels && ((_a = event.channel) === null || _a === void 0 ? void 0 : _a.type))) return [3 /*break*/, 3];
46579
- return [4 /*yield*/, getChannel(client, event.channel.type, event.channel.id)];
46670
+ return [4 /*yield*/, getChannel({
46671
+ client: client,
46672
+ id: event.channel.id,
46673
+ type: event.channel.type,
46674
+ })];
46580
46675
  case 2:
46581
46676
  channel_1 = _b.sent();
46582
46677
  setChannels(function (channels) { return uniqBy(__spreadArray([channel_1], channels, true), 'cid'); });
@@ -47345,7 +47440,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
47345
47440
 
47346
47441
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
47347
47442
 
47348
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var version$1 = '10.10.1';
47443
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var version$1 = '10.11.0';
47349
47444
 
47350
47445
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useChat = function (_a) {
47351
47446
  var _b, _c;
@@ -48013,7 +48108,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
48013
48108
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var reactionHandlerWarning = "Reaction handler was called, but it is missing one of its required arguments.\nMake sure the ChannelAction and ChannelState contexts are properly set and the hook is initialized with a valid message.";
48014
48109
  var useReactionHandler = function (message) {
48015
48110
  var updateMessage = useChannelActionContext('useReactionHandler').updateMessage;
48016
- var channel = useChannelStateContext('useReactionHandler').channel;
48111
+ var _a = useChannelStateContext('useReactionHandler'), channel = _a.channel, channelCapabilities = _a.channelCapabilities;
48017
48112
  var client = useChatContext('useReactionHandler').client;
48018
48113
  var createMessagePreview = React$2.useCallback(function (add, reaction, message) {
48019
48114
  var _a, _b;
@@ -48037,7 +48132,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
48037
48132
  ? __spreadArray([reaction], ((message === null || message === void 0 ? void 0 : message.own_reactions) || []), true) : (_b = message === null || message === void 0 ? void 0 : message.own_reactions) === null || _b === void 0 ? void 0 : _b.filter(function (item) { return item.type !== reaction.type; });
48038
48133
  return __assign(__assign({}, message), { latest_reactions: newReactions || message.latest_reactions, own_reactions: newOwnReactions, reaction_counts: newReactionCounts, reaction_scores: newReactionCounts });
48039
48134
  }, [client.user, client.userID]);
48040
- var creatReactionPreview = function (type) {
48135
+ var createReactionPreview = function (type) {
48041
48136
  var _a;
48042
48137
  return ({
48043
48138
  message_id: message === null || message === void 0 ? void 0 : message.id,
@@ -48049,33 +48144,32 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
48049
48144
  };
48050
48145
  var toggleReaction = lodash_throttle(function (id, type, add) { return __awaiter(void 0, void 0, void 0, function () {
48051
48146
  var newReaction, tempMessage, messageResponse, _a;
48052
- var _b;
48053
- return __generator(this, function (_c) {
48054
- switch (_c.label) {
48147
+ return __generator(this, function (_b) {
48148
+ switch (_b.label) {
48055
48149
  case 0:
48056
- if (!message || ((_b = channel.data) === null || _b === void 0 ? void 0 : _b.frozen))
48150
+ if (!message || !channelCapabilities['send-reaction'])
48057
48151
  return [2 /*return*/];
48058
- newReaction = creatReactionPreview(type);
48152
+ newReaction = createReactionPreview(type);
48059
48153
  tempMessage = createMessagePreview(add, newReaction, message);
48060
- _c.label = 1;
48154
+ _b.label = 1;
48061
48155
  case 1:
48062
- _c.trys.push([1, 6, , 7]);
48156
+ _b.trys.push([1, 6, , 7]);
48063
48157
  updateMessage(tempMessage);
48064
48158
  if (!add) return [3 /*break*/, 3];
48065
48159
  return [4 /*yield*/, channel.sendReaction(id, { type: type })];
48066
48160
  case 2:
48067
- _a = _c.sent();
48161
+ _a = _b.sent();
48068
48162
  return [3 /*break*/, 5];
48069
48163
  case 3: return [4 /*yield*/, channel.deleteReaction(id, type)];
48070
48164
  case 4:
48071
- _a = _c.sent();
48072
- _c.label = 5;
48165
+ _a = _b.sent();
48166
+ _b.label = 5;
48073
48167
  case 5:
48074
48168
  messageResponse = _a;
48075
48169
  updateMessage(messageResponse.message);
48076
48170
  return [3 /*break*/, 7];
48077
48171
  case 6:
48078
- _c.sent();
48172
+ _b.sent();
48079
48173
  // revert to the original message if the API call fails
48080
48174
  updateMessage(message);
48081
48175
  return [3 /*break*/, 7];
@@ -48130,12 +48224,10 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
48130
48224
  }); };
48131
48225
  };
48132
48226
  var useReactionClick = function (message, reactionSelectorRef, messageWrapperRef, closeReactionSelectorOnClick) {
48133
- var _a;
48134
- var _b = useChannelStateContext('useReactionClick'), channel = _b.channel, _c = _b.channelCapabilities, channelCapabilities = _c === void 0 ? {} : _c, channelConfig = _b.channelConfig;
48135
- var _d = React$2.useState(false), showDetailedReactions = _d[0], setShowDetailedReactions = _d[1];
48227
+ var _a = useChannelStateContext('useReactionClick').channelCapabilities, channelCapabilities = _a === void 0 ? {} : _a;
48228
+ var _b = React$2.useState(false), showDetailedReactions = _b[0], setShowDetailedReactions = _b[1];
48136
48229
  var hasListener = React$2.useRef(false);
48137
- var isFrozen = !!((_a = channel.data) === null || _a === void 0 ? void 0 : _a.frozen);
48138
- var isReactionEnabled = ((channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.reactions) !== false && channelCapabilities['send-reaction']) || isFrozen;
48230
+ var isReactionEnabled = channelCapabilities['send-reaction'];
48139
48231
  var messageDeleted = !!(message === null || message === void 0 ? void 0 : message.deleted_at);
48140
48232
  var closeDetailedReactions = React$2.useCallback(function (event) {
48141
48233
  var _a;
@@ -48183,9 +48275,8 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
48183
48275
  }
48184
48276
  }, [messageDeleted, closeDetailedReactions, messageWrapperRef]);
48185
48277
  var onReactionListClick = function (event) {
48186
- if (event === null || event === void 0 ? void 0 : event.stopPropagation) {
48187
- event.stopPropagation();
48188
- }
48278
+ var _a;
48279
+ (_a = event === null || event === void 0 ? void 0 : event.stopPropagation) === null || _a === void 0 ? void 0 : _a.call(event);
48189
48280
  setShowDetailedReactions(function (prev) { return !prev; });
48190
48281
  };
48191
48282
  return {