stream-chat-react 6.8.0 → 6.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/CHANGELOG.md +1633 -0
  2. package/dist/browser.full-bundle.js +11245 -10648
  3. package/dist/browser.full-bundle.js.map +1 -1
  4. package/dist/browser.full-bundle.min.js +3 -3
  5. package/dist/browser.full-bundle.min.js.map +1 -1
  6. package/dist/components/Attachment/Card.js +1 -1
  7. package/dist/components/AutoCompleteTextarea/Header.d.ts +2 -0
  8. package/dist/components/AutoCompleteTextarea/Header.d.ts.map +1 -1
  9. package/dist/components/AutoCompleteTextarea/Header.js +10 -9
  10. package/dist/components/AutoCompleteTextarea/List.d.ts.map +1 -1
  11. package/dist/components/AutoCompleteTextarea/List.js +2 -2
  12. package/dist/components/Avatar/Avatar.d.ts.map +1 -1
  13. package/dist/components/Avatar/Avatar.js +3 -1
  14. package/dist/components/Channel/Channel.d.ts +2 -0
  15. package/dist/components/Channel/Channel.d.ts.map +1 -1
  16. package/dist/components/Channel/Channel.js +82 -102
  17. package/dist/components/Channel/hooks/useCreateChannelStateContext.d.ts +7 -0
  18. package/dist/components/Channel/hooks/useCreateChannelStateContext.d.ts.map +1 -0
  19. package/dist/components/Channel/hooks/useCreateChannelStateContext.js +92 -0
  20. package/dist/components/Channel/hooks/useCreateTypingContext.d.ts +4 -0
  21. package/dist/components/Channel/hooks/useCreateTypingContext.d.ts.map +1 -0
  22. package/dist/components/Channel/hooks/useCreateTypingContext.js +9 -0
  23. package/dist/components/Channel/hooks/useEditMessageHandler.js +1 -1
  24. package/dist/components/ChannelHeader/ChannelHeader.d.ts.map +1 -1
  25. package/dist/components/ChannelHeader/ChannelHeader.js +3 -3
  26. package/dist/components/ChannelList/ChannelList.d.ts.map +1 -1
  27. package/dist/components/ChannelList/ChannelList.js +3 -3
  28. package/dist/components/ChannelList/hooks/useChannelDeletedListener.js +1 -1
  29. package/dist/components/ChannelList/hooks/useChannelHiddenListener.js +1 -1
  30. package/dist/components/ChannelList/hooks/useChannelTruncatedListener.js +1 -1
  31. package/dist/components/ChannelList/hooks/useChannelUpdatedListener.js +1 -1
  32. package/dist/components/ChannelList/hooks/useChannelVisibleListener.js +1 -1
  33. package/dist/components/ChannelList/hooks/useConnectionRecoveredListener.js +1 -1
  34. package/dist/components/ChannelList/hooks/useMessageNewListener.js +1 -1
  35. package/dist/components/ChannelList/hooks/useNotificationAddedToChannelListener.d.ts.map +1 -1
  36. package/dist/components/ChannelList/hooks/useNotificationAddedToChannelListener.js +1 -1
  37. package/dist/components/ChannelList/hooks/useNotificationMessageNewListener.d.ts +1 -1
  38. package/dist/components/ChannelList/hooks/useNotificationMessageNewListener.d.ts.map +1 -1
  39. package/dist/components/ChannelList/hooks/useNotificationMessageNewListener.js +3 -5
  40. package/dist/components/ChannelList/hooks/useNotificationRemovedFromChannelListener.d.ts.map +1 -1
  41. package/dist/components/ChannelList/hooks/useNotificationRemovedFromChannelListener.js +1 -1
  42. package/dist/components/ChannelList/hooks/usePaginatedChannels.d.ts +0 -1
  43. package/dist/components/ChannelList/hooks/usePaginatedChannels.d.ts.map +1 -1
  44. package/dist/components/ChannelList/hooks/usePaginatedChannels.js +7 -15
  45. package/dist/components/ChannelList/hooks/useUserPresenceChangedListener.js +1 -1
  46. package/dist/components/ChannelPreview/ChannelPreview.js +2 -2
  47. package/dist/components/ChannelPreview/hooks/useIsChannelMuted.js +1 -1
  48. package/dist/components/ChannelSearch/ChannelSearch.js +1 -1
  49. package/dist/components/ChannelSearch/SearchInput.js +1 -1
  50. package/dist/components/ChannelSearch/SearchResults.js +1 -1
  51. package/dist/components/Chat/Chat.d.ts +1 -1
  52. package/dist/components/Chat/Chat.d.ts.map +1 -1
  53. package/dist/components/Chat/Chat.js +14 -12
  54. package/dist/components/Chat/hooks/useChat.js +1 -1
  55. package/dist/components/Chat/hooks/useCreateChatContext.d.ts +4 -0
  56. package/dist/components/Chat/hooks/useCreateChatContext.d.ts.map +1 -0
  57. package/dist/components/Chat/hooks/useCreateChatContext.js +21 -0
  58. package/dist/components/ChatAutoComplete/ChatAutoComplete.d.ts +1 -0
  59. package/dist/components/ChatAutoComplete/ChatAutoComplete.d.ts.map +1 -1
  60. package/dist/components/ChatAutoComplete/ChatAutoComplete.js +3 -3
  61. package/dist/components/ChatDown/ChatDown.js +1 -1
  62. package/dist/components/DateSeparator/DateSeparator.js +1 -1
  63. package/dist/components/EmptyStateIndicator/EmptyStateIndicator.js +1 -1
  64. package/dist/components/EventComponent/EventComponent.js +1 -1
  65. package/dist/components/Gallery/Gallery.js +1 -1
  66. package/dist/components/Loading/LoadingErrorIndicator.js +1 -1
  67. package/dist/components/MML/MML.js +1 -1
  68. package/dist/components/Message/FixedHeightMessage.js +4 -4
  69. package/dist/components/Message/Message.d.ts.map +1 -1
  70. package/dist/components/Message/Message.js +3 -6
  71. package/dist/components/Message/MessageCommerce.js +2 -2
  72. package/dist/components/Message/MessageDeleted.js +1 -1
  73. package/dist/components/Message/MessageLivestream.d.ts.map +1 -1
  74. package/dist/components/Message/MessageLivestream.js +5 -6
  75. package/dist/components/Message/MessageOptions.js +1 -1
  76. package/dist/components/Message/MessageRepliesCountButton.js +1 -1
  77. package/dist/components/Message/MessageSimple.js +2 -2
  78. package/dist/components/Message/MessageStatus.d.ts.map +1 -1
  79. package/dist/components/Message/MessageStatus.js +4 -4
  80. package/dist/components/Message/MessageTeam.js +3 -3
  81. package/dist/components/Message/MessageText.d.ts.map +1 -1
  82. package/dist/components/Message/MessageText.js +3 -3
  83. package/dist/components/Message/MessageTimestamp.d.ts.map +1 -1
  84. package/dist/components/Message/MessageTimestamp.js +2 -2
  85. package/dist/components/Message/QuotedMessage.js +3 -3
  86. package/dist/components/Message/hooks/useActionHandler.d.ts.map +1 -1
  87. package/dist/components/Message/hooks/useActionHandler.js +2 -2
  88. package/dist/components/Message/hooks/useDeleteHandler.js +3 -3
  89. package/dist/components/Message/hooks/useFlagHandler.js +2 -2
  90. package/dist/components/Message/hooks/useMentionsHandler.js +1 -1
  91. package/dist/components/Message/hooks/useMuteHandler.js +3 -3
  92. package/dist/components/Message/hooks/useOpenThreadHandler.d.ts.map +1 -1
  93. package/dist/components/Message/hooks/useOpenThreadHandler.js +1 -1
  94. package/dist/components/Message/hooks/usePinHandler.d.ts.map +1 -1
  95. package/dist/components/Message/hooks/usePinHandler.js +10 -17
  96. package/dist/components/Message/hooks/useReactionHandler.d.ts.map +1 -1
  97. package/dist/components/Message/hooks/useReactionHandler.js +5 -6
  98. package/dist/components/Message/hooks/useRetryHandler.js +1 -1
  99. package/dist/components/Message/hooks/useUserRole.d.ts +2 -2
  100. package/dist/components/Message/hooks/useUserRole.d.ts.map +1 -1
  101. package/dist/components/Message/hooks/useUserRole.js +8 -6
  102. package/dist/components/Message/types.d.ts +1 -1
  103. package/dist/components/Message/types.d.ts.map +1 -1
  104. package/dist/components/Message/utils.d.ts.map +1 -1
  105. package/dist/components/Message/utils.js +1 -0
  106. package/dist/components/MessageActions/MessageActions.js +2 -2
  107. package/dist/components/MessageActions/MessageActionsBox.d.ts.map +1 -1
  108. package/dist/components/MessageActions/MessageActionsBox.js +3 -3
  109. package/dist/components/MessageInput/DefaultTriggerProvider.d.ts.map +1 -1
  110. package/dist/components/MessageInput/DefaultTriggerProvider.js +1 -1
  111. package/dist/components/MessageInput/EditMessageForm.d.ts.map +1 -1
  112. package/dist/components/MessageInput/EditMessageForm.js +4 -4
  113. package/dist/components/MessageInput/EmojiPicker.js +3 -3
  114. package/dist/components/MessageInput/MessageInput.d.ts +1 -1
  115. package/dist/components/MessageInput/MessageInput.d.ts.map +1 -1
  116. package/dist/components/MessageInput/MessageInput.js +3 -2
  117. package/dist/components/MessageInput/MessageInputFlat.js +4 -4
  118. package/dist/components/MessageInput/MessageInputSmall.d.ts.map +1 -1
  119. package/dist/components/MessageInput/MessageInputSmall.js +4 -4
  120. package/dist/components/MessageInput/QuotedMessagePreview.d.ts.map +1 -1
  121. package/dist/components/MessageInput/QuotedMessagePreview.js +4 -4
  122. package/dist/components/MessageInput/UploadsPreview.d.ts.map +1 -1
  123. package/dist/components/MessageInput/UploadsPreview.js +2 -2
  124. package/dist/components/MessageInput/hooks/useAttachments.d.ts.map +1 -1
  125. package/dist/components/MessageInput/hooks/useAttachments.js +1 -1
  126. package/dist/components/MessageInput/hooks/useCommandTrigger.d.ts.map +1 -1
  127. package/dist/components/MessageInput/hooks/useCommandTrigger.js +2 -3
  128. package/dist/components/MessageInput/hooks/useCooldownTimer.js +2 -2
  129. package/dist/components/MessageInput/hooks/useCreateMessageInputContext.d.ts +4 -0
  130. package/dist/components/MessageInput/hooks/useCreateMessageInputContext.d.ts.map +1 -0
  131. package/dist/components/MessageInput/hooks/useCreateMessageInputContext.js +91 -0
  132. package/dist/components/MessageInput/hooks/useEmojiIndex.js +1 -1
  133. package/dist/components/MessageInput/hooks/useFileUploads.js +3 -3
  134. package/dist/components/MessageInput/hooks/useImageUploads.d.ts.map +1 -1
  135. package/dist/components/MessageInput/hooks/useImageUploads.js +3 -3
  136. package/dist/components/MessageInput/hooks/useMessageInputState.d.ts.map +1 -1
  137. package/dist/components/MessageInput/hooks/useMessageInputState.js +2 -3
  138. package/dist/components/MessageInput/hooks/useMessageInputText.js +1 -1
  139. package/dist/components/MessageInput/hooks/useSubmitHandler.js +3 -3
  140. package/dist/components/MessageInput/hooks/useUserTrigger.js +3 -2
  141. package/dist/components/MessageInput/hooks/utils.d.ts +1 -0
  142. package/dist/components/MessageInput/hooks/utils.d.ts.map +1 -1
  143. package/dist/components/MessageInput/hooks/utils.js +7 -4
  144. package/dist/components/MessageInput/icons.js +5 -5
  145. package/dist/components/MessageList/ConnectionStatus.js +2 -2
  146. package/dist/components/MessageList/MessageList.d.ts +1 -9
  147. package/dist/components/MessageList/MessageList.d.ts.map +1 -1
  148. package/dist/components/MessageList/MessageList.js +10 -18
  149. package/dist/components/MessageList/MessageListNotifications.d.ts +11 -0
  150. package/dist/components/MessageList/MessageListNotifications.d.ts.map +1 -0
  151. package/dist/components/MessageList/MessageListNotifications.js +12 -0
  152. package/dist/components/MessageList/VirtualizedMessageList.d.ts +4 -2
  153. package/dist/components/MessageList/VirtualizedMessageList.d.ts.map +1 -1
  154. package/dist/components/MessageList/VirtualizedMessageList.js +13 -14
  155. package/dist/components/MessageList/hooks/useEnrichedMessages.d.ts.map +1 -1
  156. package/dist/components/MessageList/hooks/useEnrichedMessages.js +2 -2
  157. package/dist/components/MessageList/hooks/useGiphyPreview.js +1 -1
  158. package/dist/components/MessageList/hooks/useMessageListElements.d.ts.map +1 -1
  159. package/dist/components/MessageList/hooks/useMessageListElements.js +2 -2
  160. package/dist/components/MessageList/hooks/useMessageListScrollManager.js +1 -1
  161. package/dist/components/Modal/Modal.js +1 -1
  162. package/dist/components/Reactions/ReactionSelector.d.ts.map +1 -1
  163. package/dist/components/Reactions/ReactionSelector.js +3 -3
  164. package/dist/components/Reactions/ReactionsList.d.ts.map +1 -1
  165. package/dist/components/Reactions/ReactionsList.js +2 -2
  166. package/dist/components/Reactions/SimpleReactionsList.js +2 -2
  167. package/dist/components/Thread/Thread.d.ts.map +1 -1
  168. package/dist/components/Thread/Thread.js +8 -9
  169. package/dist/components/TypingIndicator/TypingIndicator.d.ts.map +1 -1
  170. package/dist/components/TypingIndicator/TypingIndicator.js +3 -3
  171. package/dist/components/Window/Window.js +1 -1
  172. package/dist/context/ChannelActionContext.d.ts +2 -2
  173. package/dist/context/ChannelActionContext.d.ts.map +1 -1
  174. package/dist/context/ChannelActionContext.js +8 -3
  175. package/dist/context/ChannelStateContext.d.ts +4 -3
  176. package/dist/context/ChannelStateContext.d.ts.map +1 -1
  177. package/dist/context/ChannelStateContext.js +8 -3
  178. package/dist/context/ChatContext.d.ts +4 -3
  179. package/dist/context/ChatContext.d.ts.map +1 -1
  180. package/dist/context/ChatContext.js +9 -2
  181. package/dist/context/ComponentContext.d.ts +3 -3
  182. package/dist/context/ComponentContext.d.ts.map +1 -1
  183. package/dist/context/ComponentContext.js +8 -3
  184. package/dist/context/EmojiContext.d.ts +2 -2
  185. package/dist/context/EmojiContext.d.ts.map +1 -1
  186. package/dist/context/EmojiContext.js +8 -3
  187. package/dist/context/MessageContext.d.ts +3 -3
  188. package/dist/context/MessageContext.d.ts.map +1 -1
  189. package/dist/context/MessageContext.js +9 -2
  190. package/dist/context/MessageInputContext.d.ts +1 -4
  191. package/dist/context/MessageInputContext.d.ts.map +1 -1
  192. package/dist/context/MessageInputContext.js +4 -6
  193. package/dist/context/TranslationContext.d.ts +1 -1
  194. package/dist/context/TranslationContext.d.ts.map +1 -1
  195. package/dist/context/TranslationContext.js +8 -1
  196. package/dist/context/TypingContext.d.ts +2 -2
  197. package/dist/context/TypingContext.d.ts.map +1 -1
  198. package/dist/context/TypingContext.js +9 -2
  199. package/dist/css/index.css +1 -1
  200. package/dist/i18n/Streami18n.js +2 -2
  201. package/dist/i18n/de.json +4 -4
  202. package/dist/index.cjs.js +661 -426
  203. package/dist/index.cjs.js.map +1 -1
  204. package/dist/scss/Avatar.scss +19 -2
  205. package/dist/scss/Message.scss +2 -1
  206. package/dist/scss/MessageList.scss +10 -2
  207. package/dist/scss/MessageNotification.scss +36 -0
  208. package/dist/scss/_base.scss +4 -3
  209. package/dist/scss/_variables.scss +1 -1
  210. package/dist/utils.d.ts +9 -2
  211. package/dist/utils.d.ts.map +1 -1
  212. package/dist/utils.js +27 -20
  213. package/dist/version.d.ts +1 -1
  214. package/dist/version.d.ts.map +1 -1
  215. package/dist/version.js +1 -1
  216. package/package.json +6 -5
