stream-chat-react 10.20.0 → 10.21.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 (42) hide show
  1. package/dist/browser.full-bundle.js +84 -59
  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.js +18 -16
  6. package/dist/components/Channel/channelState.d.ts +1 -0
  7. package/dist/components/Channel/channelState.d.ts.map +1 -1
  8. package/dist/components/Channel/channelState.js +2 -2
  9. package/dist/components/ChannelList/ChannelList.d.ts.map +1 -1
  10. package/dist/components/ChannelList/ChannelList.js +2 -1
  11. package/dist/components/ChannelList/hooks/usePaginatedChannels.d.ts.map +1 -1
  12. package/dist/components/ChannelList/hooks/usePaginatedChannels.js +2 -2
  13. package/dist/components/Chat/Chat.d.ts.map +1 -1
  14. package/dist/components/Chat/Chat.js +1 -3
  15. package/dist/components/Chat/hooks/useChat.d.ts +0 -2
  16. package/dist/components/Chat/hooks/useChat.d.ts.map +1 -1
  17. package/dist/components/Chat/hooks/useChat.js +4 -7
  18. package/dist/components/Chat/hooks/useCreateChatContext.d.ts.map +1 -1
  19. package/dist/components/Chat/hooks/useCreateChatContext.js +1 -5
  20. package/dist/components/InfiniteScrollPaginator/InfiniteScroll.js +1 -0
  21. package/dist/components/MessageInput/index.d.ts +1 -0
  22. package/dist/components/MessageInput/index.d.ts.map +1 -1
  23. package/dist/components/MessageInput/index.js +1 -0
  24. package/dist/components/MessageList/index.d.ts +1 -0
  25. package/dist/components/MessageList/index.d.ts.map +1 -1
  26. package/dist/components/MessageList/index.js +1 -0
  27. package/dist/components/MessageList/utils.d.ts.map +1 -1
  28. package/dist/components/MessageList/utils.js +1 -0
  29. package/dist/components/Thread/Thread.js +1 -0
  30. package/dist/context/ChannelListContext.d.ts +23 -0
  31. package/dist/context/ChannelListContext.d.ts.map +1 -0
  32. package/dist/context/ChannelListContext.js +17 -0
  33. package/dist/context/ChatContext.d.ts +2 -11
  34. package/dist/context/ChatContext.d.ts.map +1 -1
  35. package/dist/context/index.d.ts +1 -0
  36. package/dist/context/index.d.ts.map +1 -1
  37. package/dist/context/index.js +1 -0
  38. package/dist/index.cjs.js +54 -36
  39. package/dist/index.cjs.js.map +1 -1
  40. package/dist/version.d.ts +1 -1
  41. package/dist/version.js +1 -1
  42. package/package.json +1 -1
@@ -5277,7 +5277,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
5277
5277
 
5278
5278
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
5279
5279
 
5280
- function _typeof$4(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof$4(obj); }
5280
+ function _typeof$3(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof$3(obj); }
5281
5281
 
