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
package/dist/index.cjs.js CHANGED
@@ -259,6 +259,23 @@ var withChannelActionContext = function (Component) {
259
259
  return WithChannelActionContextComponent;
260
260
  };
261
261
 
262
+ var ChannelListContext = React.createContext(undefined);
263
+ /**
264
+ * Context provider for components rendered within the `ChannelList`
265
+ */
266
+ var ChannelListContextProvider = function (_a) {
267
+ var children = _a.children, value = _a.value;
268
+ return (React__default["default"].createElement(ChannelListContext.Provider, { value: value }, children));
269
+ };
270
+ var useChannelListContext = function (componentName) {
271
+ var contextValue = React.useContext(ChannelListContext);
272
+ if (!contextValue) {
273
+ 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."));
274
+ return {};
275
+ }
276
+ return contextValue;
277
+ };
278
+
262
279
  var ChannelStateContext = React__default["default"].createContext(undefined);
263
280
  var ChannelStateProvider = function (_a) {
264
281
  var children = _a.children, value = _a.value;
@@ -27341,8 +27358,8 @@ var channelReducer = function (state, action) {
27341
27358
  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) });
27342
27359
  }
27343
27360
  case 'initStateFromChannel': {
27344
- var channel = action.channel;
27345
- 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) });
27361
+ var channel = action.channel, hasMore = action.hasMore;
27362
+ 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) });
27346
27363
  }