@@ -4,7 +4,7 @@ import giphyLogo from '../../assets/Poweredby_100px-White_VertText.png';
4
4
  import { useTranslationContext } from '../../context/TranslationContext';
5
5
  var UnMemoizedCard = function (props) {
6
6
  var image_url = props.image_url, og_scrape_url = props.og_scrape_url, text = props.text, thumb_url = props.thumb_url, title = props.title, title_link = props.title_link, type = props.type;
7
- var t = useTranslationContext().t;
7
+ var t = useTranslationContext('Card').t;
8
8
  var image = thumb_url || image_url;
9
9
  var trimUrl = function (url) {
10
10
  if (url !== undefined && url !== null) {
@@ -1,5 +1,7 @@
1
1
  import React from 'react';
2
+ export declare type CurrentTrigger<T extends string = string> = '/' | '@' | ':' | T;
2
3
  export declare type SuggestionListHeaderProps = {
4
+ currentTrigger: CurrentTrigger;
3
5
  value: string;
4
6
  };
5
7
  export declare const DefaultSuggestionListHeader: React.FC<SuggestionListHeaderProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../src/components/AutoCompleteTextarea/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,oBAAY,yBAAyB,GAAG;IACtC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAyB3E,CAAC"}
1
+ {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../src/components/AutoCompleteTextarea/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,oBAAY,cAAc,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AAE5E,oBAAY,yBAAyB,GAAG;IACtC,cAAc,EAAE,cAAc,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAgC3E,CAAC"}
@@ -1,25 +1,26 @@
1
1
  import React from 'react';
2
2
  import { useTranslationContext } from '../../context/TranslationContext';
3
- export var DefaultSuggestionListHeader = function (_a) {
4
- var value = _a.value;
5
- var t = useTranslationContext().t;
6
- if (value[0] === '/') {
3
+ export var DefaultSuggestionListHeader = function (props) {
4
+ var currentTrigger = props.currentTrigger, value = props.value;
5
+ var t = useTranslationContext('DefaultSuggestionListHeader').t;
6
+ var triggerIndex = value.lastIndexOf(currentTrigger);
7
+ if (currentTrigger === '/') {
7
8
  return (React.createElement(React.Fragment, null,
8
9
  t('Commands matching'),
9
10
  " ",
10
- React.createElement("strong", null, value.replace('/', ''))));
11
+ React.createElement("strong", null, value.slice(triggerIndex + 1))));
11
12
  }
12
- if (value[0] === ':') {
13
+ if (currentTrigger === ':') {
13
14
  return (React.createElement(React.Fragment, null,
14
15
  t('Emoji matching'),
15
16
  " ",
16
- React.createElement("strong", null, value.replace(':', ''))));
17
+ React.createElement("strong", null, value.slice(triggerIndex + 1))));
17
18
  }
18
- if (value[0] === '@') {
19
+ if (currentTrigger === '@') {
19
20
  return (React.createElement(React.Fragment, null,
20
21
  t('People matching'),
21
22
  " ",
22
- React.createElement("strong", null, value.replace('@', ''))));
23
+ React.createElement("strong", null, value.slice(triggerIndex + 1))));
23
24
  }
24
25
  return null;
25
26
  };
@@ -1 +1 @@
1
- {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../src/components/AutoCompleteTextarea/List.js"],"names":[],"mappings":"AASO,8CA6IN"}
1
+ {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../src/components/AutoCompleteTextarea/List.js"],"names":[],"mappings":"AASO,8CA8IN"}
@@ -99,8 +99,8 @@ export var List = function (props) {
99
99
  };
100
100
  return (React.createElement("ul", { className: "rta__list " + (className || ''), style: style },
101
101
  React.createElement("li", { className: 'rta__list-header' },
102
- React.createElement(SuggestionHeader, { value: propValue })),
102
+ React.createElement(SuggestionHeader, { currentTrigger: currentTrigger, value: propValue })),
103
103
  values.map(function (item, i) { return (React.createElement(SuggestionItem, { className: itemClassName, component: component, item: restructureItem(item), key: getId(item), onClickHandler: handleClick, onSelectHandler: selectItem, ref: function (ref) {
104
104
  itemsRef[i] = ref;
105
- }, selected: isSelected(item), style: itemStyle })); })));
105
+ }, selected: isSelected(item), style: itemStyle, value: propValue })); })));
106
106
  };