5282
5282
  function ownKeys$7(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
5283
5283
 
@@ -5309,7 +5309,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
5309
5309
 
5310
5310
  function _createSuper$4(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$4(); return function _createSuperInternal() { var Super = _getPrototypeOf$1(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf$1(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn$1(this, result); }; }
5311
5311
 
5312
- function _possibleConstructorReturn$1(self, call) { if (call && (_typeof$4(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized$1(self); }
5312
+ function _possibleConstructorReturn$1(self, call) { if (call && (_typeof$3(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized$1(self); }
5313
5313
 
5314
5314
  function _assertThisInitialized$1(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
5315
5315
 
@@ -5321,7 +5321,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
5321
5321
 
5322
5322
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
5323
5323
 
5324
- function _interopRequireWildcard$3(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof$4(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
5324
+ function _interopRequireWildcard$3(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof$3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
5325
5325
 
5326
5326
  var Preview = /*#__PURE__*/(0, _react.lazy)(function () {
5327
5327
  return Promise.resolve().then(function () {
@@ -5610,6 +5610,23 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
5610
5610
  return WithChannelActionContextComponent;
5611
5611
  };
5612
5612
 
5613
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var ChannelListContext = React$2.createContext(undefined);
5614
+ /**
5615
+ * Context provider for components rendered within the `ChannelList`
5616
+ */
5617
+ var ChannelListContextProvider = function (_a) {
5618
+ var children = _a.children, value = _a.value;
5619
+ return (React__default["default"].createElement(ChannelListContext.Provider, { value: value }, children));
5620
+ };
5621
+ var useChannelListContext = function (componentName) {
5622
+ var contextValue = React$2.useContext(ChannelListContext);
5623
+ if (!contextValue) {
5624
+ console.warn("The useChannelListContext hook was called outside of the ChannelListContext provider. Make sure this hook is called within the ChannelList component. The errored call is located in the ".concat(componentName, " component."));
5625
+ return {};
5626
+ }
5627
+ return contextValue;
5628
+ };
5629
+
5613
5630
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var ChannelStateContext = React__default["default"].createContext(undefined);
5614
5631
  var ChannelStateProvider = function (_a) {
5615
5632
  var children = _a.children, value = _a.value;
@@ -5736,23 +5753,28 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
5736
5753
 
5737
5754
  var toPropertyKey = {exports: {}};
5738
5755
 
5739
- var _typeof$3 = {exports: {}};
5756
+ var _typeof$2 = {exports: {}};
5740
5757
 
5741
5758
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
5742
- (function (module) {
5743
- function _typeof(obj) {
5744
- "@babel/helpers - typeof";
5745
-
5746
- return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
5747
- return typeof obj;
5748
- } : function (obj) {
5749
- return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
5750
- }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(obj);
5751
- }
5752
- module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
5753
- } (_typeof$3));
5759
+ var hasRequired_typeof;
5754
5760
 
5755
- var _typeof$2 = /*@__PURE__*/getDefaultExportFromCjs(_typeof$3.exports);
5761
+ function require_typeof () {
5762
+ if (hasRequired_typeof) return _typeof$2.exports;
5763
+ hasRequired_typeof = 1;
5764
+ (function (module) {
5765
+ function _typeof(obj) {
5766
+ "@babel/helpers - typeof";
5767
+
5768
+ return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
5769
+ return typeof obj;
5770
+ } : function (obj) {
5771
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
5772
+ }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(obj);
5773
+ }
5774
+ module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
5775
+ } (_typeof$2));
5776
+ return _typeof$2.exports;
5777
+ }
5756
5778
 
5757
5779
  var toPrimitive = {exports: {}};
5758
5780
 
@@ -5763,7 +5785,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
5763
5785
  if (hasRequiredToPrimitive) return toPrimitive.exports;
5764
5786
  hasRequiredToPrimitive = 1;
5765
5787
  (function (module) {
5766
- var _typeof = _typeof$3.exports["default"];
5788
+ var _typeof = require_typeof()["default"];
5767
5789
  function _toPrimitive(input, hint) {
5768
5790
  if (_typeof(input) !== "object" || input === null) return input;
5769
5791
  var prim = input[Symbol.toPrimitive];
@@ -5786,7 +5808,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
5786
5808
  if (hasRequiredToPropertyKey) return toPropertyKey.exports;
5787
5809
  hasRequiredToPropertyKey = 1;
5788
5810
  (function (module) {
5789
- var _typeof = _typeof$3.exports["default"];
5811
+ var _typeof = require_typeof()["default"];
5790
5812
  var toPrimitive = requireToPrimitive();
5791
5813
  function _toPropertyKey(arg) {
5792
5814
  var key = toPrimitive(arg, "string");
@@ -6035,7 +6057,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
6035
6057
  utils.measureScrollbar = measureScrollbar;
6036
6058
  utils.throttleIdleTask = throttleIdleTask;
6037
6059
 
6038
- var _typeof2 = _interopRequireDefault(_typeof$3.exports);
6060
+ var _typeof2 = _interopRequireDefault(require_typeof());
6039
6061
 
6040
6062
  var _data = requireData();
6041
6063
 
@@ -37404,6 +37426,8 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
37404
37426
 
37405
37427
  var _extendsExports = require_extends();
37406
37428
 
37429
+ var _typeofExports = require_typeof();
37430
+
37407
37431
  var classCallCheckExports = requireClassCallCheck();
37408
37432
 
37409
37433
  var createClassExports = requireCreateClass();
@@ -37493,7 +37517,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
37493
37517
  if (hasRequiredPossibleConstructorReturn) return possibleConstructorReturn.exports;
37494
37518
  hasRequiredPossibleConstructorReturn = 1;
37495
37519
  (function (module) {
37496
- var _typeof = _typeof$3.exports["default"];
37520
+ var _typeof = require_typeof()["default"];
37497
37521
  var assertThisInitialized = requireAssertThisInitialized();
37498
37522
  function _possibleConstructorReturn(self, call) {
37499
37523
  if (call && (_typeof(call) === "object" || typeof call === "function")) {
@@ -38301,7 +38325,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
38301
38325
  if (!currentTrigger || !triggerSettings) return null;
38302
38326
  var output = triggerSettings.output;
38303
38327
  return function (item) {
38304
- if (_typeof$2(item) === 'object' && (!output || typeof output !== 'function')) {
38328
+ if (_typeofExports(item) === 'object' && (!output || typeof output !== 'function')) {
38305
38329
  throw new Error('Output functor is not defined! If you are using items as object you have to define "output" function. https://github.com/webscopeio/react-textarea-autocomplete#trigger-type');
38306
38330
  }
38307
38331
  if (output) {
@@ -39627,8 +39651,8 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
39627
39651
  return __assign(__assign({}, state), { members: __assign({}, channel.state.members), messages: __spreadArray([], channel.state.messages, true), pinnedMessages: __spreadArray([], channel.state.pinnedMessages, true), read: __assign({}, channel.state.read), watcherCount: channel.state.watcher_count, watchers: __assign({}, channel.state.watchers) });
39628
39652
  }
39629
39653
  case 'initStateFromChannel': {
39630
- var channel = action.channel;
39631
- return __assign(__assign({}, state), { loading: false, members: __assign({}, channel.state.members), messages: __spreadArray([], channel.state.messages, true), pinnedMessages: __spreadArray([], channel.state.pinnedMessages, true), read: __assign({}, channel.state.read), watcherCount: channel.state.watcher_count, watchers: __assign({}, channel.state.watchers) });
39654
+ var channel = action.channel, hasMore = action.hasMore;
39655
+ return __assign(__assign({}, state), { hasMore: hasMore, loading: false, members: __assign({}, channel.state.members), messages: __spreadArray([], channel.state.messages, true), pinnedMessages: __spreadArray([], channel.state.pinnedMessages, true), read: __assign({}, channel.state.read), watcherCount: channel.state.watcher_count, watchers: __assign({}, channel.state.watchers) });
39632
39656
  }
39633
39657
  case 'jumpToLatestMessage': {
39634
39658
  return __assign(__assign({}, state), { hasMoreNewer: false, highlightedMessageId: undefined, loading: false, suppressAutoscroll: false });
@@ -45570,6 +45594,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
45570
45594
  var hasMoreMessagesProbably = function (returnedCountMessages, limit) {
45571
45595
  return returnedCountMessages === limit;
45572
45596
  };
45597
+ // @deprecated
45573
45598
  var hasNotMoreMessages = function (returnedCountMessages, limit) {
45574
45599
  return returnedCountMessages < limit;
45575
45600
  };
@@ -45865,6 +45890,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
45865
45890
  /**
45866
45891
  * As the channel state is not normalized we re-fetch the channel data. Thus, we avoid having to search for user references in the channel state.
45867
45892
  */
45893
+ // FIXME: we should use channelQueryOptions if they are available
45868
45894
  return [4 /*yield*/, channel.query({
45869
45895
  messages: { id_lt: oldestID, limit: DEFAULT_NEXT_CHANNEL_PAGE_SIZE },
45870
45896
  watchers: { limit: DEFAULT_NEXT_CHANNEL_PAGE_SIZE },
@@ -45873,6 +45899,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
45873
45899
  /**
45874
45900
  * As the channel state is not normalized we re-fetch the channel data. Thus, we avoid having to search for user references in the channel state.
45875
45901
  */
45902
+ // FIXME: we should use channelQueryOptions if they are available
45876
45903
  _m.sent();
45877
45904
  _m.label = 2;
45878
45905
  case 2:
@@ -45891,14 +45918,14 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
45891
45918
  };
45892
45919
  (function () { return __awaiter(void 0, void 0, void 0, function () {
45893
45920
  var members, _i, _a, member, userId, _b, user, user_id, config, e_1;
45894
- var _c;
45895
- return __generator(this, function (_d) {
45896
- switch (_d.label) {
45921
+ var _c, _d, _e;
45922
+ return __generator(this, function (_f) {
45923
+ switch (_f.label) {
45897
45924
  case 0:
45898
45925
  if (!(!channel.initialized && initializeOnMount)) return [3 /*break*/, 4];
45899
- _d.label = 1;
45926
+ _f.label = 1;
45900
45927
  case 1:
45901
- _d.trys.push([1, 3, , 4]);
45928
+ _f.trys.push([1, 3, , 4]);
45902
45929
  members = [];
45903
45930
  if (!channel.id && ((_c = channel.data) === null || _c === void 0 ? void 0 : _c.members)) {
45904
45931
  for (_i = 0, _a = channel.data.members; _i < _a.length; _i++) {
@@ -45918,12 +45945,12 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
45918
45945
  }
45919
45946
  return [4 /*yield*/, getChannel({ channel: channel, client: client, members: members, options: channelQueryOptions })];
45920
45947
  case 2:
45921
- _d.sent();
45948
+ _f.sent();
45922
45949
  config = channel.getConfig();
45923
45950
  setChannelConfig(config);
45924
45951
  return [3 /*break*/, 4];
45925
45952
  case 3:
45926
- e_1 = _d.sent();
45953
+ e_1 = _f.sent();
45927
45954
  dispatch({ error: e_1, type: 'setError' });
45928
45955
  errored = true;
45929
45956
  return [3 /*break*/, 4];
@@ -45931,7 +45958,11 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
45931
45958
  done = true;
45932
45959
  originalTitle.current = document.title;
45933
45960
  if (!errored) {
45934
- dispatch({ channel: channel, type: 'initStateFromChannel' });
45961
+ dispatch({
45962
+ channel: channel,
45963
+ hasMore: hasMoreMessagesProbably(channel.state.messages.length, (_e = (_d = channelQueryOptions === null || channelQueryOptions === void 0 ? void 0 : channelQueryOptions.messages) === null || _d === void 0 ? void 0 : _d.limit) !== null && _e !== void 0 ? _e : DEFAULT_INITIAL_CHANNEL_PAGE_SIZE),
45964
+ type: 'initStateFromChannel',
45965
+ });
45935
45966
  if (channel.countUnread() > 0)
45936
45967
  markRead();
45937
45968
  // The more complex sync logic is done in Chat
@@ -45986,22 +46017,17 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
45986
46017
  var loadMore = function (limit) {
45987
46018
  if (limit === void 0) { limit = DEFAULT_NEXT_CHANNEL_PAGE_SIZE; }
45988
46019
  return __awaiter(void 0, void 0, void 0, function () {
45989
- var oldestMessage, notHasMore, oldestID, perPage, queryResponse, e_2, hasMoreMessages;
46020
+ var oldestMessage, oldestID, perPage, queryResponse, e_2, hasMoreMessages;
45990
46021
  var _a;
45991
46022
  return __generator(this, function (_b) {
45992
46023
  switch (_b.label) {
45993
46024
  case 0:
45994
- if (!online.current || !window.navigator.onLine)
46025
+ if (!online.current || !window.navigator.onLine || !state.hasMore)
45995
46026
  return [2 /*return*/, 0];
45996
46027
  oldestMessage = (_a = state === null || state === void 0 ? void 0 : state.messages) === null || _a === void 0 ? void 0 : _a[0];
45997
46028
  if (state.loadingMore || state.loadingMoreNewer || (oldestMessage === null || oldestMessage === void 0 ? void 0 : oldestMessage.status) !== 'received') {
45998
46029
  return [2 /*return*/, 0];
45999
46030
  }
46000
- notHasMore = hasNotMoreMessages(channel.state.messages.length, DEFAULT_INITIAL_CHANNEL_PAGE_SIZE);
46001
- if (notHasMore) {
46002
- loadMoreFinished(false, channel.state.messages);
46003
- return [2 /*return*/, channel.state.messages.length];
46004
- }
46005
46031
  dispatch({ loadingMore: true, type: 'setLoadingMore' });
46006
46032
  oldestID = oldestMessage === null || oldestMessage === void 0 ? void 0 : oldestMessage.id;
46007
46033
  perPage = limit;
@@ -46281,6 +46307,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
46281
46307
  return __generator(this, function (_b) {
46282
46308
  switch (_b.label) {
46283
46309
  case 0:
46310
+ // FIXME: should prevent loading more, if state.thread.reply_count === channel.state.threads[parentID].length
46284
46311
  if (state.threadLoadingMore || !state.thread)
46285
46312
  return [2 /*return*/];
46286
46313
  dispatch({ type: 'startLoadingThread' });
@@ -46890,7 +46917,8 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
46890
46917
  var MIN_RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS = 2000;
46891
46918
  var usePaginatedChannels = function (client, filters, sort, options, activeChannelHandler, recoveryThrottleIntervalMs) {
46892
46919
  if (recoveryThrottleIntervalMs === void 0) { recoveryThrottleIntervalMs = RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS; }
46893
- var _a = useChatContext('usePaginatedChannels'), channels = _a.channels, _b = _a.channelsQueryState, error = _b.error, setError = _b.setError, setQueryInProgress = _b.setQueryInProgress, setChannels = _a.setChannels;
46920
+ var _a = useChatContext('usePaginatedChannels').channelsQueryState, error = _a.error, setError = _a.setError, setQueryInProgress = _a.setQueryInProgress;
46921
+ var _b = React$2.useState([]), channels = _b[0], setChannels = _b[1];
46894
46922
  var _c = React$2.useState(true), hasNextPage = _c[0], setHasNextPage = _c[1];
46895
46923
  var lastRecoveryTimestamp = React$2.useRef();
46896
46924
  var recoveryThrottleInterval = recoveryThrottleIntervalMs < MIN_RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS
@@ -46970,7 +46998,6 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
46970
46998
  React$2.useEffect(function () {
46971
46999
  queryChannels('reload');
46972
47000
  }, [filterString, sortString]);
46973
- // FIXME: state refactor (breaking change) is needed - do not forward `channels` and `setChannel`
46974
47001
  return {
46975
47002
  channels: channels,
46976
47003
  hasNextPage: hasNextPage,
@@ -47718,7 +47745,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
47718
47745
  'str-chat-channel-list--open': navOpen,
47719
47746
  });
47720
47747
  var showChannelList = !searchActive || (additionalChannelSearchProps === null || additionalChannelSearchProps === void 0 ? void 0 : additionalChannelSearchProps.popupResults);
47721
- return (React__default["default"].createElement(React__default["default"].Fragment, null,
47748
+ return (React__default["default"].createElement(ChannelListContextProvider, { value: { channels: channels, setChannels: setChannels } },
47722
47749
  React__default["default"].createElement("div", { className: className, ref: channelListRef },
47723
47750
  showChannelSearch && (React__default["default"].createElement(ChannelSearch$1, __assign({ onSearch: onSearch, onSearchExit: onSearchExit, setChannels: setChannels }, additionalChannelSearchProps))),
47724
47751
  showChannelList && (React__default["default"].createElement(List, { error: channelsQueryState.error, loadedChannels: sendChannelsToList ? loadedChannels : undefined, loading: !!channelsQueryState.queryInProgress &&
@@ -47737,7 +47764,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
47737
47764
 
47738
47765
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
47739
47766
 
47740
- window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var version$1 = '10.20.0';
47767
+ window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var version$1 = '10.21.0';
47741
47768
 
47742
47769
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useChat = function (_a) {
47743
47770
  var _b, _c;
@@ -47747,11 +47774,10 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
47747
47774
  tDateTimeParser: defaultDateTimeParser,
47748
47775
  userLanguage: 'en',
47749
47776
  }), translators = _e[0], setTranslators = _e[1];
47750
- var _f = React$2.useState([]), channels = _f[0], setChannels = _f[1];
47751
- var _g = React$2.useState(), channel = _g[0], setChannel = _g[1];
47752
- var _h = React$2.useState([]), mutes = _h[0], setMutes = _h[1];
47753
- var _j = React$2.useState(initialNavOpen), navOpen = _j[0], setNavOpen = _j[1];
47754
- var _k = React$2.useState({}), latestMessageDatesByChannels = _k[0], setLatestMessageDatesByChannels = _k[1];
47777
+ var _f = React$2.useState(), channel = _f[0], setChannel = _f[1];
47778
+ var _g = React$2.useState([]), mutes = _g[0], setMutes = _g[1];
47779
+ var _h = React$2.useState(initialNavOpen), navOpen = _h[0], setNavOpen = _h[1];
47780
+ var _j = React$2.useState({}), latestMessageDatesByChannels = _j[0], setLatestMessageDatesByChannels = _j[1];
47755
47781
  var clientMutes = ((_b = client.user) === null || _b === void 0 ? void 0 : _b.mutes) || [];
47756
47782
  var closeMobileNav = function () { return setNavOpen(false); };
47757
47783
  var openMobileNav = function () { return setTimeout(function () { return setNavOpen(true); }, 100); };
@@ -47822,7 +47848,6 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
47822
47848
  }, [(_c = client.user) === null || _c === void 0 ? void 0 : _c.id]);
47823
47849
  return {
47824
47850
  channel: channel,
47825
- channels: channels,
47826
47851
  closeMobileNav: closeMobileNav,
47827
47852
  getAppSettings: getAppSettings,
47828
47853
  latestMessageDatesByChannels: latestMessageDatesByChannels,
@@ -47830,14 +47855,13 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
47830
47855
  navOpen: navOpen,
47831
47856
  openMobileNav: openMobileNav,
47832
47857
  setActiveChannel: setActiveChannel,
47833
- setChannels: setChannels,
47834
47858
  translators: translators,
47835
47859
  };
47836
47860
  };
47837
47861
 
47838
47862
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useCreateChatContext = function (value) {
47839
47863
  var _a;
47840
- var channel = value.channel, channels = value.channels, channelsQueryState = value.channelsQueryState, client = value.client, closeMobileNav = value.closeMobileNav, customClasses = value.customClasses, getAppSettings = value.getAppSettings, latestMessageDatesByChannels = value.latestMessageDatesByChannels, mutes = value.mutes, navOpen = value.navOpen, openMobileNav = value.openMobileNav, setActiveChannel = value.setActiveChannel, setChannels = value.setChannels, theme = value.theme, themeVersion = value.themeVersion, useImageFlagEmojisOnWindows = value.useImageFlagEmojisOnWindows;
47864
+ var channel = value.channel, channelsQueryState = value.channelsQueryState, client = value.client, closeMobileNav = value.closeMobileNav, customClasses = value.customClasses, getAppSettings = value.getAppSettings, latestMessageDatesByChannels = value.latestMessageDatesByChannels, mutes = value.mutes, navOpen = value.navOpen, openMobileNav = value.openMobileNav, setActiveChannel = value.setActiveChannel, theme = value.theme, themeVersion = value.themeVersion, useImageFlagEmojisOnWindows = value.useImageFlagEmojisOnWindows;
47841
47865
  var channelCid = channel === null || channel === void 0 ? void 0 : channel.cid;
47842
47866
  var channelsQueryError = channelsQueryState.error;
47843
47867
  var channelsQueryInProgress = channelsQueryState.queryInProgress;
@@ -47845,7 +47869,6 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
47845
47869
  var mutedUsersLength = mutes.length;
47846
47870
  var chatContext = React$2.useMemo(function () { return ({
47847
47871
  channel: channel,
47848
- channels: channels,
47849
47872
  channelsQueryState: channelsQueryState,
47850
47873
  client: client,
47851
47874
  closeMobileNav: closeMobileNav,
@@ -47856,7 +47879,6 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
47856
47879
  navOpen: navOpen,
47857
47880
  openMobileNav: openMobileNav,
47858
47881
  setActiveChannel: setActiveChannel,
47859
- setChannels: setChannels,
47860
47882
  theme: theme,
47861
47883
  themeVersion: themeVersion,
47862
47884
  useImageFlagEmojisOnWindows: useImageFlagEmojisOnWindows,
@@ -47864,12 +47886,10 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
47864
47886
  channelCid,
47865
47887
  channelsQueryError,
47866
47888
  channelsQueryInProgress,
47867
- channels,
47868
47889
  clientValues,
47869
47890
  getAppSettings,
47870
47891
  mutedUsersLength,
47871
47892
  navOpen,
47872
- setChannels,
47873
47893
  ]);
47874
47894
  return chatContext;
47875
47895
  };
@@ -47928,7 +47948,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
47928
47948
  */
47929
47949
  var Chat = function (props) {
47930
47950
  var children = props.children, client = props.client, customClasses = props.customClasses, customStyles = props.customStyles, _a = props.darkMode, darkMode = _a === void 0 ? false : _a, defaultLanguage = props.defaultLanguage, i18nInstance = props.i18nInstance, _b = props.initialNavOpen, initialNavOpen = _b === void 0 ? true : _b, _c = props.theme, theme = _c === void 0 ? 'messaging light' : _c, _d = props.useImageFlagEmojisOnWindows, useImageFlagEmojisOnWindows = _d === void 0 ? false : _d;
47931
- var _e = useChat({ client: client, defaultLanguage: defaultLanguage, i18nInstance: i18nInstance, initialNavOpen: initialNavOpen }), channel = _e.channel, channels = _e.channels, closeMobileNav = _e.closeMobileNav, getAppSettings = _e.getAppSettings, latestMessageDatesByChannels = _e.latestMessageDatesByChannels, mutes = _e.mutes, navOpen = _e.navOpen, openMobileNav = _e.openMobileNav, setActiveChannel = _e.setActiveChannel, setChannels = _e.setChannels, translators = _e.translators;
47951
+ var _e = useChat({ client: client, defaultLanguage: defaultLanguage, i18nInstance: i18nInstance, initialNavOpen: initialNavOpen }), channel = _e.channel, closeMobileNav = _e.closeMobileNav, getAppSettings = _e.getAppSettings, latestMessageDatesByChannels = _e.latestMessageDatesByChannels, mutes = _e.mutes, navOpen = _e.navOpen, openMobileNav = _e.openMobileNav, setActiveChannel = _e.setActiveChannel, translators = _e.translators;
47932
47952
  var channelsQueryState = useChannelsQueryState();
47933
47953
  var themeVersion = typeof window !== 'undefined'
47934
47954
  ? (window
@@ -47939,7 +47959,6 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
47939
47959
  useCustomStyles(darkMode ? darkModeTheme : customStyles);
47940
47960
  var chatContextValue = useCreateChatContext({
47941
47961
  channel: channel,
47942
- channels: channels,
47943
47962
  channelsQueryState: channelsQueryState,
47944
47963
  client: client,
47945
47964
  closeMobileNav: closeMobileNav,
@@ -47950,7 +47969,6 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
47950
47969
  navOpen: navOpen,
47951
47970
  openMobileNav: openMobileNav,
47952
47971
  setActiveChannel: setActiveChannel,
47953
- setChannels: setChannels,
47954
47972
  theme: theme,
47955
47973
  themeVersion: themeVersion,
47956
47974
  useImageFlagEmojisOnWindows: useImageFlagEmojisOnWindows,
@@ -48056,6 +48074,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
48056
48074
  }
48057
48075
  if (isLoading)
48058
48076
  return;
48077
+ // FIXME: this triggers loadMore call when a user types messages in thread and the scroll container container expands
48059
48078
  if (reverseOffset < Number(threshold) &&
48060
48079
  typeof loadPreviousPageFn === 'function' &&
48061
48080
  hasPreviousPageFlag) {
@@ -51033,6 +51052,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
51033
51052
  var ThreadMessageList = virtualized ? VirtualizedMessageList : MessageList;
51034
51053
  React$2.useEffect(function () {
51035
51054
  if ((thread === null || thread === void 0 ? void 0 : thread.id) && (thread === null || thread === void 0 ? void 0 : thread.reply_count)) {
51055
+ // FIXME: integrators can customize channel query options but cannot customize channel.getReplies() options
51036
51056
  loadMoreThread();
51037
51057
  }
51038
51058
  }, []);
@@ -51498,7 +51518,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
51498
51518
 
51499
51519
  window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
51500
51520
  (function (module) {
51501
- var _typeof = _typeof$3.exports["default"];
51521
+ var _typeof = require_typeof()["default"];
51502
51522
  function _getRequireWildcardCache(nodeInterop) {
51503
51523
  if (typeof WeakMap !== "function") return null;
51504
51524
  var cacheBabelInterop = new WeakMap();
@@ -77835,6 +77855,8 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
77835
77855
  exports.ChannelActionProvider = ChannelActionProvider;
77836
77856
  exports.ChannelHeader = ChannelHeader;
77837
77857
  exports.ChannelList = ChannelList;
77858
+ exports.ChannelListContext = ChannelListContext;
77859
+ exports.ChannelListContextProvider = ChannelListContextProvider;
77838
77860
  exports.ChannelListMessenger = ChannelListMessenger;
77839
77861
  exports.ChannelPreview = ChannelPreview;
77840
77862
  exports.ChannelPreviewMessenger = ChannelPreviewMessenger;
@@ -77882,6 +77904,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
77882
77904
  exports.ImageContainer = ImageContainer;
77883
77905
  exports.InfiniteScroll = InfiniteScroll;
77884
77906
  exports.LinkIcon = LinkIcon;
77907
+ exports.LinkPreviewList = LinkPreviewList;
77885
77908
  exports.LoadMoreButton = LoadMoreButton;
77886
77909
  exports.LoadMorePaginator = LoadMorePaginator;
77887
77910
  exports.LoadingChannels = LoadingChannels;
@@ -77907,6 +77930,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
77907
77930
  exports.MessageList = MessageList;
77908
77931
  exports.MessageListContext = MessageListContext;
77909
77932
  exports.MessageListContextProvider = MessageListContextProvider;
77933
+ exports.MessageListNotifications = MessageListNotifications;
77910
77934
  exports.MessageNotification = MessageNotification;
77911
77935
  exports.MessageOptions = MessageOptions;
77912
77936
  exports.MessageProvider = MessageProvider;
@@ -78046,6 +78070,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
78046
78070
  exports.useChannelDeletedListener = useChannelDeletedListener;
78047
78071
  exports.useChannelEditMessageHandler = useEditMessageHandler;
78048
78072
  exports.useChannelHiddenListener = useChannelHiddenListener;
78073
+ exports.useChannelListContext = useChannelListContext;
78049
78074
  exports.useChannelMentionsHandler = useMentionsHandlers;
78050
78075
  exports.useChannelPreviewInfo = useChannelPreviewInfo;
78051
78076
  exports.useChannelStateContext = useChannelStateContext;