stream-chat-react 6.7.0 → 6.9.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 (104) hide show
  1. package/README.md +1 -1
  2. package/dist/browser.full-bundle.js +3989 -1360
  3. package/dist/browser.full-bundle.js.map +1 -1
  4. package/dist/browser.full-bundle.min.js +10 -3
  5. package/dist/browser.full-bundle.min.js.map +1 -1
  6. package/dist/components/AutoCompleteTextarea/Textarea.js +1 -1
  7. package/dist/components/Avatar/Avatar.d.ts.map +1 -1
  8. package/dist/components/Avatar/Avatar.js +3 -1
  9. package/dist/components/Channel/Channel.d.ts +4 -0
  10. package/dist/components/Channel/Channel.d.ts.map +1 -1
  11. package/dist/components/Channel/Channel.js +69 -94
  12. package/dist/components/Channel/hooks/useCreateChannelStateContext.d.ts +15 -0
  13. package/dist/components/Channel/hooks/useCreateChannelStateContext.d.ts.map +1 -0
  14. package/dist/components/Channel/hooks/useCreateChannelStateContext.js +87 -0
  15. package/dist/components/Channel/hooks/useCreateTypingContext.d.ts +4 -0
  16. package/dist/components/Channel/hooks/useCreateTypingContext.d.ts.map +1 -0
  17. package/dist/components/Channel/hooks/useCreateTypingContext.js +9 -0
  18. package/dist/components/ChannelList/ChannelList.d.ts +3 -3
  19. package/dist/components/ChannelList/ChannelList.d.ts.map +1 -1
  20. package/dist/components/ChannelList/ChannelList.js +3 -3
  21. package/dist/components/ChannelList/hooks/useNotificationAddedToChannelListener.d.ts +1 -1
  22. package/dist/components/ChannelList/hooks/useNotificationAddedToChannelListener.d.ts.map +1 -1
  23. package/dist/components/ChannelList/hooks/useNotificationAddedToChannelListener.js +3 -2
  24. package/dist/components/ChannelList/hooks/useNotificationMessageNewListener.d.ts +1 -1
  25. package/dist/components/ChannelList/hooks/useNotificationMessageNewListener.d.ts.map +1 -1
  26. package/dist/components/ChannelList/hooks/useNotificationMessageNewListener.js +4 -6
  27. package/dist/components/ChannelList/hooks/usePaginatedChannels.d.ts +0 -1
  28. package/dist/components/ChannelList/hooks/usePaginatedChannels.d.ts.map +1 -1
  29. package/dist/components/ChannelList/hooks/usePaginatedChannels.js +7 -15
  30. package/dist/components/ChannelPreview/ChannelPreview.d.ts.map +1 -1
  31. package/dist/components/ChannelPreview/ChannelPreview.js +10 -0
  32. package/dist/components/Chat/Chat.d.ts.map +1 -1
  33. package/dist/components/Chat/Chat.js +14 -12
  34. package/dist/components/Chat/hooks/useChat.js +1 -1
  35. package/dist/components/Chat/hooks/useCreateChatContext.d.ts +4 -0
  36. package/dist/components/Chat/hooks/useCreateChatContext.d.ts.map +1 -0
  37. package/dist/components/Chat/hooks/useCreateChatContext.js +21 -0
  38. package/dist/components/Message/hooks/useReactionHandler.d.ts +1 -1
  39. package/dist/components/Message/hooks/useReactionHandler.d.ts.map +1 -1
  40. package/dist/components/Message/hooks/useReactionHandler.js +1 -5
  41. package/dist/components/MessageInput/DefaultTriggerProvider.d.ts.map +1 -1
  42. package/dist/components/MessageInput/DefaultTriggerProvider.js +1 -0
  43. package/dist/components/MessageInput/MessageInput.d.ts +3 -1
  44. package/dist/components/MessageInput/MessageInput.d.ts.map +1 -1
  45. package/dist/components/MessageInput/MessageInput.js +2 -1
  46. package/dist/components/MessageInput/hooks/useCreateMessageInputContext.d.ts +4 -0
  47. package/dist/components/MessageInput/hooks/useCreateMessageInputContext.d.ts.map +1 -0
  48. package/dist/components/MessageInput/hooks/useCreateMessageInputContext.js +88 -0
  49. package/dist/components/MessageInput/hooks/useMessageInputState.d.ts +1 -0
  50. package/dist/components/MessageInput/hooks/useMessageInputState.d.ts.map +1 -1
  51. package/dist/components/MessageInput/hooks/useMessageInputState.js +6 -1
  52. package/dist/components/MessageInput/hooks/useMessageInputText.js +1 -1
  53. package/dist/components/MessageInput/hooks/useSubmitHandler.d.ts.map +1 -1
  54. package/dist/components/MessageInput/hooks/useSubmitHandler.js +2 -1
  55. package/dist/components/MessageInput/hooks/useUserTrigger.d.ts +1 -0
  56. package/dist/components/MessageInput/hooks/useUserTrigger.d.ts.map +1 -1
  57. package/dist/components/MessageInput/hooks/useUserTrigger.js +19 -13
  58. package/dist/components/MessageInput/hooks/utils.d.ts +15 -0
  59. package/dist/components/MessageInput/hooks/utils.d.ts.map +1 -0
  60. package/dist/components/MessageInput/hooks/utils.js +114 -0
  61. package/dist/components/MessageList/VirtualizedMessageList.d.ts +4 -2
  62. package/dist/components/MessageList/VirtualizedMessageList.d.ts.map +1 -1
  63. package/dist/components/MessageList/VirtualizedMessageList.js +2 -2
  64. package/dist/css/index.css +1 -7329
  65. package/dist/index.cjs.js +449 -175
  66. package/dist/index.cjs.js.map +1 -1
  67. package/dist/scss/ActionsBox.scss +2 -0
  68. package/dist/scss/Attachment.scss +4 -0
  69. package/dist/scss/AttachmentActions.scss +1 -0
  70. package/dist/scss/Audio.scss +2 -0
  71. package/dist/scss/Avatar.scss +2 -0
  72. package/dist/scss/Card.scss +6 -2
  73. package/dist/scss/ChannelHeader.scss +22 -3
  74. package/dist/scss/ChannelList.scss +5 -6
  75. package/dist/scss/ChannelSearch.scss +2 -4
  76. package/dist/scss/ChatDown.scss +1 -0
  77. package/dist/scss/DateSeparator.scss +3 -0
  78. package/dist/scss/EditMessageForm.scss +4 -0
  79. package/dist/scss/EventComponent.scss +4 -0
  80. package/dist/scss/Gallery.scss +7 -1
  81. package/dist/scss/LoadMoreButton.scss +1 -0
  82. package/dist/scss/Message.scss +78 -2
  83. package/dist/scss/MessageInput.scss +3 -0
  84. package/dist/scss/MessageInputFlat.scss +8 -1
  85. package/dist/scss/MessageList.scss +10 -0
  86. package/dist/scss/MessageRepliesCountButton.scss +1 -0
  87. package/dist/scss/MessageTeam.scss +3 -7
  88. package/dist/scss/Modal.scss +3 -0
  89. package/dist/scss/ReactionList.scss +18 -18
  90. package/dist/scss/ReactionSelector.scss +4 -0
  91. package/dist/scss/SimpleReactionsList.scss +2 -1
  92. package/dist/scss/Thread.scss +19 -0
  93. package/dist/scss/TypingIndicator.scss +7 -0
  94. package/dist/scss/VirtualMessage.scss +8 -7
  95. package/dist/scss/_base.scss +17 -2
  96. package/dist/utils.d.ts +2 -2
  97. package/dist/utils.d.ts.map +1 -1
  98. package/dist/utils.js +22 -15
  99. package/dist/version.d.ts +1 -1
  100. package/dist/version.js +1 -1
  101. package/package.json +10 -29
  102. package/CHANGELOG.md +0 -1534
  103. package/dist/css/index.js +0 -1
  104. package/dist/css/index.min.css +0 -1