27347
27364
  case 'jumpToLatestMessage': {
27348
27365
  return __assign(__assign({}, state), { hasMoreNewer: false, highlightedMessageId: undefined, loading: false, suppressAutoscroll: false });
@@ -32965,6 +32982,7 @@ var getGroupStyles = function (message, previousMessage, nextMessage, noGroupByU
32965
32982
  var hasMoreMessagesProbably = function (returnedCountMessages, limit) {
32966
32983
  return returnedCountMessages === limit;
32967
32984
  };
32985
+ // @deprecated
32968
32986
  var hasNotMoreMessages = function (returnedCountMessages, limit) {
32969
32987
  return returnedCountMessages < limit;
32970
32988
  };
@@ -33260,6 +33278,7 @@ var ChannelInner = function (props) {
33260
33278
  /**
33261
33279
  * 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.
33262
33280
  */
33281
+ // FIXME: we should use channelQueryOptions if they are available
33263
33282
  return [4 /*yield*/, channel.query({
33264
33283
  messages: { id_lt: oldestID, limit: DEFAULT_NEXT_CHANNEL_PAGE_SIZE },
33265
33284
  watchers: { limit: DEFAULT_NEXT_CHANNEL_PAGE_SIZE },
@@ -33268,6 +33287,7 @@ var ChannelInner = function (props) {
33268
33287
  /**
33269
33288
  * 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.
33270
33289
  */
33290
+ // FIXME: we should use channelQueryOptions if they are available
33271
33291
  _m.sent();
33272
33292
  _m.label = 2;
33273
33293
  case 2:
@@ -33286,14 +33306,14 @@ var ChannelInner = function (props) {
33286
33306
  };
33287
33307
  (function () { return __awaiter(void 0, void 0, void 0, function () {
33288
33308
  var members, _i, _a, member, userId, _b, user, user_id, config, e_1;
33289
- var _c;
33290
- return __generator(this, function (_d) {
33291
- switch (_d.label) {
33309
+ var _c, _d, _e;
33310
+ return __generator(this, function (_f) {
33311
+ switch (_f.label) {
33292
33312
  case 0:
33293
33313
  if (!(!channel.initialized && initializeOnMount)) return [3 /*break*/, 4];
33294
- _d.label = 1;
33314
+ _f.label = 1;
33295
33315
  case 1:
33296
- _d.trys.push([1, 3, , 4]);
33316
+ _f.trys.push([1, 3, , 4]);
33297
33317
  members = [];
33298
33318
  if (!channel.id && ((_c = channel.data) === null || _c === void 0 ? void 0 : _c.members)) {
33299
33319
  for (_i = 0, _a = channel.data.members; _i < _a.length; _i++) {
@@ -33313,12 +33333,12 @@ var ChannelInner = function (props) {
33313
33333
  }
33314
33334
  return [4 /*yield*/, getChannel({ channel: channel, client: client, members: members, options: channelQueryOptions })];
33315
33335
  case 2:
33316
- _d.sent();
33336
+ _f.sent();
33317
33337
  config = channel.getConfig();
33318
33338
  setChannelConfig(config);
33319
33339
  return [3 /*break*/, 4];
33320
33340
  case 3:
33321
- e_1 = _d.sent();
33341
+ e_1 = _f.sent();
33322
33342
  dispatch({ error: e_1, type: 'setError' });
33323
33343
  errored = true;
33324
33344
  return [3 /*break*/, 4];
@@ -33326,7 +33346,11 @@ var ChannelInner = function (props) {
33326
33346
  done = true;
33327
33347
  originalTitle.current = document.title;
33328
33348
  if (!errored) {
33329
- dispatch({ channel: channel, type: 'initStateFromChannel' });
33349
+ dispatch({
33350
+ channel: channel,
33351
+ 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),
33352
+ type: 'initStateFromChannel',
33353
+ });
33330
33354
  if (channel.countUnread() > 0)
33331
33355
  markRead();
33332
33356
  // The more complex sync logic is done in Chat
@@ -33381,22 +33405,17 @@ var ChannelInner = function (props) {
33381
33405
  var loadMore = function (limit) {
33382
33406
  if (limit === void 0) { limit = DEFAULT_NEXT_CHANNEL_PAGE_SIZE; }
33383
33407
  return __awaiter(void 0, void 0, void 0, function () {
33384
- var oldestMessage, notHasMore, oldestID, perPage, queryResponse, e_2, hasMoreMessages;
33408
+ var oldestMessage, oldestID, perPage, queryResponse, e_2, hasMoreMessages;
33385
33409
  var _a;
33386
33410
  return __generator(this, function (_b) {
33387
33411
  switch (_b.label) {
33388
33412
  case 0:
33389
- if (!online.current || !window.navigator.onLine)
33413
+ if (!online.current || !window.navigator.onLine || !state.hasMore)
33390
33414
  return [2 /*return*/, 0];
33391
33415
  oldestMessage = (_a = state === null || state === void 0 ? void 0 : state.messages) === null || _a === void 0 ? void 0 : _a[0];
33392
33416
  if (state.loadingMore || state.loadingMoreNewer || (oldestMessage === null || oldestMessage === void 0 ? void 0 : oldestMessage.status) !== 'received') {
33393
33417
  return [2 /*return*/, 0];
33394
33418
  }
33395
- notHasMore = hasNotMoreMessages(channel.state.messages.length, DEFAULT_INITIAL_CHANNEL_PAGE_SIZE);
33396
- if (notHasMore) {
33397
- loadMoreFinished(false, channel.state.messages);
33398
- return [2 /*return*/, channel.state.messages.length];
33399
- }
33400
33419
  dispatch({ loadingMore: true, type: 'setLoadingMore' });
33401
33420
  oldestID = oldestMessage === null || oldestMessage === void 0 ? void 0 : oldestMessage.id;
33402
33421
  perPage = limit;
@@ -33676,6 +33695,7 @@ var ChannelInner = function (props) {
33676
33695
  return __generator(this, function (_b) {
33677
33696
  switch (_b.label) {
33678
33697
  case 0:
33698
+ // FIXME: should prevent loading more, if state.thread.reply_count === channel.state.threads[parentID].length
33679
33699
  if (state.threadLoadingMore || !state.thread)
33680
33700
  return [2 /*return*/];
33681
33701
  dispatch({ type: 'startLoadingThread' });
@@ -34281,7 +34301,8 @@ var RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS = 5000;
34281
34301
  var MIN_RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS = 2000;
34282
34302
  var usePaginatedChannels = function (client, filters, sort, options, activeChannelHandler, recoveryThrottleIntervalMs) {
34283
34303
  if (recoveryThrottleIntervalMs === void 0) { recoveryThrottleIntervalMs = RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS; }
34284
- var _a = useChatContext('usePaginatedChannels'), channels = _a.channels, _b = _a.channelsQueryState, error = _b.error, setError = _b.setError, setQueryInProgress = _b.setQueryInProgress, setChannels = _a.setChannels;
34304
+ var _a = useChatContext('usePaginatedChannels').channelsQueryState, error = _a.error, setError = _a.setError, setQueryInProgress = _a.setQueryInProgress;
34305
+ var _b = React.useState([]), channels = _b[0], setChannels = _b[1];
34285
34306
  var _c = React.useState(true), hasNextPage = _c[0], setHasNextPage = _c[1];
34286
34307
  var lastRecoveryTimestamp = React.useRef();
34287
34308
  var recoveryThrottleInterval = recoveryThrottleIntervalMs < MIN_RECOVER_LOADED_CHANNELS_THROTTLE_INTERVAL_IN_MS
@@ -34361,7 +34382,6 @@ var usePaginatedChannels = function (client, filters, sort, options, activeChann
34361
34382
  React.useEffect(function () {
34362
34383
  queryChannels('reload');
34363
34384
  }, [filterString, sortString]);
34364
- // FIXME: state refactor (breaking change) is needed - do not forward `channels` and `setChannel`
34365
34385
  return {
34366
34386
  channels: channels,
34367
34387
  hasNextPage: hasNextPage,
@@ -35103,7 +35123,7 @@ var UnMemoizedChannelList = function (props) {
35103
35123
  'str-chat-channel-list--open': navOpen,
35104
35124
  });
35105
35125
  var showChannelList = !searchActive || (additionalChannelSearchProps === null || additionalChannelSearchProps === void 0 ? void 0 : additionalChannelSearchProps.popupResults);
35106
- return (React__default["default"].createElement(React__default["default"].Fragment, null,
35126
+ return (React__default["default"].createElement(ChannelListContextProvider, { value: { channels: channels, setChannels: setChannels } },
35107
35127
  React__default["default"].createElement("div", { className: className, ref: channelListRef },
35108
35128
  showChannelSearch && (React__default["default"].createElement(ChannelSearch$1, __assign({ onSearch: onSearch, onSearchExit: onSearchExit, setChannels: setChannels }, additionalChannelSearchProps))),
35109
35129
  showChannelList && (React__default["default"].createElement(List, { error: channelsQueryState.error, loadedChannels: sendChannelsToList ? loadedChannels : undefined, loading: !!channelsQueryState.queryInProgress &&
@@ -35116,7 +35136,7 @@ var UnMemoizedChannelList = function (props) {
35116
35136
  */
35117
35137
  var ChannelList = React__default["default"].memo(UnMemoizedChannelList);
35118
35138
 
35119
- var version = '10.20.0';
35139
+ var version = '10.21.0';
35120
35140
 
35121
35141
  var useChat = function (_a) {
35122
35142
  var _b, _c;
@@ -35126,11 +35146,10 @@ var useChat = function (_a) {
35126
35146
  tDateTimeParser: defaultDateTimeParser,
35127
35147
  userLanguage: 'en',
35128
35148
  }), translators = _e[0], setTranslators = _e[1];
35129
- var _f = React.useState([]), channels = _f[0], setChannels = _f[1];
35130
- var _g = React.useState(), channel = _g[0], setChannel = _g[1];
35131
- var _h = React.useState([]), mutes = _h[0], setMutes = _h[1];
35132
- var _j = React.useState(initialNavOpen), navOpen = _j[0], setNavOpen = _j[1];
35133
- var _k = React.useState({}), latestMessageDatesByChannels = _k[0], setLatestMessageDatesByChannels = _k[1];
35149
+ var _f = React.useState(), channel = _f[0], setChannel = _f[1];
35150
+ var _g = React.useState([]), mutes = _g[0], setMutes = _g[1];
35151
+ var _h = React.useState(initialNavOpen), navOpen = _h[0], setNavOpen = _h[1];
35152
+ var _j = React.useState({}), latestMessageDatesByChannels = _j[0], setLatestMessageDatesByChannels = _j[1];
35134
35153
  var clientMutes = ((_b = client.user) === null || _b === void 0 ? void 0 : _b.mutes) || [];
35135
35154
  var closeMobileNav = function () { return setNavOpen(false); };
35136
35155
  var openMobileNav = function () { return setTimeout(function () { return setNavOpen(true); }, 100); };
@@ -35201,7 +35220,6 @@ var useChat = function (_a) {
35201
35220
  }, [(_c = client.user) === null || _c === void 0 ? void 0 : _c.id]);
35202
35221
  return {
35203
35222
  channel: channel,
35204
- channels: channels,
35205
35223
  closeMobileNav: closeMobileNav,
35206
35224
  getAppSettings: getAppSettings,
35207
35225
  latestMessageDatesByChannels: latestMessageDatesByChannels,
@@ -35209,14 +35227,13 @@ var useChat = function (_a) {
35209
35227
  navOpen: navOpen,
35210
35228
  openMobileNav: openMobileNav,
35211
35229
  setActiveChannel: setActiveChannel,
35212
- setChannels: setChannels,
35213
35230
  translators: translators,
35214
35231
  };
35215
35232
  };
35216
35233
 
35217
35234
  var useCreateChatContext = function (value) {
35218
35235
  var _a;
35219
- 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;
35236
+ 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;
35220
35237
  var channelCid = channel === null || channel === void 0 ? void 0 : channel.cid;
35221
35238
  var channelsQueryError = channelsQueryState.error;
35222
35239
  var channelsQueryInProgress = channelsQueryState.queryInProgress;
@@ -35224,7 +35241,6 @@ var useCreateChatContext = function (value) {
35224
35241
  var mutedUsersLength = mutes.length;
35225
35242
  var chatContext = React.useMemo(function () { return ({
35226
35243
  channel: channel,
35227
- channels: channels,
35228
35244
  channelsQueryState: channelsQueryState,
35229
35245
  client: client,
35230
35246
  closeMobileNav: closeMobileNav,
@@ -35235,7 +35251,6 @@ var useCreateChatContext = function (value) {
35235
35251
  navOpen: navOpen,
35236
35252
  openMobileNav: openMobileNav,
35237
35253
  setActiveChannel: setActiveChannel,
35238
- setChannels: setChannels,
35239
35254
  theme: theme,
35240
35255
  themeVersion: themeVersion,
35241
35256
  useImageFlagEmojisOnWindows: useImageFlagEmojisOnWindows,
@@ -35243,12 +35258,10 @@ var useCreateChatContext = function (value) {
35243
35258
  channelCid,
35244
35259
  channelsQueryError,
35245
35260
  channelsQueryInProgress,
35246
- channels,
35247
35261
  clientValues,
35248
35262
  getAppSettings,
35249
35263
  mutedUsersLength,
35250
35264
  navOpen,
35251
- setChannels,
35252
35265
  ]);
35253
35266
  return chatContext;
35254
35267
  };
@@ -35307,7 +35320,7 @@ var useCustomStyles = function (customStyles) {
35307
35320
  */
35308
35321
  var Chat = function (props) {
35309
35322
  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;
35310
- 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;
35323
+ 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;
35311
35324
  var channelsQueryState = useChannelsQueryState();
35312
35325
  var themeVersion = typeof window !== 'undefined'
35313
35326
  ? (window
@@ -35318,7 +35331,6 @@ var Chat = function (props) {
35318
35331
  useCustomStyles(darkMode ? darkModeTheme : customStyles);
35319
35332
  var chatContextValue = useCreateChatContext({
35320
35333
  channel: channel,
35321
- channels: channels,
35322
35334
  channelsQueryState: channelsQueryState,
35323
35335
  client: client,
35324
35336
  closeMobileNav: closeMobileNav,
@@ -35329,7 +35341,6 @@ var Chat = function (props) {
35329
35341
  navOpen: navOpen,
35330
35342
  openMobileNav: openMobileNav,
35331
35343
  setActiveChannel: setActiveChannel,
35332
- setChannels: setChannels,
35333
35344
  theme: theme,
35334
35345
  themeVersion: themeVersion,
35335
35346
  useImageFlagEmojisOnWindows: useImageFlagEmojisOnWindows,
@@ -35423,6 +35434,7 @@ var InfiniteScroll = function (props) {
35423
35434
  }
35424
35435
  if (isLoading)
35425
35436
  return;
35437
+ // FIXME: this triggers loadMore call when a user types messages in thread and the scroll container container expands
35426
35438
  if (reverseOffset < Number(threshold) &&
35427
35439
  typeof loadPreviousPageFn === 'function' &&
35428
35440
  hasPreviousPageFlag) {
@@ -37171,6 +37183,7 @@ var ThreadInner = function (props) {
37171
37183
  var ThreadMessageList = virtualized ? VirtualizedMessageList : MessageList;
37172
37184
  React.useEffect(function () {
37173
37185
  if ((thread === null || thread === void 0 ? void 0 : thread.id) && (thread === null || thread === void 0 ? void 0 : thread.reply_count)) {
37186
+ // FIXME: integrators can customize channel query options but cannot customize channel.getReplies() options
37174
37187
  loadMoreThread();
37175
37188
  }
37176
37189
  }, []);
@@ -37238,6 +37251,8 @@ exports.ChannelActionContext = ChannelActionContext;
37238
37251
  exports.ChannelActionProvider = ChannelActionProvider;
37239
37252
  exports.ChannelHeader = ChannelHeader;
37240
37253
  exports.ChannelList = ChannelList;
37254
+ exports.ChannelListContext = ChannelListContext;
37255
+ exports.ChannelListContextProvider = ChannelListContextProvider;
37241
37256
  exports.ChannelListMessenger = ChannelListMessenger;
37242
37257
  exports.ChannelPreview = ChannelPreview;
37243
37258
  exports.ChannelPreviewMessenger = ChannelPreviewMessenger;
@@ -37285,6 +37300,7 @@ exports.ImageComponent = ImageComponent;
37285
37300
  exports.ImageContainer = ImageContainer;
37286
37301
  exports.InfiniteScroll = InfiniteScroll;
37287
37302
  exports.LinkIcon = LinkIcon;
37303
+ exports.LinkPreviewList = LinkPreviewList;
37288
37304
  exports.LoadMoreButton = LoadMoreButton;
37289
37305
  exports.LoadMorePaginator = LoadMorePaginator;
37290
37306
  exports.LoadingChannels = LoadingChannels;
@@ -37310,6 +37326,7 @@ exports.MessageInputSmall = MessageInputSmall;
37310
37326
  exports.MessageList = MessageList;
37311
37327
  exports.MessageListContext = MessageListContext;
37312
37328
  exports.MessageListContextProvider = MessageListContextProvider;
37329
+ exports.MessageListNotifications = MessageListNotifications;
37313
37330
  exports.MessageNotification = MessageNotification;
37314
37331
  exports.MessageOptions = MessageOptions;
37315
37332
  exports.MessageProvider = MessageProvider;
@@ -37449,6 +37466,7 @@ exports.useChannelActionContext = useChannelActionContext;
37449
37466
  exports.useChannelDeletedListener = useChannelDeletedListener;
37450
37467
  exports.useChannelEditMessageHandler = useEditMessageHandler;
37451
37468
  exports.useChannelHiddenListener = useChannelHiddenListener;
37469
+ exports.useChannelListContext = useChannelListContext;
37452
37470
  exports.useChannelMentionsHandler = useMentionsHandlers;
37453
37471
  exports.useChannelPreviewInfo = useChannelPreviewInfo;
37454
37472
  exports.useChannelStateContext = useChannelStateContext;