@@ -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",
@@ -99,6 +99,8 @@ export declare type ChannelProps<At extends DefaultAttachmentType = DefaultAttac
99
99
  ReactionsList?: ComponentContextValue<At, Ch, Co, Ev, Me, Re, Us>['ReactionsList'];
100
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) */
101
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;
102
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) */
103
105
  ThreadHeader?: ComponentContextValue<At, Ch, Co, Ev, Me, Re, Us>['ThreadHeader'];
104
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';
@@ -84,39 +86,39 @@ import { TypingProvider } from '../../context/TypingContext';
84
86
  import defaultEmojiData from '../../stream-emoji.json';
85
87
  var UnMemoizedChannel = function (props) {
86
88
  var propsChannel = props.channel, _a = props.EmptyPlaceholder, EmptyPlaceholder = _a === void 0 ? null : _a;
87
- var contextChannel = useChatContext().channel;
89
+ var contextChannel = useChatContext('Channel').channel;
88
90
  var channel = propsChannel || contextChannel;
89
91
  if (!(channel === null || channel === void 0 ? void 0 : channel.cid))
90
92
  return EmptyPlaceholder;
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, 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;
95
- var _e = useChatContext(), client = _e.client, customClasses = _e.customClasses, mutes = _e.mutes, theme = _e.theme, useImageFlagEmojisOnWindows = _e.useImageFlagEmojisOnWindows;
96
- var t = useTranslationContext().t;
97
- var _f = useState([]), notifications = _f[0], setNotifications = _f[1];
98
- var _g = useState(), quotedMessage = _g[0], setQuotedMessage = _g[1];
96
+ var _a;
97
+ var acceptedFiles = props.acceptedFiles, activeUnreadHandler = props.activeUnreadHandler, channel = props.channel, children = props.children, doMarkReadRequest = props.doMarkReadRequest, doSendMessageRequest = props.doSendMessageRequest, doUpdateMessageRequest = props.doUpdateMessageRequest, _b = props.emojiData, emojiData = _b === void 0 ? defaultEmojiData : _b, _c = props.LoadingErrorIndicator, LoadingErrorIndicator = _c === void 0 ? DefaultLoadingErrorIndicator : _c, _d = props.LoadingIndicator, LoadingIndicator = _d === void 0 ? DefaultLoadingIndicator : _d, maxNumberOfFiles = props.maxNumberOfFiles, _e = props.multipleUploads, multipleUploads = _e === void 0 ? true : _e, onMentionsClick = props.onMentionsClick, onMentionsHover = props.onMentionsHover, skipMessageDataMemoization = props.skipMessageDataMemoization;
98
+ var _f = useChatContext('Channel'), client = _f.client, customClasses = _f.customClasses, mutes = _f.mutes, theme = _f.theme, useImageFlagEmojisOnWindows = _f.useImageFlagEmojisOnWindows;
99
+ var t = useTranslationContext('Channel').t;
100
+ var _g = useState(channel.getConfig()), channelConfig = _g[0], setChannelConfig = _g[1];
101
+ var _h = useState([]), notifications = _h[0], setNotifications = _h[1];
102
+ var _j = useState(), quotedMessage = _j[0], setQuotedMessage = _j[1];
99
103
  var notificationTimeouts = [];
100
- var _h = useReducer(channelReducer, initialState), state = _h[0], dispatch = _h[1];
104
+ var _k = useReducer(channelReducer, initialState), state = _k[0], dispatch = _k[1];
101
105
  var isMounted = useIsMounted();
102
106
  var originalTitle = useRef('');
103
107
  var lastRead = useRef(new Date());
104
108
  var online = useRef(true);
105
- var channelConfig = channel.getConfig();
109
+ var channelCapabilitiesArray = (_a = channel.data) === null || _a === void 0 ? void 0 : _a.own_capabilities;
106
110
  var emojiConfig = {
107
111
  commonEmoji: commonEmoji,
108
112
  defaultMinimalEmojis: defaultMinimalEmojis,
109
113
  emojiData: emojiData,
110
114
  emojiSetDef: emojiSetDef,
111
115
  };
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)) {
116
+ var throttledCopyStateFromChannel = throttle(function () { return dispatch({ channel: channel, type: 'copyStateFromChannelOnEvent' }); }, 500, {
117
+ leading: true,
118
+ trailing: true,
119
+ });
120
+ var markRead = function () {
121
+ if (channel.disconnected || !(channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.read_events)) {
120
122
  return;
121
123
  }
122
124
  lastRead.current = new Date();
@@ -126,13 +128,16 @@ var ChannelInner = function (props) {
126
128
  else {
127
129
  logChatPromiseExecution(channel.markRead(), 'mark read');
128
130
  }
129
- if (originalTitle.current) {
131
+ if (activeUnreadHandler) {
132
+ activeUnreadHandler(0, originalTitle.current);
133
+ }
134
+ else if (originalTitle.current) {
130
135
  document.title = originalTitle.current;
131
136
  }
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;
137
+ };
138
+ var markReadThrottled = throttle(markRead, 500, { leading: true, trailing: true });
139
+ var handleEvent = function (event) {
140
+ var _a, _b, _c, _d;
136
141
  if (event.message) {
137
142
  dispatch({
138
143
  channel: channel,
@@ -140,12 +145,10 @@ var ChannelInner = function (props) {
140
145
  type: 'updateThreadOnEvent',
141
146
  });
142
147
  }
143
- if (event.type === 'typing.start' || event.type === 'typing.stop') {
144
- dispatch({
145
- channel: channel,
146
- type: 'setTyping',
147
- });
148
+ if (event.type === 'user.watching.start' || event.type === 'user.watching.stop')
148
149
  return;
150
+ if (event.type === 'typing.start' || event.type === 'typing.stop') {
151
+ return dispatch({ channel: channel, type: 'setTyping' });
149
152
  }
150
153
  if (event.type === 'connection.changed' && typeof event.online === 'boolean') {
151
154
  online.current = event.online;
@@ -159,7 +162,7 @@ var ChannelInner = function (props) {
159
162
  if (!document.hidden) {
160
163
  markReadThrottled();
161
164
  }
162
- else if (((_e = channel.getConfig()) === null || _e === void 0 ? void 0 : _e.read_events) && !channel.muteStatus().muted) {
165
+ else if ((channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.read_events) && !channel.muteStatus().muted) {
163
166
  var unread = channel.countUnread(lastRead.current);
164
167
  if (activeUnreadHandler) {
165
168
  activeUnreadHandler(unread, originalTitle.current);
@@ -171,28 +174,29 @@ var ChannelInner = function (props) {
171
174
  }
172
175
  }
173
176
  throttledCopyStateFromChannel();
174
- }, [channel, client.userID, markReadThrottled, throttledCopyStateFromChannel]);
177
+ };
175
178
  // useLayoutEffect here to prevent spinner. Use Suspense when it is available in stable release
176
179
  useLayoutEffect(function () {
177
180
  var errored = false;
178
181
  var done = false;
179
182
  var onVisibilityChange = function () {
180
- if (!document.hidden) {
183
+ if (!document.hidden)
181
184
  markRead();
182
- }
183
185
  };
184
186
  (function () { return __awaiter(void 0, void 0, void 0, function () {
185
- var e_1;
187
+ var config, e_1;
186
188
  return __generator(this, function (_a) {
187
189
  switch (_a.label) {
188
190
  case 0:
189
- if (!(channel && !channel.initialized)) return [3 /*break*/, 4];
191
+ if (!!channel.initialized) return [3 /*break*/, 4];
190
192
  _a.label = 1;
191
193
  case 1:
192
194
  _a.trys.push([1, 3, , 4]);
193
195
  return [4 /*yield*/, channel.watch()];
194
196
  case 2:
195
197
  _a.sent();
198
+ config = channel.getConfig();
199
+ setChannelConfig(config);
196
200
  return [3 /*break*/, 4];
197
201
  case 3:
198
202
  e_1 = _a.sent();
@@ -202,7 +206,7 @@ var ChannelInner = function (props) {
202
206
  case 4:
203
207
  done = true;
204
208
  originalTitle.current = document.title;
205
- if (channel && !errored) {
209
+ if (!errored) {
206
210
  dispatch({ channel: channel, type: 'initStateFromChannel' });
207
211
  if (channel.countUnread() > 0)
208
212
  markRead();
@@ -222,15 +226,14 @@ var ChannelInner = function (props) {
222
226
  if (errored || !done)
223
227
  return;
224
228
  document.removeEventListener('visibilitychange', onVisibilityChange);
225
- if (channel)
226
- channel.off(handleEvent);
229
+ channel === null || channel === void 0 ? void 0 : channel.off(handleEvent);
227
230
  client.off('connection.changed', handleEvent);
228
231
  client.off('connection.recovered', handleEvent);
229
232
  client.off('user.updated', handleEvent);
230
233
  client.off('user.deleted', handleEvent);
231
234
  notificationTimeouts.forEach(clearTimeout);
232
235
  };
233
- }, [channel, client, handleEvent, markRead]);
236
+ }, [channel.cid]);
234
237
  useEffect(function () {
235
238
  var _a;
236
239
  if (state.thread && ((_a = state.messages) === null || _a === void 0 ? void 0 : _a.length)) {
@@ -257,17 +260,15 @@ var ChannelInner = function (props) {
257
260
  }, 5000);
258
261
  notificationTimeouts.push(timeout);
259
262
  };
260
- var loadMoreFinished = useCallback(debounce(function (hasMore, messages) {
263
+ var loadMoreFinished = debounce(function (hasMore, messages) {
261
264
  if (!isMounted.current)
262
265
  return;
263
266
  dispatch({ hasMore: hasMore, messages: messages, type: 'loadMoreFinished' });
264
267
  }, 2000, {
265
268
  leading: true,
266
269
  trailing: true,
267
- }), []);
268
- var loadMore = useCallback(
269
- // eslint-disable-next-line @typescript-eslint/no-inferrable-types
270
- function (limit) {
270
+ });
271
+ var loadMore = function (limit) {
271
272
  if (limit === void 0) { limit = 100; }
272
273
  return __awaiter(void 0, void 0, void 0, function () {
273
274
  var oldestMessage, oldestID, perPage, queryResponse, e_2, hasMoreMessages;
@@ -275,7 +276,7 @@ var ChannelInner = function (props) {
275
276
  return __generator(this, function (_b) {
276
277
  switch (_b.label) {
277
278
  case 0:
278
- if (!online.current || !window.navigator.onLine || !channel)
279
+ if (!online.current || !window.navigator.onLine)
279
280
  return [2 /*return*/, 0];
280
281
  oldestMessage = (_a = state === null || state === void 0 ? void 0 : state.messages) === null || _a === void 0 ? void 0 : _a[0];
281
282
  if (state.loadingMore || (oldestMessage === null || oldestMessage === void 0 ? void 0 : oldestMessage.status) !== 'received')
@@ -310,27 +311,22 @@ var ChannelInner = function (props) {
310
311
  }
311
312
  });
312
313
  });
313
- }, [channel, loadMoreFinished, online, state.loadingMore, state.messages]);
314
- var updateMessage = useCallback(function (updatedMessage) {
315
- if (!channel)
316
- return;
317
- // adds the message to the local channel state..
318
- // this adds to both the main channel state as well as any reply threads
314
+ };
315
+ var updateMessage = function (updatedMessage) {
316
+ // add the message to the local channel state
319
317
  channel.state.addMessageSorted(updatedMessage, true);
320
318
  dispatch({
321
319
  channel: channel,
322
320
  parentId: state.thread && updatedMessage.parent_id,
323
321
  type: 'copyMessagesFromChannel',
324
322
  });
325
- }, [channel, state.thread]);
323
+ };
326
324
  var isUserResponseArray = function (output) { var _a; return ((_a = output[0]) === null || _a === void 0 ? void 0 : _a.id) != null; };
327
- var doSendMessage = useCallback(function (message, customMessageData) { return __awaiter(void 0, void 0, void 0, function () {
325
+ var doSendMessage = function (message, customMessageData) { return __awaiter(void 0, void 0, void 0, function () {
328
326
  var attachments, id, _a, mentioned_users, parent_id, text, mentions, messageData, messageResponse, error_1, stringError, parsedError;
329
327
  return __generator(this, function (_b) {
330
328
  switch (_b.label) {
331
329
  case 0:
332
- if (!channel)
333
- return [2 /*return*/];
334
330
  attachments = message.attachments, id = message.id, _a = message.mentioned_users, mentioned_users = _a === void 0 ? [] : _a, parent_id = message.parent_id, text = message.text;
335
331
  mentions = isUserResponseArray(mentioned_users)
336
332
  ? mentioned_users.map(function (_a) {
@@ -354,7 +350,7 @@ var ChannelInner = function (props) {
354
350
  _b.label = 5;
355
351
  case 5:
356
352
  // replace it after send is completed
357
- if (messageResponse && messageResponse.message) {
353
+ if (messageResponse === null || messageResponse === void 0 ? void 0 : messageResponse.message) {
358
354
  updateMessage(__assign(__assign({}, messageResponse.message), { status: 'received' }));
359
355
  }
360
356
  if (quotedMessage)
@@ -369,25 +365,20 @@ var ChannelInner = function (props) {
369
365
  case 7: return [2 /*return*/];
370
366
  }
371
367
  });
372
- }); }, [channel, doSendMessageRequest, quotedMessage, updateMessage]);
373
- var createMessagePreview = useCallback(function (text, attachments, parent, mentioned_users) {
374
- // create a preview of the message
368
+ }); };
369
+ var createMessagePreview = function (text, attachments, parent, mentioned_users) {
375
370
  var clientSideID = client.userID + "-" + uuidv4();
376
371
  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));
377
- }, [client.user, client.userID]);
378
- var sendMessage = useCallback(function (_a, customMessageData) {
372
+ };
373
+ var sendMessage = function (_a, customMessageData) {
379
374
  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;
380
375
  return __awaiter(void 0, void 0, void 0, function () {
381
376
  var messagePreview;
382
377
  return __generator(this, function (_f) {
383
378
  switch (_f.label) {
384
379
  case 0:
385
- if (!channel)
386
- return [2 /*return*/];
387
- // remove error messages upon submit
388
380
  channel.state.filterErrorMessages();
389
381
  messagePreview = createMessagePreview(text, attachments, parent, mentioned_users);
390
- // first we add the message to the UI
391
382
  updateMessage(messagePreview);
392
383
  return [4 /*yield*/, doSendMessage(messagePreview, customMessageData)];
393
384
  case 1:
@@ -396,62 +387,55 @@ var ChannelInner = function (props) {
396
387
  }
397
388
  });
398
389
  });
399
- }, [channel === null || channel === void 0 ? void 0 : channel.state, createMessagePreview, doSendMessage, updateMessage]);
400
- var retrySendMessage = useCallback(function (message) { return __awaiter(void 0, void 0, void 0, function () {
390
+ };
391
+ var retrySendMessage = function (message) { return __awaiter(void 0, void 0, void 0, function () {
401
392
  return __generator(this, function (_a) {
402
393
  switch (_a.label) {
403
394
  case 0:
404
- // set the message status to sending
405
395
  updateMessage(__assign(__assign({}, message), { errorStatusCode: undefined, status: 'sending' }));
406
- // actually try to send the message...
407
396
  return [4 /*yield*/, doSendMessage(message)];
408
397
  case 1:
409
- // actually try to send the message...
410
398
  _a.sent();
411
399
  return [2 /*return*/];
412
400
  }
413
401
  });
414
- }); }, [doSendMessage, updateMessage]);
415
- var removeMessage = useCallback(function (message) {
416
- if (!channel)
417
- return;
402
+ }); };
403
+ var removeMessage = function (message) {
418
404
  channel.state.removeMessage(message);
419
405
  dispatch({
420
406
  channel: channel,
421
407
  parentId: state.thread && message.parent_id,
422
408
  type: 'copyMessagesFromChannel',
423
409
  });
424
- }, [channel, state.thread]);
410
+ };
425
411
  /** THREAD */
426
- var openThread = useCallback(function (message, event) {
427
- if (!channel)
428
- return;
429
- if (event && event.preventDefault) {
430
- event.preventDefault();
431
- }
412
+ var openThread = function (message, event) {
413
+ event.preventDefault();
432
414
  dispatch({ channel: channel, message: message, type: 'openThread' });
433
- }, [channel]);
434
- var loadMoreThreadFinished = useCallback(debounce(function (threadHasMore, threadMessages) {
415
+ };
416
+ var closeThread = function (event) {
417
+ event.preventDefault();
418
+ dispatch({ type: 'closeThread' });
419
+ };
420
+ var loadMoreThreadFinished = debounce(function (threadHasMore, threadMessages) {
435
421
  dispatch({
436
422
  threadHasMore: threadHasMore,
437
423
  threadMessages: threadMessages,
438
424
  type: 'loadMoreThreadFinished',
439
425
  });
440
- }, 2000, { leading: true, trailing: true }), []);
441
- var loadMoreThread = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
426
+ }, 2000, { leading: true, trailing: true });
427
+ var loadMoreThread = function () { return __awaiter(void 0, void 0, void 0, function () {
442
428
  var parentID, oldMessages, oldestMessageID, limit, queryResponse, threadHasMoreMessages, newThreadMessages, e_3;
443
429
  var _a;
444
430
  return __generator(this, function (_b) {
445
431
  switch (_b.label) {
446
432
  case 0:
447
- // prevent duplicate loading events...
448
- if (!channel || state.threadLoadingMore || !state.thread)
433
+ if (state.threadLoadingMore || !state.thread)
449
434
  return [2 /*return*/];
450
435
  dispatch({ type: 'startLoadingThread' });
451
436
  parentID = state.thread.id;
452
437
  if (!parentID) {
453
- dispatch({ type: 'closeThread' });
454
- return [2 /*return*/];
438
+ return [2 /*return*/, dispatch({ type: 'closeThread' })];
455
439
  }
456
440
  oldMessages = channel.state.threads[parentID] || [];
457
441
  oldestMessageID = (_a = oldMessages[0]) === null || _a === void 0 ? void 0 : _a.id;
@@ -467,7 +451,7 @@ var ChannelInner = function (props) {
467
451
  queryResponse = _b.sent();
468
452
  threadHasMoreMessages = queryResponse.messages.length === limit;
469
453
  newThreadMessages = channel.state.threads[parentID] || [];
470
- // next set loadingMore to false so we can start asking for more data...
454
+ // next set loadingMore to false so we can start asking for more data
471
455
  loadMoreThreadFinished(threadHasMoreMessages, newThreadMessages);
472
456
  return [3 /*break*/, 4];
473
457
  case 3:
@@ -477,18 +461,12 @@ var ChannelInner = function (props) {
477
461
  case 4: return [2 /*return*/];
478
462
  }
479
463
  });
480
- }); }, [channel, loadMoreThreadFinished, state.thread, state.threadLoadingMore]);
481
- var closeThread = useCallback(function (event) {
482
- if (event && event.preventDefault) {
483
- event.preventDefault();
484
- }
485
- dispatch({ type: 'closeThread' });
486
- }, []);
464
+ }); };
487
465
  var onMentionsHoverOrClick = useMentionsHandlers(onMentionsHover, onMentionsClick);
488
466
  var editMessage = useEditMessageHandler(doUpdateMessageRequest);
489
467
  var typing = state.typing, restState = __rest(state, ["typing"]);
490
- 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 });
491
- var channelActionContextValue = {
468
+ var channelStateContextValue = useCreateChannelStateContext(__assign(__assign({}, restState), { acceptedFiles: acceptedFiles, channel: channel, channelCapabilitiesArray: channelCapabilitiesArray, channelConfig: channelConfig, maxNumberOfFiles: maxNumberOfFiles, multipleUploads: multipleUploads, mutes: mutes, notifications: notifications, quotedMessage: quotedMessage, watcher_count: state.watcherCount }));
469
+ var channelActionContextValue = useMemo(function () { return ({
492
470
  addNotification: addNotification,
493
471
  closeThread: closeThread,
494
472
  dispatch: dispatch,
@@ -502,8 +480,9 @@ var ChannelInner = function (props) {
502
480
  retrySendMessage: retrySendMessage,
503
481
  sendMessage: sendMessage,
504
482
  setQuotedMessage: setQuotedMessage,
483
+ skipMessageDataMemoization: skipMessageDataMemoization,
505
484
  updateMessage: updateMessage,
506
- };
485
+ }); }, [channel.cid, loadMore, quotedMessage]);
507
486
  var componentContextValue = useMemo(function () { return ({
508
487
  Attachment: props.Attachment || DefaultAttachment,
509
488
  AutocompleteSuggestionHeader: props.AutocompleteSuggestionHeader,
@@ -547,10 +526,11 @@ var ChannelInner = function (props) {
547
526
  EmojiIndex: props.EmojiIndex,
548
527
  EmojiPicker: props.EmojiPicker,
549
528
  }); }, []);
550
- var typingContextValue = {
529
+ var typingContextValue = useCreateTypingContext({
551
530
  typing: typing,
552
- };
531
+ });
553
532
  var chatClass = (customClasses === null || customClasses === void 0 ? void 0 : customClasses.chat) || 'str-chat';
533
+ var chatContainerClass = (customClasses === null || customClasses === void 0 ? void 0 : customClasses.chatContainer) || 'str-chat__container';
554
534
  var channelClass = (customClasses === null || customClasses === void 0 ? void 0 : customClasses.channel) || 'str-chat-channel';
555
535
  var windowsEmojiClass = useImageFlagEmojisOnWindows && navigator.userAgent.match(/Win/)
556
536
  ? 'str-chat--windows-flags'
@@ -563,7 +543,7 @@ var ChannelInner = function (props) {
563
543
  return (React.createElement("div", { className: chatClass + " " + channelClass + " " + theme },
564
544
  React.createElement(LoadingIndicator, { size: 25 })));
565
545
  }
566
- if (!(channel === null || channel === void 0 ? void 0 : channel.watch)) {
546
+ if (!channel.watch) {
567
547
  return (React.createElement("div", { className: chatClass + " " + channelClass + " " + theme },
568
548
  React.createElement("div", null, t('Channel Missing'))));
569
549
  }
@@ -573,7 +553,7 @@ var ChannelInner = function (props) {
573
553
  React.createElement(ComponentProvider, { value: componentContextValue },
574
554
  React.createElement(EmojiProvider, { value: emojiContextValue },
575
555
  React.createElement(TypingProvider, { value: typingContextValue },
576
- React.createElement("div", { className: 'str-chat__container' }, children))))))));
556
+ React.createElement("div", { className: "" + chatContainerClass }, children))))))));
577
557
  };
578
558
  /**
579
559
  * A wrapper component that provides channel data and renders children.
@@ -0,0 +1,7 @@
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<ChannelStateContextValue<At, Ch, Co, Ev, Me, Re, Us>, "channelCapabilities"> & {
4
+ channelCapabilitiesArray: string[];
5
+ skipMessageDataMemoization?: boolean | undefined;
6
+ }) => ChannelStateContextValue<At, Ch, Co, Ev, Me, Re, Us>;
7
+ //# 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;8BAUX,MAAM,EAAE;;0DA8HrC,CAAC"}