@@ -216,7 +216,7 @@ var ReactTextareaAutocomplete = /** @class */ (function (_super) {
216
216
  text: textToReplace,
217
217
  };
218
218
  }
219
- if (!textToReplace.text) {
219
+ if (!textToReplace.text && currentTrigger !== ':') {
220
220
  throw new Error("Output \"text\" is not defined! Object should has shape {text: string, caretPosition: string | number}. Check the implementation for trigger \"" + currentTrigger + "\" and its token \"" + actualToken + "\"\n");
221
221
  }
222
222
  if (!textToReplace.caretPosition) {
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/Avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,oBAAY,WAAW,CAAC,EAAE,SAAS,eAAe,CAAC,EAAE,CAAC,GAAG,eAAe,IAAI;IAC1E,yFAAyF;IACzF,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,kBAAkB,KAAK,IAAI,CAAC;IACpD,8BAA8B;IAC9B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,kBAAkB,KAAK,IAAI,CAAC;IACxD;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IACxC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,IAAI,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,gJA2DlB,CAAC"}
1
+ {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/Avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,oBAAY,WAAW,CAAC,EAAE,SAAS,eAAe,CAAC,EAAE,CAAC,GAAG,eAAe,IAAI;IAC1E,yFAAyF;IACzF,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,kBAAkB,KAAK,IAAI,CAAC;IACpD,8BAA8B;IAC9B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,kBAAkB,KAAK,IAAI,CAAC;IACxD;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IACxC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,IAAI,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,gJA4DlB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import React, { useEffect, useState } from 'react';
2
+ import { getWholeChar } from '../../utils';
2
3
  /**
3
4
  * A round avatar image with fallback to username's first letter
4
5
  */
@@ -10,7 +11,8 @@ export var Avatar = function (props) {
10
11
  setError(false);
11
12
  setLoaded(false);
12
13
  }, [image]);
13
- var initials = ((name === null || name === void 0 ? void 0 : name.toString()) || '').charAt(0);
14
+ var nameStr = (name === null || name === void 0 ? void 0 : name.toString()) || '';
15
+ var initials = getWholeChar(nameStr, 0);
14
16
  return (React.createElement("div", { className: "str-chat__avatar str-chat__avatar--" + shape, "data-testid": 'avatar', onClick: onClick, onMouseOver: onMouseOver, style: {
15
17
  flexBasis: size + "px",
16
18
  fontSize: size / 2 + "px",
@@ -9,6 +9,8 @@ import type { DefaultAttachmentType, DefaultChannelType, DefaultCommandType, Def
9
9
  export declare type ChannelProps<At extends DefaultAttachmentType = DefaultAttachmentType, Ch extends DefaultChannelType = DefaultChannelType, Co extends DefaultCommandType = DefaultCommandType, Ev extends DefaultEventType = DefaultEventType, Me extends DefaultMessageType = DefaultMessageType, Re extends DefaultReactionType = DefaultReactionType, Us extends DefaultUserType<Us> = DefaultUserType> = {
10
10
  /** List of accepted file types */
11
11
  acceptedFiles?: string[];
12
+ /** Custom handler function that runs when the active channel has unread messages (i.e., when chat is running on a separate browser tab) */
13
+ activeUnreadHandler?: (unread: number, documentTitle: string) => void;
12
14
  /** Custom UI component to display a message attachment, defaults to and accepts same props as: [Attachment](https://github.com/GetStream/stream-chat-react/blob/master/src/components/Attachment/Attachment.tsx) */
13
15
  Attachment?: ComponentContextValue<At, Ch, Co, Ev, Me, Re, Us>['Attachment'];
14
16
  /** Optional UI component to override the default suggestion Header component, defaults to and accepts same props as: [Header](https://github.com/GetStream/stream-chat-react/blob/master/src/components/AutoCompleteTextarea/Header.tsx) */
@@ -97,6 +99,8 @@ export declare type ChannelProps<At extends DefaultAttachmentType = DefaultAttac
97
99
  ReactionsList?: ComponentContextValue<At, Ch, Co, Ev, Me, Re, Us>['ReactionsList'];
98
100
  /** Custom UI component for send button, defaults to and accepts same props as: [SendButton](https://github.com/GetStream/stream-chat-react/blob/master/src/components/MessageInput/icons.tsx) */
99
101
  SendButton?: ComponentContextValue<At, Ch, Co, Ev, Me, Re, Us>['SendButton'];
102
+ /** If true, skips the message data string comparison used to memoize the current channel messages (helpful for channels with 1000s of messages) */
103
+ skipMessageDataMemoization?: boolean;
100
104
  /** Custom UI component to display the header of a `Thread`, defaults to and accepts same props as: [DefaultThreadHeader](https://github.com/GetStream/stream-chat-react/blob/master/src/components/Thread/Thread.tsx) */
101
105
  ThreadHeader?: ComponentContextValue<At, Ch, Co, Ev, Me, Re, Us>['ThreadHeader'];
102
106
  /** Custom UI component to display the start of a threaded `MessageList`, defaults to and accepts same props as: [DefaultThreadStart](https://github.com/GetStream/stream-chat-react/blob/master/src/components/Thread/Thread.tsx) */
@@ -1 +1 @@
1
- {"version":3,"file":"Channel.d.ts","sourceRoot":"","sources":["../../../src/components/Channel/Channel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Channel.d.ts","sourceRoot":"","sources":["../../../src/components/Channel/Channel.tsx"],"names":[],"mappings":"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"}
@@ -61,13 +61,15 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from) {
61
61
  to[j] = from[i];
62
62
  return to;
63
63
  };
64
- import React, { useCallback, useEffect, useLayoutEffect, useMemo, useReducer, useRef, useState, } from 'react';
64
+ import React, { useEffect, useLayoutEffect, useMemo, useReducer, useRef, useState, } from 'react';
65
65
  import debounce from 'lodash.debounce';
66
66
  import throttle from 'lodash.throttle';
67
67
  import { logChatPromiseExecution, } from 'stream-chat';
68
68
  import { v4 as uuidv4 } from 'uuid';
69
69
  import { channelReducer, initialState } from './channelState';
70
70
  import { commonEmoji, defaultMinimalEmojis, emojiSetDef } from './emojiData';
71
+ import { useCreateChannelStateContext } from './hooks/useCreateChannelStateContext';
72
+ import { useCreateTypingContext } from './hooks/useCreateTypingContext';
71
73
  import { useEditMessageHandler } from './hooks/useEditMessageHandler';
72
74
  import { useIsMounted } from './hooks/useIsMounted';
73
75
  import { useMentionsHandlers } from './hooks/useMentionsHandlers';
@@ -91,7 +93,7 @@ var UnMemoizedChannel = function (props) {
91
93
  return React.createElement(ChannelInner, __assign({}, props, { channel: channel, key: channel.cid }));
92
94
  };
93
95
  var ChannelInner = function (props) {
94
- var acceptedFiles = props.acceptedFiles, channel = props.channel, children = props.children, doMarkReadRequest = props.doMarkReadRequest, doSendMessageRequest = props.doSendMessageRequest, doUpdateMessageRequest = props.doUpdateMessageRequest, _a = props.emojiData, emojiData = _a === void 0 ? defaultEmojiData : _a, _b = props.LoadingErrorIndicator, LoadingErrorIndicator = _b === void 0 ? DefaultLoadingErrorIndicator : _b, _c = props.LoadingIndicator, LoadingIndicator = _c === void 0 ? DefaultLoadingIndicator : _c, maxNumberOfFiles = props.maxNumberOfFiles, _d = props.multipleUploads, multipleUploads = _d === void 0 ? true : _d, onMentionsClick = props.onMentionsClick, onMentionsHover = props.onMentionsHover;
96
+ var acceptedFiles = props.acceptedFiles, activeUnreadHandler = props.activeUnreadHandler, channel = props.channel, children = props.children, doMarkReadRequest = props.doMarkReadRequest, doSendMessageRequest = props.doSendMessageRequest, doUpdateMessageRequest = props.doUpdateMessageRequest, _a = props.emojiData, emojiData = _a === void 0 ? defaultEmojiData : _a, _b = props.LoadingErrorIndicator, LoadingErrorIndicator = _b === void 0 ? DefaultLoadingErrorIndicator : _b, _c = props.LoadingIndicator, LoadingIndicator = _c === void 0 ? DefaultLoadingIndicator : _c, maxNumberOfFiles = props.maxNumberOfFiles, _d = props.multipleUploads, multipleUploads = _d === void 0 ? true : _d, onMentionsClick = props.onMentionsClick, onMentionsHover = props.onMentionsHover, skipMessageDataMemoization = props.skipMessageDataMemoization;
95
97
  var _e = useChatContext(), client = _e.client, customClasses = _e.customClasses, mutes = _e.mutes, theme = _e.theme, useImageFlagEmojisOnWindows = _e.useImageFlagEmojisOnWindows;
96
98
  var t = useTranslationContext().t;
97
99
  var _f = useState([]), notifications = _f[0], setNotifications = _f[1];
@@ -109,14 +111,12 @@ var ChannelInner = function (props) {
109
111
  emojiData: emojiData,
110
112
  emojiSetDef: emojiSetDef,
111
113
  };
112
- var throttledCopyStateFromChannel = useCallback(throttle(function () {
113
- if (!channel)
114
- return;
115
- dispatch({ channel: channel, type: 'copyStateFromChannelOnEvent' });
116
- }, 500, { leading: true, trailing: true }), [channel]);
117
- var markRead = useCallback(function () {
118
- var _a;
119
- if (!channel || channel.disconnected || !((_a = channel.getConfig()) === null || _a === void 0 ? void 0 : _a.read_events)) {
114
+ var throttledCopyStateFromChannel = throttle(function () { return dispatch({ channel: channel, type: 'copyStateFromChannelOnEvent' }); }, 500, {
115
+ leading: true,
116
+ trailing: true,
117
+ });
118
+ var markRead = function () {
119
+ if (channel.disconnected || !(channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.read_events)) {
120
120
  return;
121
121
  }
122
122
  lastRead.current = new Date();
@@ -129,10 +129,10 @@ var ChannelInner = function (props) {
129
129
  if (originalTitle.current) {
130
130
  document.title = originalTitle.current;
131
131
  }
132
- }, [channel, doMarkReadRequest]);
133
- var markReadThrottled = useCallback(throttle(markRead, 500, { leading: true, trailing: true }), [markRead]);
134
- var handleEvent = useCallback(function (event) {
135
- var _a, _b, _c, _d, _e;
132
+ };
133
+ var markReadThrottled = throttle(markRead, 500, { leading: true, trailing: true });
134
+ var handleEvent = function (event) {
135
+ var _a, _b, _c, _d;
136
136
  if (event.message) {
137
137
  dispatch({
138
138
  channel: channel,
@@ -141,11 +141,7 @@ var ChannelInner = function (props) {
141
141
  });
142
142
  }
143
143
  if (event.type === 'typing.start' || event.type === 'typing.stop') {
144
- dispatch({
145
- channel: channel,
146
- type: 'setTyping',
147
- });
148
- return;
144
+ return dispatch({ channel: channel, type: 'setTyping' });
149
145
  }
150
146
  if (event.type === 'connection.changed' && typeof event.online === 'boolean') {
151
147
  online.current = event.online;
@@ -159,29 +155,33 @@ var ChannelInner = function (props) {
159
155
  if (!document.hidden) {
160
156
  markReadThrottled();
161
157
  }
162
- else if (((_e = channel.getConfig()) === null || _e === void 0 ? void 0 : _e.read_events) && !channel.muteStatus().muted) {
158
+ else if ((channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.read_events) && !channel.muteStatus().muted) {
163
159
  var unread = channel.countUnread(lastRead.current);
164
- document.title = "(" + unread + ") " + originalTitle.current;
160
+ if (activeUnreadHandler) {
161
+ activeUnreadHandler(unread, originalTitle.current);
162
+ }
163
+ else {
164
+ document.title = "(" + unread + ") " + originalTitle.current;
165
+ }
165
166
  }
166
167
  }
167
168
  }
168
169
  throttledCopyStateFromChannel();
169
- }, [channel, client.userID, markReadThrottled, throttledCopyStateFromChannel]);
170
+ };
170
171
  // useLayoutEffect here to prevent spinner. Use Suspense when it is available in stable release
171
172
  useLayoutEffect(function () {
172
173
  var errored = false;
173
174
  var done = false;
174
175
  var onVisibilityChange = function () {
175
- if (!document.hidden) {
176
+ if (!document.hidden)
176
177
  markRead();
177
- }
178
178
  };
179
179
  (function () { return __awaiter(void 0, void 0, void 0, function () {
180
180
  var e_1;
181
181
  return __generator(this, function (_a) {
182
182
  switch (_a.label) {
183
183
  case 0:
184
- if (!(channel && !channel.initialized)) return [3 /*break*/, 4];
184
+ if (!!channel.initialized) return [3 /*break*/, 4];
185
185
  _a.label = 1;
186
186
  case 1:
187
187
  _a.trys.push([1, 3, , 4]);
@@ -197,7 +197,7 @@ var ChannelInner = function (props) {
197
197
  case 4:
198
198
  done = true;
199
199
  originalTitle.current = document.title;
200
- if (channel && !errored) {
200
+ if (!errored) {
201
201
  dispatch({ channel: channel, type: 'initStateFromChannel' });
202
202
  if (channel.countUnread() > 0)
203
203
  markRead();
@@ -217,15 +217,14 @@ var ChannelInner = function (props) {
217
217
  if (errored || !done)
218
218
  return;
219
219
  document.removeEventListener('visibilitychange', onVisibilityChange);
220
- if (channel)
221
- channel.off(handleEvent);
220
+ channel === null || channel === void 0 ? void 0 : channel.off(handleEvent);
222
221
  client.off('connection.changed', handleEvent);
223
222
  client.off('connection.recovered', handleEvent);
224
223
  client.off('user.updated', handleEvent);
225
224
  client.off('user.deleted', handleEvent);
226
225
  notificationTimeouts.forEach(clearTimeout);
227
226
  };
228
- }, [channel, client, handleEvent, markRead]);
227
+ }, [channel.cid]);
229
228
  useEffect(function () {
230
229
  var _a;
231
230
  if (state.thread && ((_a = state.messages) === null || _a === void 0 ? void 0 : _a.length)) {
@@ -252,17 +251,15 @@ var ChannelInner = function (props) {
252
251
  }, 5000);
253
252
  notificationTimeouts.push(timeout);
254
253
  };
255
- var loadMoreFinished = useCallback(debounce(function (hasMore, messages) {
254
+ var loadMoreFinished = debounce(function (hasMore, messages) {
256
255
  if (!isMounted.current)
257
256
  return;
258
257
  dispatch({ hasMore: hasMore, messages: messages, type: 'loadMoreFinished' });
259
258
  }, 2000, {
260
259
  leading: true,
261
260
  trailing: true,
262
- }), []);
263
- var loadMore = useCallback(
264
- // eslint-disable-next-line @typescript-eslint/no-inferrable-types
265
- function (limit) {
261
+ });
262
+ var loadMore = function (limit) {
266
263
  if (limit === void 0) { limit = 100; }
267
264
  return __awaiter(void 0, void 0, void 0, function () {
268
265
  var oldestMessage, oldestID, perPage, queryResponse, e_2, hasMoreMessages;
@@ -270,7 +267,7 @@ var ChannelInner = function (props) {
270
267
  return __generator(this, function (_b) {
271
268
  switch (_b.label) {
272
269
  case 0:
273
- if (!online.current || !window.navigator.onLine || !channel)
270
+ if (!online.current || !window.navigator.onLine)
274
271
  return [2 /*return*/, 0];
275
272
  oldestMessage = (_a = state === null || state === void 0 ? void 0 : state.messages) === null || _a === void 0 ? void 0 : _a[0];
276
273
  if (state.loadingMore || (oldestMessage === null || oldestMessage === void 0 ? void 0 : oldestMessage.status) !== 'received')
@@ -305,27 +302,22 @@ var ChannelInner = function (props) {
305
302
  }
306
303
  });
307
304
  });
308
- }, [channel, loadMoreFinished, online, state.loadingMore, state.messages]);
309
- var updateMessage = useCallback(function (updatedMessage) {
310
- if (!channel)
311
- return;
312
- // adds the message to the local channel state..
313
- // this adds to both the main channel state as well as any reply threads
305
+ };
306
+ var updateMessage = function (updatedMessage) {
307
+ // add the message to the local channel state
314
308
  channel.state.addMessageSorted(updatedMessage, true);
315
309
  dispatch({
316
310
  channel: channel,
317
311
  parentId: state.thread && updatedMessage.parent_id,
318
312
  type: 'copyMessagesFromChannel',
319
313
  });
320
- }, [channel, state.thread]);
314
+ };
321
315
  var isUserResponseArray = function (output) { var _a; return ((_a = output[0]) === null || _a === void 0 ? void 0 : _a.id) != null; };
322
- var doSendMessage = useCallback(function (message, customMessageData) { return __awaiter(void 0, void 0, void 0, function () {
316
+ var doSendMessage = function (message, customMessageData) { return __awaiter(void 0, void 0, void 0, function () {
323
317
  var attachments, id, _a, mentioned_users, parent_id, text, mentions, messageData, messageResponse, error_1, stringError, parsedError;
324
318
  return __generator(this, function (_b) {
325
319
  switch (_b.label) {
326
320
  case 0:
327
- if (!channel)
328
- return [2 /*return*/];
329
321
  attachments = message.attachments, id = message.id, _a = message.mentioned_users, mentioned_users = _a === void 0 ? [] : _a, parent_id = message.parent_id, text = message.text;
330
322
  mentions = isUserResponseArray(mentioned_users)
331
323
  ? mentioned_users.map(function (_a) {
@@ -349,7 +341,7 @@ var ChannelInner = function (props) {
349
341
  _b.label = 5;
350
342
  case 5:
351
343
  // replace it after send is completed
352
- if (messageResponse && messageResponse.message) {
344
+ if (messageResponse === null || messageResponse === void 0 ? void 0 : messageResponse.message) {
353
345
  updateMessage(__assign(__assign({}, messageResponse.message), { status: 'received' }));
354
346
  }
355
347
  if (quotedMessage)
@@ -364,25 +356,20 @@ var ChannelInner = function (props) {
364
356
  case 7: return [2 /*return*/];
365
357
  }
366
358
  });
367
- }); }, [channel, doSendMessageRequest, quotedMessage, updateMessage]);
368
- var createMessagePreview = useCallback(function (text, attachments, parent, mentioned_users) {
369
- // create a preview of the message
359
+ }); };
360
+ var createMessagePreview = function (text, attachments, parent, mentioned_users) {
370
361
  var clientSideID = client.userID + "-" + uuidv4();
371
362
  return __assign({ __html: text, attachments: attachments, created_at: new Date(), html: text, id: clientSideID, mentioned_users: mentioned_users, reactions: [], status: 'sending', text: text, type: 'regular', user: client.user }, ((parent === null || parent === void 0 ? void 0 : parent.id) ? { parent_id: parent.id } : null));
372
- }, [client.user, client.userID]);
373
- var sendMessage = useCallback(function (_a, customMessageData) {
363
+ };
364
+ var sendMessage = function (_a, customMessageData) {
374
365
  var _b = _a.attachments, attachments = _b === void 0 ? [] : _b, _c = _a.mentioned_users, mentioned_users = _c === void 0 ? [] : _c, _d = _a.parent, parent = _d === void 0 ? undefined : _d, _e = _a.text, text = _e === void 0 ? '' : _e;
375
366
  return __awaiter(void 0, void 0, void 0, function () {
376
367
  var messagePreview;
377
368
  return __generator(this, function (_f) {
378
369
  switch (_f.label) {
379
370
  case 0:
380
- if (!channel)
381
- return [2 /*return*/];
382
- // remove error messages upon submit
383
371
  channel.state.filterErrorMessages();
384
372
  messagePreview = createMessagePreview(text, attachments, parent, mentioned_users);
385
- // first we add the message to the UI
386
373
  updateMessage(messagePreview);
387
374
  return [4 /*yield*/, doSendMessage(messagePreview, customMessageData)];
388
375
  case 1:
@@ -391,62 +378,55 @@ var ChannelInner = function (props) {
391
378
  }
392
379
  });
393
380
  });
394
- }, [channel === null || channel === void 0 ? void 0 : channel.state, createMessagePreview, doSendMessage, updateMessage]);
395
- var retrySendMessage = useCallback(function (message) { return __awaiter(void 0, void 0, void 0, function () {
381
+ };
382
+ var retrySendMessage = function (message) { return __awaiter(void 0, void 0, void 0, function () {
396
383
  return __generator(this, function (_a) {
397
384
  switch (_a.label) {
398
385
  case 0:
399
- // set the message status to sending
400
386
  updateMessage(__assign(__assign({}, message), { errorStatusCode: undefined, status: 'sending' }));
401
- // actually try to send the message...
402
387
  return [4 /*yield*/, doSendMessage(message)];
403
388
  case 1:
404
- // actually try to send the message...
405
389
  _a.sent();
406
390
  return [2 /*return*/];
407
391
  }
408
392
  });
409
- }); }, [doSendMessage, updateMessage]);
410
- var removeMessage = useCallback(function (message) {
411
- if (!channel)
412
- return;
393
+ }); };
394
+ var removeMessage = function (message) {
413
395
  channel.state.removeMessage(message);
414
396
  dispatch({
415
397
  channel: channel,
416
398
  parentId: state.thread && message.parent_id,
417
399
  type: 'copyMessagesFromChannel',
418
400
  });
419
- }, [channel, state.thread]);
401
+ };
420
402
  /** THREAD */
421
- var openThread = useCallback(function (message, event) {
422
- if (!channel)
423
- return;
424
- if (event && event.preventDefault) {
425
- event.preventDefault();
426
- }
403
+ var openThread = function (message, event) {
404
+ event.preventDefault();
427
405
  dispatch({ channel: channel, message: message, type: 'openThread' });
428
- }, [channel]);
429
- var loadMoreThreadFinished = useCallback(debounce(function (threadHasMore, threadMessages) {
406
+ };
407
+ var closeThread = function (event) {
408
+ event.preventDefault();
409
+ dispatch({ type: 'closeThread' });
410
+ };
411
+ var loadMoreThreadFinished = debounce(function (threadHasMore, threadMessages) {
430
412
  dispatch({
431
413
  threadHasMore: threadHasMore,
432
414
  threadMessages: threadMessages,
433
415
  type: 'loadMoreThreadFinished',
434
416
  });
435
- }, 2000, { leading: true, trailing: true }), []);
436
- var loadMoreThread = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
417
+ }, 2000, { leading: true, trailing: true });
418
+ var loadMoreThread = function () { return __awaiter(void 0, void 0, void 0, function () {
437
419
  var parentID, oldMessages, oldestMessageID, limit, queryResponse, threadHasMoreMessages, newThreadMessages, e_3;
438
420
  var _a;
439
421
  return __generator(this, function (_b) {
440
422
  switch (_b.label) {
441
423
  case 0:
442
- // prevent duplicate loading events...
443
- if (!channel || state.threadLoadingMore || !state.thread)
424
+ if (state.threadLoadingMore || !state.thread)
444
425
  return [2 /*return*/];
445
426
  dispatch({ type: 'startLoadingThread' });
446
427
  parentID = state.thread.id;
447
428
  if (!parentID) {
448
- dispatch({ type: 'closeThread' });
449
- return [2 /*return*/];
429
+ return [2 /*return*/, dispatch({ type: 'closeThread' })];
450
430
  }
451
431
  oldMessages = channel.state.threads[parentID] || [];
452
432
  oldestMessageID = (_a = oldMessages[0]) === null || _a === void 0 ? void 0 : _a.id;
@@ -462,7 +442,7 @@ var ChannelInner = function (props) {
462
442
  queryResponse = _b.sent();
463
443
  threadHasMoreMessages = queryResponse.messages.length === limit;
464
444
  newThreadMessages = channel.state.threads[parentID] || [];
465
- // next set loadingMore to false so we can start asking for more data...
445
+ // next set loadingMore to false so we can start asking for more data
466
446
  loadMoreThreadFinished(threadHasMoreMessages, newThreadMessages);
467
447
  return [3 /*break*/, 4];
468
448
  case 3:
@@ -472,18 +452,12 @@ var ChannelInner = function (props) {
472
452
  case 4: return [2 /*return*/];
473
453
  }
474
454
  });
475
- }); }, [channel, loadMoreThreadFinished, state.thread, state.threadLoadingMore]);
476
- var closeThread = useCallback(function (event) {
477
- if (event && event.preventDefault) {
478
- event.preventDefault();
479
- }
480
- dispatch({ type: 'closeThread' });
481
- }, []);
455
+ }); };
482
456
  var onMentionsHoverOrClick = useMentionsHandlers(onMentionsHover, onMentionsClick);
483
457
  var editMessage = useEditMessageHandler(doUpdateMessageRequest);
484
458
  var typing = state.typing, restState = __rest(state, ["typing"]);
485
- var channelStateContextValue = __assign(__assign({}, restState), { acceptedFiles: acceptedFiles, channel: channel, channelConfig: channelConfig, maxNumberOfFiles: maxNumberOfFiles, multipleUploads: multipleUploads, mutes: mutes, notifications: notifications, quotedMessage: quotedMessage, watcher_count: state.watcherCount });
486
- var channelActionContextValue = {
459
+ var channelStateContextValue = useCreateChannelStateContext(__assign(__assign({}, restState), { acceptedFiles: acceptedFiles, channel: channel, channelConfig: channelConfig, maxNumberOfFiles: maxNumberOfFiles, multipleUploads: multipleUploads, mutes: mutes, notifications: notifications, quotedMessage: quotedMessage, watcher_count: state.watcherCount }));
460
+ var channelActionContextValue = useMemo(function () { return ({
487
461
  addNotification: addNotification,
488
462
  closeThread: closeThread,
489
463
  dispatch: dispatch,
@@ -497,8 +471,9 @@ var ChannelInner = function (props) {
497
471
  retrySendMessage: retrySendMessage,
498
472
  sendMessage: sendMessage,
499
473
  setQuotedMessage: setQuotedMessage,
474
+ skipMessageDataMemoization: skipMessageDataMemoization,
500
475
  updateMessage: updateMessage,
501
- };
476
+ }); }, [channel.cid, loadMore, quotedMessage]);
502
477
  var componentContextValue = useMemo(function () { return ({
503
478
  Attachment: props.Attachment || DefaultAttachment,
504
479
  AutocompleteSuggestionHeader: props.AutocompleteSuggestionHeader,
@@ -542,13 +517,13 @@ var ChannelInner = function (props) {
542
517
  EmojiIndex: props.EmojiIndex,
543
518
  EmojiPicker: props.EmojiPicker,
544
519
  }); }, []);
545
- var typingContextValue = {
520
+ var typingContextValue = useCreateTypingContext({
546
521
  typing: typing,
547
- };
522
+ });
548
523
  var chatClass = (customClasses === null || customClasses === void 0 ? void 0 : customClasses.chat) || 'str-chat';
549
524
  var channelClass = (customClasses === null || customClasses === void 0 ? void 0 : customClasses.channel) || 'str-chat-channel';
550
525
  var windowsEmojiClass = useImageFlagEmojisOnWindows && navigator.userAgent.match(/Win/)
551
- ? ' str-chat--windows-flags'
526
+ ? 'str-chat--windows-flags'
552
527
  : '';
553
528
  if (state.error) {
554
529
  return (React.createElement("div", { className: chatClass + " " + channelClass + " " + theme },
@@ -558,7 +533,7 @@ var ChannelInner = function (props) {
558
533
  return (React.createElement("div", { className: chatClass + " " + channelClass + " " + theme },
559
534
  React.createElement(LoadingIndicator, { size: 25 })));
560
535
  }
561
- if (!(channel === null || channel === void 0 ? void 0 : channel.watch)) {
536
+ if (!channel.watch) {
562
537
  return (React.createElement("div", { className: chatClass + " " + channelClass + " " + theme },
563
538
  React.createElement("div", null, t('Channel Missing'))));
564
539
  }
@@ -0,0 +1,15 @@
1
+ import type { ChannelStateContextValue } from '../../../context/ChannelStateContext';
2
+ import type { DefaultAttachmentType, DefaultChannelType, DefaultMessageType, DefaultUserType } from '../../../types/types';
3
+ export declare const useCreateChannelStateContext: <At extends DefaultAttachmentType = DefaultAttachmentType, Ch extends DefaultChannelType = DefaultChannelType, Co extends import("stream-chat").LiteralStringForUnion = import("stream-chat").LiteralStringForUnion, Ev extends import("../../../types/types").UnknownType = import("../../../types/types").UnknownType, Me extends DefaultMessageType = DefaultMessageType, Re extends import("../../../types/types").UnknownType = import("../../../types/types").UnknownType, Us extends DefaultUserType<Us> = DefaultUserType<import("../../../types/types").DefaultUserTypeInternal>>(value: Omit<import("../../../context/ChannelStateContext").ChannelState<At, Ch, Co, Ev, Me, Re, Us>, "typing"> & {
4
+ channel: import("stream-chat").Channel<At, Ch, Co, Ev, Me, Re, Us>;
5
+ channelConfig: import("stream-chat").ChannelConfigWithInfo<Co> | undefined;
6
+ multipleUploads: boolean;
7
+ notifications: import("../../../context/ChannelStateContext").ChannelNotifications;
8
+ acceptedFiles?: string[] | undefined;
9
+ maxNumberOfFiles?: number | undefined;
10
+ mutes?: import("stream-chat").Mute<Us>[] | undefined;
11
+ watcher_count?: number | undefined;
12
+ } & {
13
+ skipMessageDataMemoization?: boolean | undefined;
14
+ }) => ChannelStateContextValue<At, Ch, Co, Ev, Me, Re, Us>;
15
+ //# sourceMappingURL=useCreateChannelStateContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCreateChannelStateContext.d.ts","sourceRoot":"","sources":["../../../../src/components/Channel/hooks/useCreateChannelStateContext.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAErF,OAAO,KAAK,EACV,qBAAqB,EACrB,kBAAkB,EAGlB,kBAAkB,EAElB,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,4BAA4B;;;;;;;;;;;0DA+HxC,CAAC"}
@@ -0,0 +1,87 @@
1
+ import { useMemo } from 'react';
2
+ import { isDate, isDayOrMoment } from '../../../context/TranslationContext';
3
+ export var useCreateChannelStateContext = function (value) {
4
+ var _a;
5
+ var acceptedFiles = value.acceptedFiles, channel = value.channel, channelConfig = value.channelConfig, error = value.error, hasMore = value.hasMore, loading = value.loading, loadingMore = value.loadingMore, maxNumberOfFiles = value.maxNumberOfFiles, members = value.members, _b = value.messages, messages = _b === void 0 ? [] : _b, multipleUploads = value.multipleUploads, mutes = value.mutes, notifications = value.notifications, pinnedMessages = value.pinnedMessages, quotedMessage = value.quotedMessage, _c = value.read, read = _c === void 0 ? {} : _c, skipMessageDataMemoization = value.skipMessageDataMemoization, thread = value.thread, threadHasMore = value.threadHasMore, threadLoadingMore = value.threadLoadingMore, _d = value.threadMessages, threadMessages = _d === void 0 ? [] : _d, watcherCount = value.watcherCount, watcher_count = value.watcher_count, watchers = value.watchers;
6
+ var channelId = channel.cid;
7
+ var lastRead = channel.initialized && ((_a = channel.lastRead()) === null || _a === void 0 ? void 0 : _a.getTime());
8
+ var membersLength = Object.keys(members || []).length;
9
+ var notificationsLength = notifications.length;
10
+ var readUsers = Object.values(read);
11
+ var readUsersLength = readUsers.length;
12
+ var readUsersLastReads = readUsers.map(function (_a) {
13
+ var last_read = _a.last_read;
14
+ return last_read.toISOString();
15
+ }).join();
16
+ var threadMessagesLength = threadMessages === null || threadMessages === void 0 ? void 0 : threadMessages.length;
17
+ var memoizedMessageData = skipMessageDataMemoization
18
+ ? messages
19
+ : messages
20
+ .map(function (_a) {
21
+ var deleted_at = _a.deleted_at, latest_reactions = _a.latest_reactions, pinned = _a.pinned, reply_count = _a.reply_count, status = _a.status, updated_at = _a.updated_at;
22
+ return "" + deleted_at + (latest_reactions ? latest_reactions.map(function (_a) {
23
+ var type = _a.type;
24
+ return type;
25
+ }).join() : '') + pinned + reply_count + status + (updated_at && (isDayOrMoment(updated_at) || isDate(updated_at))
26
+ ? updated_at.toISOString()
27
+ : updated_at || '');
28
+ })
29
+ .join();
30
+ var memoizedThreadMessageData = threadMessages
31
+ .map(function (_a) {
32
+ var deleted_at = _a.deleted_at, latest_reactions = _a.latest_reactions, pinned = _a.pinned, status = _a.status, updated_at = _a.updated_at;
33
+ return "" + deleted_at + (latest_reactions ? latest_reactions.map(function (_a) {
34
+ var type = _a.type;
35
+ return type;
36
+ }).join() : '') + pinned + status + (updated_at && (isDayOrMoment(updated_at) || isDate(updated_at))
37
+ ? updated_at.toISOString()
38
+ : updated_at || '');
39
+ })
40
+ .join();
41
+ var channelStateContext = useMemo(function () { return ({
42
+ acceptedFiles: acceptedFiles,
43
+ channel: channel,
44
+ channelConfig: channelConfig,
45
+ error: error,
46
+ hasMore: hasMore,
47
+ loading: loading,
48
+ loadingMore: loadingMore,
49
+ maxNumberOfFiles: maxNumberOfFiles,
50
+ members: members,
51
+ messages: messages,
52
+ multipleUploads: multipleUploads,
53
+ mutes: mutes,
54
+ notifications: notifications,
55
+ pinnedMessages: pinnedMessages,
56
+ quotedMessage: quotedMessage,
57
+ read: read,
58
+ thread: thread,
59
+ threadHasMore: threadHasMore,
60
+ threadLoadingMore: threadLoadingMore,
61
+ threadMessages: threadMessages,
62
+ watcher_count: watcher_count,
63
+ watcherCount: watcherCount,
64
+ watchers: watchers,
65
+ }); }, [
66
+ channelId,
67
+ error,
68
+ hasMore,
69
+ lastRead,
70
+ loading,
71
+ loadingMore,
72
+ membersLength,
73
+ memoizedMessageData,
74
+ memoizedThreadMessageData,
75
+ notificationsLength,
76
+ quotedMessage,
77
+ readUsersLength,
78
+ readUsersLastReads,
79
+ skipMessageDataMemoization,
80
+ thread,
81
+ threadHasMore,
82
+ threadLoadingMore,
83
+ threadMessagesLength,
84
+ watcherCount,
85
+ ]);
86
+ return channelStateContext;
87
+ };
@@ -0,0 +1,4 @@
1
+ import type { TypingContextValue } from '../../../context/TypingContext';
2
+ import type { DefaultAttachmentType, DefaultChannelType, DefaultMessageType, DefaultUserType } from '../../../types/types';
3
+ export declare const useCreateTypingContext: <At extends DefaultAttachmentType = DefaultAttachmentType, Ch extends DefaultChannelType = DefaultChannelType, Co extends import("stream-chat").LiteralStringForUnion = import("stream-chat").LiteralStringForUnion, Ev extends import("../../../types/types").UnknownType = import("../../../types/types").UnknownType, Me extends DefaultMessageType = DefaultMessageType, Re extends import("../../../types/types").UnknownType = import("../../../types/types").UnknownType, Us extends DefaultUserType<Us> = DefaultUserType<import("../../../types/types").DefaultUserTypeInternal>>(value: TypingContextValue<At, Ch, Co, Ev, Me, Re, Us>) => TypingContextValue<At, Ch, Co, Ev, Me, Re, Us>;
4
+ //# sourceMappingURL=useCreateTypingContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCreateTypingContext.d.ts","sourceRoot":"","sources":["../../../../src/components/Channel/hooks/useCreateTypingContext.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,KAAK,EACV,qBAAqB,EACrB,kBAAkB,EAGlB,kBAAkB,EAElB,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,sBAAsB,qqBAuBlC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { useMemo } from 'react';
2
+ export var useCreateTypingContext = function (value) {
3
+ var typing = value.typing;
4
+ var typingValue = Object.keys(typing || {}).join();
5
+ var typingContext = useMemo(function () { return ({
6
+ typing: typing,
7
+ }); }, [typingValue]);
8
+ return typingContext;
9
+ };
@@ -13,9 +13,9 @@ export declare type ChannelListProps<At extends DefaultAttachmentType = DefaultA
13
13
  /** Additional props for underlying ChannelSearch component, [available props](https://getstream.io/chat/docs/sdk/react/utility-components/channel_search/#props) */
14
14
  additionalChannelSearchProps?: ChannelSearchProps<At, Ch, Co, Ev, Me, Re, Us>;
15
15
  /**
16
- * When the client receives a `message.new` event, we automatically push that channel to the top of the list.
17
- * If the channel doesn't currently exist in the list, we grab the channel from `client.activeChannels`
18
- * and push it to the top of the list. You can disable this behavior by setting this prop
16
+ * When the client receives `message.new`, `notification.message_new`, and `notification.added_to_channel` events, we automatically
17
+ * push that channel to the top of the list. If the channel doesn't currently exist in the list, we grab the channel from
18
+ * `client.activeChannels` and push it to the top of the list. You can disable this behavior by setting this prop
19
19
  * to false, which will prevent channels not in the list from incrementing the list. The default is true.
20
20
  */
21
21
  allowNewMessagesFromUnfilteredChannels?: boolean;