stream-chat-react-native-core 5.1.1-beta.1 → 5.2.0-beta.1

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 (31) hide show
  1. package/lib/commonjs/components/ChannelList/ChannelListMessenger.js +32 -15
  2. package/lib/commonjs/components/ChannelList/ChannelListMessenger.js.map +1 -1
  3. package/lib/commonjs/components/Chat/Chat.js +17 -5
  4. package/lib/commonjs/components/Chat/Chat.js.map +1 -1
  5. package/lib/commonjs/components/MessageList/MessageList.js +39 -26
  6. package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
  7. package/lib/commonjs/contexts/debugContext/DebugContext.js +63 -0
  8. package/lib/commonjs/contexts/debugContext/DebugContext.js.map +1 -0
  9. package/lib/commonjs/contexts/index.js +13 -0
  10. package/lib/commonjs/contexts/index.js.map +1 -1
  11. package/lib/commonjs/version.json +1 -1
  12. package/lib/module/components/ChannelList/ChannelListMessenger.js +32 -15
  13. package/lib/module/components/ChannelList/ChannelListMessenger.js.map +1 -1
  14. package/lib/module/components/Chat/Chat.js +17 -5
  15. package/lib/module/components/Chat/Chat.js.map +1 -1
  16. package/lib/module/components/MessageList/MessageList.js +39 -26
  17. package/lib/module/components/MessageList/MessageList.js.map +1 -1
  18. package/lib/module/contexts/debugContext/DebugContext.js +63 -0
  19. package/lib/module/contexts/debugContext/DebugContext.js.map +1 -0
  20. package/lib/module/contexts/index.js +13 -0
  21. package/lib/module/contexts/index.js.map +1 -1
  22. package/lib/module/version.json +1 -1
  23. package/lib/typescript/contexts/debugContext/DebugContext.d.ts +27 -0
  24. package/lib/typescript/contexts/index.d.ts +1 -0
  25. package/package.json +2 -2
  26. package/src/components/ChannelList/ChannelListMessenger.tsx +17 -0
  27. package/src/components/Chat/Chat.tsx +13 -0
  28. package/src/components/MessageList/MessageList.tsx +15 -0
  29. package/src/contexts/debugContext/DebugContext.tsx +77 -0
  30. package/src/contexts/index.ts +1 -0
  31. package/src/version.json +1 -1
@@ -19,6 +19,8 @@ var _ChannelsContext = require("../../contexts/channelsContext/ChannelsContext")
19
19
 
20
20
  var _ChatContext = require("../../contexts/chatContext/ChatContext");
21
21
 
22
+ var _DebugContext = require("../../contexts/debugContext/DebugContext");
23
+
22
24
  var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
23
25
 
24
26
  var _ChannelPreview = require("../ChannelPreview/ChannelPreview");
@@ -64,14 +66,14 @@ var StatusIndicator = function StatusIndicator() {
64
66
  __self: _this,
65
67
  __source: {
66
68
  fileName: _jsxFileName,
67
- lineNumber: 53,
69
+ lineNumber: 54,
68
70
  columnNumber: 7
69
71
  }
70
72
  }, _react["default"].createElement(HeaderNetworkDownIndicator, {
71
73
  __self: _this,
72
74
  __source: {
73
75
  fileName: _jsxFileName,
74
- lineNumber: 54,
76
+ lineNumber: 55,
75
77
  columnNumber: 9
76
78
  }
77
79
  }));
@@ -81,7 +83,7 @@ var StatusIndicator = function StatusIndicator() {
81
83
  __self: _this,
82
84
  __source: {
83
85
  fileName: _jsxFileName,
84
- lineNumber: 59,
86
+ lineNumber: 60,
85
87
  columnNumber: 7
86
88
  }
87
89
  }, _react["default"].createElement(HeaderErrorIndicator, {
@@ -89,7 +91,7 @@ var StatusIndicator = function StatusIndicator() {
89
91
  __self: _this,
90
92
  __source: {
91
93
  fileName: _jsxFileName,
92
- lineNumber: 60,
94
+ lineNumber: 61,
93
95
  columnNumber: 9
94
96
  }
95
97
  }));
@@ -105,7 +107,7 @@ var renderItem = function renderItem(_ref) {
105
107
  __self: _this,
106
108
  __source: {
107
109
  fileName: _jsxFileName,
108
- lineNumber: 73,
110
+ lineNumber: 74,
109
111
  columnNumber: 7
110
112
  }
111
113
  });
@@ -146,11 +148,26 @@ var ChannelListMessengerWithContext = function ChannelListMessengerWithContext(p
146
148
  loading = _useState2[0],
147
149
  setLoading = _useState2[1];
148
150
 
151
+ var debugRef = (0, _DebugContext.useDebugContext)();
149
152
  (0, _react.useEffect)(function () {
150
153
  if (!!loadingChannels !== loading) {
151
154
  setLoading(!!loadingChannels);
152
155
  }
153
156
  }, [loading, loadingChannels]);
157
+ var isDebugModeEnabled = __DEV__ && debugRef && debugRef.current;
158
+
159
+ if (isDebugModeEnabled) {
160
+ if (debugRef.current.setEventType) debugRef.current.setEventType('send');
161
+ if (debugRef.current.setSendEventParams) debugRef.current.setSendEventParams({
162
+ action: 'Channels',
163
+ data: channels.map(function (channel) {
164
+ return {
165
+ data: channel.data,
166
+ members: channel.state.members
167
+ };
168
+ })
169
+ });
170
+ }
154
171
 
155
172
  if (error && !refreshing && !loadingChannels && !(channels != null && channels.length)) {
156
173
  return _react["default"].createElement(LoadingErrorIndicator, {
@@ -161,7 +178,7 @@ var ChannelListMessengerWithContext = function ChannelListMessengerWithContext(p
161
178
  __self: _this,
162
179
  __source: {
163
180
  fileName: _jsxFileName,
164
- lineNumber: 127,
181
+ lineNumber: 144,
165
182
  columnNumber: 7
166
183
  }
167
184
  });
@@ -178,7 +195,7 @@ var ChannelListMessengerWithContext = function ChannelListMessengerWithContext(p
178
195
  __self: _this,
179
196
  __source: {
180
197
  fileName: _jsxFileName,
181
- lineNumber: 143,
198
+ lineNumber: 160,
182
199
  columnNumber: 46
183
200
  }
184
201
  }) : null;
@@ -190,7 +207,7 @@ var ChannelListMessengerWithContext = function ChannelListMessengerWithContext(p
190
207
  __self: _this,
191
208
  __source: {
192
209
  fileName: _jsxFileName,
193
- lineNumber: 146,
210
+ lineNumber: 163,
194
211
  columnNumber: 12
195
212
  }
196
213
  });
@@ -208,7 +225,7 @@ var ChannelListMessengerWithContext = function ChannelListMessengerWithContext(p
208
225
  __self: _this,
209
226
  __source: {
210
227
  fileName: _jsxFileName,
211
- lineNumber: 162,
228
+ lineNumber: 179,
212
229
  columnNumber: 13
213
230
  }
214
231
  }) : _react["default"].createElement(EmptyStateIndicator, {
@@ -216,7 +233,7 @@ var ChannelListMessengerWithContext = function ChannelListMessengerWithContext(p
216
233
  __self: _this,
217
234
  __source: {
218
235
  fileName: _jsxFileName,
219
- lineNumber: 164,
236
+ lineNumber: 181,
220
237
  columnNumber: 13
221
238
  }
222
239
  }),
@@ -224,7 +241,7 @@ var ChannelListMessengerWithContext = function ChannelListMessengerWithContext(p
224
241
  __self: _this,
225
242
  __source: {
226
243
  fileName: _jsxFileName,
227
- lineNumber: 167,
244
+ lineNumber: 184,
228
245
  columnNumber: 48
229
246
  }
230
247
  }) : undefined,
@@ -238,7 +255,7 @@ var ChannelListMessengerWithContext = function ChannelListMessengerWithContext(p
238
255
  __self: _this,
239
256
  __source: {
240
257
  fileName: _jsxFileName,
241
- lineNumber: 172,
258
+ lineNumber: 189,
242
259
  columnNumber: 25
243
260
  }
244
261
  }),
@@ -251,14 +268,14 @@ var ChannelListMessengerWithContext = function ChannelListMessengerWithContext(p
251
268
  __self: _this,
252
269
  __source: {
253
270
  fileName: _jsxFileName,
254
- lineNumber: 151,
271
+ lineNumber: 168,
255
272
  columnNumber: 7
256
273
  }
257
274
  })), _react["default"].createElement(StatusIndicator, {
258
275
  __self: _this,
259
276
  __source: {
260
277
  fileName: _jsxFileName,
261
- lineNumber: 178,
278
+ lineNumber: 195,
262
279
  columnNumber: 7
263
280
  }
264
281
  }));
@@ -306,7 +323,7 @@ var ChannelListMessenger = function ChannelListMessenger(props) {
306
323
  __self: _this,
307
324
  __source: {
308
325
  fileName: _jsxFileName,
309
- lineNumber: 219,
326
+ lineNumber: 236,
310
327
  columnNumber: 5
311
328
  }
312
329
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["ChannelListMessenger.tsx"],"names":["styles","StyleSheet","create","flatList","flex","flatListContentContainer","flexGrow","statusIndicator","left","position","right","top","StatusIndicator","isOnline","error","HeaderErrorIndicator","HeaderNetworkDownIndicator","loadingChannels","refreshList","renderItem","item","keyExtractor","cid","ChannelListMessengerWithContext","props","additionalFlatListProps","channels","EmptyStateIndicator","FooterLoadingIndicator","forceUpdate","ListHeaderComponent","LoadingErrorIndicator","LoadingIndicator","loadingNextPage","loadMoreThreshold","loadNextPage","refreshing","reloadList","setFlatListRef","theme","channelListMessenger","flatListContent","white_snow","colors","loading","setLoading","length","onEndReached","ListFooterComponent","backgroundColor","undefined","ChannelListMessenger","displayName"],"mappings":"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","sourcesContent":["import React, { useEffect, useState } from 'react';\n// RNGR's FlatList ist currently breaking the pull-to-refresh behaviour on Android\n// See https://github.com/software-mansion/react-native-gesture-handler/issues/598\nimport { FlatList, RefreshControl, StyleSheet, View } from 'react-native';\n\nimport type { Channel } from 'stream-chat';\n\nimport {\n ChannelsContextValue,\n useChannelsContext,\n} from '../../contexts/channelsContext/ChannelsContext';\nimport { useChatContext } from '../../contexts/chatContext/ChatContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { ChannelPreview } from '../ChannelPreview/ChannelPreview';\n\nconst styles = StyleSheet.create({\n flatList: { flex: 1 },\n flatListContentContainer: { flexGrow: 1 },\n statusIndicator: { left: 0, position: 'absolute', right: 0, top: 0 },\n});\n\nexport type ChannelListMessengerPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Omit<\n ChannelsContextValue<StreamChatGenerics>,\n | 'hasNextPage'\n | 'HeaderErrorIndicator'\n | 'HeaderNetworkDownIndicator'\n | 'maxUnreadCount'\n | 'numberOfSkeletons'\n | 'onSelect'\n | 'Preview'\n | 'PreviewTitle'\n | 'PreviewStatus'\n | 'PreviewAvatar'\n | 'previewMessage'\n | 'Skeleton'\n>;\n\nconst StatusIndicator = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => {\n const { isOnline } = useChatContext<StreamChatGenerics>();\n const { error, HeaderErrorIndicator, HeaderNetworkDownIndicator, loadingChannels, refreshList } =\n useChannelsContext<StreamChatGenerics>();\n\n if (loadingChannels) return null;\n\n if (!isOnline) {\n return (\n <View style={styles.statusIndicator}>\n <HeaderNetworkDownIndicator />\n </View>\n );\n } else if (error) {\n return (\n <View style={styles.statusIndicator}>\n <HeaderErrorIndicator onPress={refreshList} />\n </View>\n );\n }\n return null;\n};\n\nconst renderItem = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n item,\n}: {\n item: Channel<StreamChatGenerics>;\n}) => <ChannelPreview<StreamChatGenerics> channel={item} />;\n\nconst keyExtractor = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n item: Channel<StreamChatGenerics>,\n) => item.cid;\n\nconst ChannelListMessengerWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelListMessengerPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalFlatListProps,\n channels,\n EmptyStateIndicator,\n error,\n FooterLoadingIndicator,\n forceUpdate,\n ListHeaderComponent,\n loadingChannels,\n LoadingErrorIndicator,\n LoadingIndicator,\n loadingNextPage,\n loadMoreThreshold,\n loadNextPage,\n refreshing,\n refreshList,\n reloadList,\n setFlatListRef,\n } = props;\n\n const {\n theme: {\n channelListMessenger: { flatList, flatListContent },\n colors: { white_snow },\n },\n } = useTheme();\n\n /**\n * In order to prevent the EmptyStateIndicator component from showing up briefly on mount,\n * we set the loading state one cycle behind to ensure the channels are set before the\n * change to loadingChannels is registered.\n */\n const [loading, setLoading] = useState(true);\n useEffect(() => {\n if (!!loadingChannels !== loading) {\n setLoading(!!loadingChannels);\n }\n }, [loading, loadingChannels]);\n\n if (error && !refreshing && !loadingChannels && !channels?.length) {\n return (\n <LoadingErrorIndicator\n error={error}\n listType='channel'\n loadNextPage={loadNextPage}\n retry={reloadList}\n />\n );\n }\n\n const onEndReached = () => {\n if (loadNextPage) {\n loadNextPage();\n }\n };\n\n const ListFooterComponent = () =>\n channels.length && ListHeaderComponent ? <ListHeaderComponent /> : null;\n\n if (loadingChannels) {\n return <LoadingIndicator listType='channel' />;\n }\n\n return (\n <>\n <FlatList\n contentContainerStyle={[\n styles.flatListContentContainer,\n { backgroundColor: white_snow },\n flatListContent,\n ]}\n data={channels}\n extraData={forceUpdate}\n keyExtractor={keyExtractor}\n ListEmptyComponent={\n loading ? (\n <LoadingIndicator listType='channel' />\n ) : (\n <EmptyStateIndicator listType='channel' />\n )\n }\n ListFooterComponent={loadingNextPage ? <FooterLoadingIndicator /> : undefined}\n ListHeaderComponent={ListFooterComponent}\n onEndReached={onEndReached}\n onEndReachedThreshold={loadMoreThreshold}\n ref={setFlatListRef}\n refreshControl={<RefreshControl onRefresh={refreshList} refreshing={refreshing} />}\n renderItem={renderItem}\n style={[styles.flatList, { backgroundColor: white_snow }, flatList]}\n testID='channel-list-messenger'\n {...additionalFlatListProps}\n />\n <StatusIndicator<StreamChatGenerics> />\n </>\n );\n};\n\nexport type ChannelListMessengerProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<ChannelListMessengerPropsWithContext<StreamChatGenerics>>;\n\n/**\n * This UI component displays the preview list of channels and handles Channel navigation. It\n * receives all props from the ChannelList component.\n *\n * @example ./ChannelListMessenger.md\n */\nexport const ChannelListMessenger = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelListMessengerProps<StreamChatGenerics>,\n) => {\n const {\n additionalFlatListProps,\n channels,\n EmptyStateIndicator,\n error,\n FooterLoadingIndicator,\n forceUpdate,\n ListHeaderComponent,\n loadingChannels,\n LoadingErrorIndicator,\n LoadingIndicator,\n loadingNextPage,\n loadMoreThreshold,\n loadNextPage,\n refreshing,\n refreshList,\n reloadList,\n setFlatListRef,\n } = useChannelsContext<StreamChatGenerics>();\n\n return (\n <ChannelListMessengerWithContext\n {...{\n additionalFlatListProps,\n channels,\n EmptyStateIndicator,\n error,\n FooterLoadingIndicator,\n forceUpdate,\n ListHeaderComponent,\n loadingChannels,\n LoadingErrorIndicator,\n LoadingIndicator,\n loadingNextPage,\n loadMoreThreshold,\n loadNextPage,\n refreshing,\n refreshList,\n reloadList,\n setFlatListRef,\n }}\n {...props}\n />\n );\n};\n\nChannelListMessenger.displayName = 'ChannelListMessenger{channelListMessenger}';\n"]}
1
+ {"version":3,"sources":["ChannelListMessenger.tsx"],"names":["styles","StyleSheet","create","flatList","flex","flatListContentContainer","flexGrow","statusIndicator","left","position","right","top","StatusIndicator","isOnline","error","HeaderErrorIndicator","HeaderNetworkDownIndicator","loadingChannels","refreshList","renderItem","item","keyExtractor","cid","ChannelListMessengerWithContext","props","additionalFlatListProps","channels","EmptyStateIndicator","FooterLoadingIndicator","forceUpdate","ListHeaderComponent","LoadingErrorIndicator","LoadingIndicator","loadingNextPage","loadMoreThreshold","loadNextPage","refreshing","reloadList","setFlatListRef","theme","channelListMessenger","flatListContent","white_snow","colors","loading","setLoading","debugRef","isDebugModeEnabled","__DEV__","current","setEventType","setSendEventParams","action","data","map","channel","members","state","length","onEndReached","ListFooterComponent","backgroundColor","undefined","ChannelListMessenger","displayName"],"mappings":"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","sourcesContent":["import React, { useEffect, useState } from 'react';\n// RNGR's FlatList ist currently breaking the pull-to-refresh behaviour on Android\n// See https://github.com/software-mansion/react-native-gesture-handler/issues/598\nimport { FlatList, RefreshControl, StyleSheet, View } from 'react-native';\n\nimport type { Channel } from 'stream-chat';\n\nimport {\n ChannelsContextValue,\n useChannelsContext,\n} from '../../contexts/channelsContext/ChannelsContext';\nimport { useChatContext } from '../../contexts/chatContext/ChatContext';\nimport { useDebugContext } from '../../contexts/debugContext/DebugContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { ChannelPreview } from '../ChannelPreview/ChannelPreview';\n\nconst styles = StyleSheet.create({\n flatList: { flex: 1 },\n flatListContentContainer: { flexGrow: 1 },\n statusIndicator: { left: 0, position: 'absolute', right: 0, top: 0 },\n});\n\nexport type ChannelListMessengerPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Omit<\n ChannelsContextValue<StreamChatGenerics>,\n | 'hasNextPage'\n | 'HeaderErrorIndicator'\n | 'HeaderNetworkDownIndicator'\n | 'maxUnreadCount'\n | 'numberOfSkeletons'\n | 'onSelect'\n | 'Preview'\n | 'PreviewTitle'\n | 'PreviewStatus'\n | 'PreviewAvatar'\n | 'previewMessage'\n | 'Skeleton'\n>;\n\nconst StatusIndicator = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => {\n const { isOnline } = useChatContext<StreamChatGenerics>();\n const { error, HeaderErrorIndicator, HeaderNetworkDownIndicator, loadingChannels, refreshList } =\n useChannelsContext<StreamChatGenerics>();\n\n if (loadingChannels) return null;\n\n if (!isOnline) {\n return (\n <View style={styles.statusIndicator}>\n <HeaderNetworkDownIndicator />\n </View>\n );\n } else if (error) {\n return (\n <View style={styles.statusIndicator}>\n <HeaderErrorIndicator onPress={refreshList} />\n </View>\n );\n }\n return null;\n};\n\nconst renderItem = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n item,\n}: {\n item: Channel<StreamChatGenerics>;\n}) => <ChannelPreview<StreamChatGenerics> channel={item} />;\n\nconst keyExtractor = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n item: Channel<StreamChatGenerics>,\n) => item.cid;\n\nconst ChannelListMessengerWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelListMessengerPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalFlatListProps,\n channels,\n EmptyStateIndicator,\n error,\n FooterLoadingIndicator,\n forceUpdate,\n ListHeaderComponent,\n loadingChannels,\n LoadingErrorIndicator,\n LoadingIndicator,\n loadingNextPage,\n loadMoreThreshold,\n loadNextPage,\n refreshing,\n refreshList,\n reloadList,\n setFlatListRef,\n } = props;\n\n const {\n theme: {\n channelListMessenger: { flatList, flatListContent },\n colors: { white_snow },\n },\n } = useTheme();\n\n /**\n * In order to prevent the EmptyStateIndicator component from showing up briefly on mount,\n * we set the loading state one cycle behind to ensure the channels are set before the\n * change to loadingChannels is registered.\n */\n const [loading, setLoading] = useState(true);\n const debugRef = useDebugContext();\n\n useEffect(() => {\n if (!!loadingChannels !== loading) {\n setLoading(!!loadingChannels);\n }\n }, [loading, loadingChannels]);\n\n const isDebugModeEnabled = __DEV__ && debugRef && debugRef.current;\n\n if (isDebugModeEnabled) {\n if (debugRef.current.setEventType) debugRef.current.setEventType('send');\n if (debugRef.current.setSendEventParams)\n debugRef.current.setSendEventParams({\n action: 'Channels',\n data: channels.map((channel) => ({\n data: channel.data,\n members: channel.state.members,\n })),\n });\n }\n\n if (error && !refreshing && !loadingChannels && !channels?.length) {\n return (\n <LoadingErrorIndicator\n error={error}\n listType='channel'\n loadNextPage={loadNextPage}\n retry={reloadList}\n />\n );\n }\n\n const onEndReached = () => {\n if (loadNextPage) {\n loadNextPage();\n }\n };\n\n const ListFooterComponent = () =>\n channels.length && ListHeaderComponent ? <ListHeaderComponent /> : null;\n\n if (loadingChannels) {\n return <LoadingIndicator listType='channel' />;\n }\n\n return (\n <>\n <FlatList\n contentContainerStyle={[\n styles.flatListContentContainer,\n { backgroundColor: white_snow },\n flatListContent,\n ]}\n data={channels}\n extraData={forceUpdate}\n keyExtractor={keyExtractor}\n ListEmptyComponent={\n loading ? (\n <LoadingIndicator listType='channel' />\n ) : (\n <EmptyStateIndicator listType='channel' />\n )\n }\n ListFooterComponent={loadingNextPage ? <FooterLoadingIndicator /> : undefined}\n ListHeaderComponent={ListFooterComponent}\n onEndReached={onEndReached}\n onEndReachedThreshold={loadMoreThreshold}\n ref={setFlatListRef}\n refreshControl={<RefreshControl onRefresh={refreshList} refreshing={refreshing} />}\n renderItem={renderItem}\n style={[styles.flatList, { backgroundColor: white_snow }, flatList]}\n testID='channel-list-messenger'\n {...additionalFlatListProps}\n />\n <StatusIndicator<StreamChatGenerics> />\n </>\n );\n};\n\nexport type ChannelListMessengerProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<ChannelListMessengerPropsWithContext<StreamChatGenerics>>;\n\n/**\n * This UI component displays the preview list of channels and handles Channel navigation. It\n * receives all props from the ChannelList component.\n *\n * @example ./ChannelListMessenger.md\n */\nexport const ChannelListMessenger = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelListMessengerProps<StreamChatGenerics>,\n) => {\n const {\n additionalFlatListProps,\n channels,\n EmptyStateIndicator,\n error,\n FooterLoadingIndicator,\n forceUpdate,\n ListHeaderComponent,\n loadingChannels,\n LoadingErrorIndicator,\n LoadingIndicator,\n loadingNextPage,\n loadMoreThreshold,\n loadNextPage,\n refreshing,\n refreshList,\n reloadList,\n setFlatListRef,\n } = useChannelsContext<StreamChatGenerics>();\n\n return (\n <ChannelListMessengerWithContext\n {...{\n additionalFlatListProps,\n channels,\n EmptyStateIndicator,\n error,\n FooterLoadingIndicator,\n forceUpdate,\n ListHeaderComponent,\n loadingChannels,\n LoadingErrorIndicator,\n LoadingIndicator,\n loadingNextPage,\n loadMoreThreshold,\n loadNextPage,\n refreshing,\n refreshList,\n reloadList,\n setFlatListRef,\n }}\n {...props}\n />\n );\n};\n\nChannelListMessenger.displayName = 'ChannelListMessenger{channelListMessenger}';\n"]}
@@ -33,6 +33,8 @@ var _ChannelsStateContext = require("../../contexts/channelsStateContext/Channel
33
33
 
34
34
  var _ChatContext = require("../../contexts/chatContext/ChatContext");
35
35
 
36
+ var _DebugContext = require("../../contexts/debugContext/DebugContext");
37
+
36
38
  var _OverlayContext = require("../../contexts/overlayContext/OverlayContext");
37
39
 
38
40
  var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
@@ -97,12 +99,22 @@ var ChatWithContext = function ChatWithContext(props) {
97
99
  isOnline = _useIsOnline.isOnline;
98
100
 
99
101
  var mutedUsers = (0, _useMutedUsers.useMutedUsers)(client);
102
+ var debugRef = (0, _DebugContext.useDebugContext)();
103
+ var isDebugModeEnabled = __DEV__ && debugRef && debugRef.current;
100
104
  (0, _react.useEffect)(function () {
101
105
  if (client) {
102
106
  client.setUserAgent(_native.SDK + "-" + _reactNative.Platform.OS + "-" + _version.version);
103
107
  client.recoverStateOnReconnect = false;
104
108
  client.persistUserOnConnectionFailure = enableOfflineSupport;
105
109
  }
110
+
111
+ if (isDebugModeEnabled) {
112
+ if (debugRef.current.setEventType) debugRef.current.setEventType('send');
113
+ if (debugRef.current.setSendEventParams) debugRef.current.setSendEventParams({
114
+ action: 'Client',
115
+ data: client.user
116
+ });
117
+ }
106
118
  }, [client]);
107
119
 
108
120
  var setActiveChannel = function setActiveChannel(newChannel) {
@@ -143,7 +155,7 @@ var ChatWithContext = function ChatWithContext(props) {
143
155
  __self: _this,
144
156
  __source: {
145
157
  fileName: _jsxFileName,
146
- lineNumber: 216,
158
+ lineNumber: 229,
147
159
  columnNumber: 5
148
160
  }
149
161
  }, _react["default"].createElement(_TranslationContext.TranslationProvider, {
@@ -153,7 +165,7 @@ var ChatWithContext = function ChatWithContext(props) {
153
165
  __self: _this,
154
166
  __source: {
155
167
  fileName: _jsxFileName,
156
- lineNumber: 217,
168
+ lineNumber: 230,
157
169
  columnNumber: 7
158
170
  }
159
171
  }, _react["default"].createElement(_ThemeContext.ThemeProvider, {
@@ -161,14 +173,14 @@ var ChatWithContext = function ChatWithContext(props) {
161
173
  __self: _this,
162
174
  __source: {
163
175
  fileName: _jsxFileName,
164
- lineNumber: 220,
176
+ lineNumber: 233,
165
177
  columnNumber: 9
166
178
  }
167
179
  }, _react["default"].createElement(_ChannelsStateContext.ChannelsStateProvider, {
168
180
  __self: _this,
169
181
  __source: {
170
182
  fileName: _jsxFileName,
171
- lineNumber: 221,
183
+ lineNumber: 234,
172
184
  columnNumber: 11
173
185
  }
174
186
  }, children))));
@@ -184,7 +196,7 @@ var Chat = function Chat(props) {
184
196
  __self: _this,
185
197
  __source: {
186
198
  fileName: _jsxFileName,
187
- lineNumber: 256,
199
+ lineNumber: 269,
188
200
  columnNumber: 10
189
201
  }
190
202
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["Chat.tsx"],"names":["ChatWithContext","props","children","client","closeConnectionOnBackground","enableOfflineSupport","i18nInstance","style","channel","setChannel","t","key","tDateTimeParser","input","translators","setTranslators","loadingTranslators","connectionRecovering","isOnline","mutedUsers","setUserAgent","SDK","Platform","OS","version","recoverStateOnReconnect","persistUserOnConnectionFailure","setActiveChannel","newChannel","appSettings","subscribeConnectionRecoveredCallback","chatContext","QuickSqliteClient","initializeDatabase","userLanguage","user","language","DEFAULT_USER_LANGUAGE","Chat"],"mappings":"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","sourcesContent":["import React, { PropsWithChildren, useEffect, useState } from 'react';\nimport { Platform } from 'react-native';\n\nimport Dayjs from 'dayjs';\n\nimport type { Channel } from 'stream-chat';\n\nimport { useAppSettings } from './hooks/useAppSettings';\nimport { useConnectionRecovered } from './hooks/useConnectionRecovered';\nimport { useCreateChatContext } from './hooks/useCreateChatContext';\nimport { useIsOnline } from './hooks/useIsOnline';\nimport { useMutedUsers } from './hooks/useMutedUsers';\n\nimport { useSyncDatabase } from './hooks/useSyncDatabase';\n\nimport { ChannelsStateProvider } from '../../contexts/channelsStateContext/ChannelsStateContext';\nimport { ChatContextValue, ChatProvider } from '../../contexts/chatContext/ChatContext';\nimport { useOverlayContext } from '../../contexts/overlayContext/OverlayContext';\nimport { DeepPartial, ThemeProvider } from '../../contexts/themeContext/ThemeContext';\nimport type { Theme } from '../../contexts/themeContext/utils/theme';\nimport {\n DEFAULT_USER_LANGUAGE,\n TranslationProvider,\n TranslatorFunctions,\n} from '../../contexts/translationContext/TranslationContext';\nimport { useStreami18n } from '../../hooks/useStreami18n';\nimport init from '../../init';\n\nimport { SDK } from '../../native';\nimport { QuickSqliteClient } from '../../store/QuickSqliteClient';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport type { Streami18n } from '../../utils/Streami18n';\nimport { version } from '../../version.json';\n\ninit();\n\nexport type ChatProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChatContextValue<StreamChatGenerics>, 'client'> & {\n /**\n * When false, ws connection won't be disconnection upon backgrounding the app.\n * To receive push notifications, its necessary that user doesn't have active\n * websocket connection. So by default, we disconnect websocket connection when\n * app goes to background, and reconnect when app comes to foreground.\n */\n closeConnectionOnBackground?: boolean;\n /**\n * Enables offline storage and loading for chat data.\n */\n enableOfflineSupport?: boolean;\n /**\n * Instance of Streami18n class should be provided to Chat component to enable internationalization.\n *\n * Stream provides following list of in-built translations:\n * 1. English (en)\n * 2. Dutch (nl)\n * 3. ...\n * 4. ...\n *\n * Simplest way to start using chat components in one of the in-built languages would be following:\n *\n * ```\n * const i18n = new Streami18n('nl');\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n *\n * If you would like to override certain keys in in-built translation.\n * UI will be automatically updated in this case.\n *\n * ```\n * const i18n = new Streami18n('nl');\n *\n * i18n.registerTranslation('nl', {\n * 'Nothing yet...': 'Nog Niet ...',\n * '{{ firstUser }} and {{ secondUser }} are typing...': '{{ firstUser }} en {{ secondUser }} zijn aan het typen...',\n * });\n *\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n *\n * You can use the same function to add whole new language.\n *\n * ```\n * const i18n = new Streami18n('it');\n *\n * i18n.registerTranslation('it', {\n * 'Nothing yet...': 'Non ancora ...',\n * '{{ firstUser }} and {{ secondUser }} are typing...': '{{ firstUser }} a {{ secondUser }} stanno scrivendo...',\n * });\n *\n * // Make sure to call setLanguage to reflect new language in UI.\n * i18n.setLanguage('it');\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n */\n i18nInstance?: Streami18n;\n /**\n * You can pass the theme object to customize the styles of Chat components. You can check the default theme in [theme.ts](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/contexts/themeContext/utils/theme.ts)\n *\n * Please check section about [themes in cookbook](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#theme) for details.\n *\n * ```\n * import type { DeepPartial, Theme } from 'stream-chat-react-native';\n *\n * const theme: DeepPartial<Theme> = {\n * messageSimple: {\n * file: {\n * container: {\n * backgroundColor: 'red',\n * },\n * icon: {\n * height: 16,\n * width: 16,\n * },\n * },\n * },\n * };\n *\n * <Chat style={theme}>\n * </Chat>\n * ```\n *\n * @overrideType object\n */\n style?: DeepPartial<Theme>;\n};\n\nconst ChatWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: PropsWithChildren<ChatProps<StreamChatGenerics>>,\n) => {\n const {\n children,\n client,\n closeConnectionOnBackground = true,\n enableOfflineSupport = false,\n i18nInstance,\n style,\n } = props;\n\n const [channel, setChannel] = useState<Channel<StreamChatGenerics>>();\n const [translators, setTranslators] = useState<TranslatorFunctions>({\n t: (key: string) => key,\n tDateTimeParser: (input?: string | number | Date) => Dayjs(input),\n });\n\n /**\n * Setup translators\n */\n const loadingTranslators = useStreami18n({ i18nInstance, setTranslators });\n\n /**\n * Setup connection event listeners\n */\n const { connectionRecovering, isOnline } = useIsOnline<StreamChatGenerics>(\n client,\n closeConnectionOnBackground,\n );\n\n /**\n * Setup muted user listener\n * TODO: reimplement\n */\n const mutedUsers = useMutedUsers<StreamChatGenerics>(client);\n\n useEffect(() => {\n if (client) {\n client.setUserAgent(`${SDK}-${Platform.OS}-${version}`);\n // This is to disable recovery related logic in js client, since we handle it in this SDK\n client.recoverStateOnReconnect = false;\n client.persistUserOnConnectionFailure = enableOfflineSupport;\n }\n }, [client]);\n\n const setActiveChannel = (newChannel?: Channel<StreamChatGenerics>) => setChannel(newChannel);\n\n const appSettings = useAppSettings(client, isOnline);\n const { subscribeConnectionRecoveredCallback } = useConnectionRecovered<StreamChatGenerics>({\n client,\n enableOfflineSupport,\n });\n\n const chatContext = useCreateChatContext({\n appSettings,\n channel,\n client,\n connectionRecovering,\n enableOfflineSupport,\n isOnline,\n mutedUsers,\n setActiveChannel,\n subscribeConnectionRecoveredCallback,\n });\n\n useEffect(() => {\n if (enableOfflineSupport) {\n QuickSqliteClient.initializeDatabase();\n }\n }, []);\n\n useSyncDatabase({\n client,\n enableOfflineSupport,\n });\n\n if (loadingTranslators) return null;\n\n return (\n <ChatProvider<StreamChatGenerics> value={chatContext}>\n <TranslationProvider\n value={{ ...translators, userLanguage: client.user?.language || DEFAULT_USER_LANGUAGE }}\n >\n <ThemeProvider style={style}>\n <ChannelsStateProvider<StreamChatGenerics>>{children}</ChannelsStateProvider>\n </ThemeProvider>\n </TranslationProvider>\n </ChatProvider>\n );\n};\n\n/**\n * Chat - Wrapper component for Chat. The needs to be placed around any other chat components.\n * This Chat component provides the ChatContext to all other components.\n *\n * The ChatContext provides the following props:\n *\n * - channel - currently active channel\n * - client - client connection\n * - connectionRecovering - whether or not websocket is reconnecting\n * - isOnline - whether or not set user is active\n * - setActiveChannel - function to set the currently active channel\n *\n * The Chat Component takes the following generics in order:\n * - At (AttachmentType) - custom Attachment object extension\n * - Ct (ChannelType) - custom Channel object extension\n * - Co (CommandType) - custom Command string union extension\n * - Ev (EventType) - custom Event object extension\n * - Me (MessageType) - custom Message object extension\n * - Re (ReactionType) - custom Reaction object extension\n * - Us (UserType) - custom User object extension\n */\nexport const Chat = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: PropsWithChildren<ChatProps<StreamChatGenerics>>,\n) => {\n const { style } = useOverlayContext();\n\n return <ChatWithContext {...{ style }} {...props} />;\n};\n"]}
1
+ {"version":3,"sources":["Chat.tsx"],"names":["ChatWithContext","props","children","client","closeConnectionOnBackground","enableOfflineSupport","i18nInstance","style","channel","setChannel","t","key","tDateTimeParser","input","translators","setTranslators","loadingTranslators","connectionRecovering","isOnline","mutedUsers","debugRef","isDebugModeEnabled","__DEV__","current","setUserAgent","SDK","Platform","OS","version","recoverStateOnReconnect","persistUserOnConnectionFailure","setEventType","setSendEventParams","action","data","user","setActiveChannel","newChannel","appSettings","subscribeConnectionRecoveredCallback","chatContext","QuickSqliteClient","initializeDatabase","userLanguage","language","DEFAULT_USER_LANGUAGE","Chat"],"mappings":"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","sourcesContent":["import React, { PropsWithChildren, useEffect, useState } from 'react';\nimport { Platform } from 'react-native';\n\nimport Dayjs from 'dayjs';\n\nimport type { Channel } from 'stream-chat';\n\nimport { useAppSettings } from './hooks/useAppSettings';\nimport { useConnectionRecovered } from './hooks/useConnectionRecovered';\nimport { useCreateChatContext } from './hooks/useCreateChatContext';\nimport { useIsOnline } from './hooks/useIsOnline';\nimport { useMutedUsers } from './hooks/useMutedUsers';\n\nimport { useSyncDatabase } from './hooks/useSyncDatabase';\n\nimport { ChannelsStateProvider } from '../../contexts/channelsStateContext/ChannelsStateContext';\nimport { ChatContextValue, ChatProvider } from '../../contexts/chatContext/ChatContext';\nimport { useDebugContext } from '../../contexts/debugContext/DebugContext';\nimport { useOverlayContext } from '../../contexts/overlayContext/OverlayContext';\nimport { DeepPartial, ThemeProvider } from '../../contexts/themeContext/ThemeContext';\nimport type { Theme } from '../../contexts/themeContext/utils/theme';\nimport {\n DEFAULT_USER_LANGUAGE,\n TranslationProvider,\n TranslatorFunctions,\n} from '../../contexts/translationContext/TranslationContext';\nimport { useStreami18n } from '../../hooks/useStreami18n';\nimport init from '../../init';\n\nimport { SDK } from '../../native';\nimport { QuickSqliteClient } from '../../store/QuickSqliteClient';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport type { Streami18n } from '../../utils/Streami18n';\nimport { version } from '../../version.json';\n\ninit();\n\nexport type ChatProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChatContextValue<StreamChatGenerics>, 'client'> & {\n /**\n * When false, ws connection won't be disconnection upon backgrounding the app.\n * To receive push notifications, its necessary that user doesn't have active\n * websocket connection. So by default, we disconnect websocket connection when\n * app goes to background, and reconnect when app comes to foreground.\n */\n closeConnectionOnBackground?: boolean;\n /**\n * Enables offline storage and loading for chat data.\n */\n enableOfflineSupport?: boolean;\n /**\n * Instance of Streami18n class should be provided to Chat component to enable internationalization.\n *\n * Stream provides following list of in-built translations:\n * 1. English (en)\n * 2. Dutch (nl)\n * 3. ...\n * 4. ...\n *\n * Simplest way to start using chat components in one of the in-built languages would be following:\n *\n * ```\n * const i18n = new Streami18n('nl');\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n *\n * If you would like to override certain keys in in-built translation.\n * UI will be automatically updated in this case.\n *\n * ```\n * const i18n = new Streami18n('nl');\n *\n * i18n.registerTranslation('nl', {\n * 'Nothing yet...': 'Nog Niet ...',\n * '{{ firstUser }} and {{ secondUser }} are typing...': '{{ firstUser }} en {{ secondUser }} zijn aan het typen...',\n * });\n *\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n *\n * You can use the same function to add whole new language.\n *\n * ```\n * const i18n = new Streami18n('it');\n *\n * i18n.registerTranslation('it', {\n * 'Nothing yet...': 'Non ancora ...',\n * '{{ firstUser }} and {{ secondUser }} are typing...': '{{ firstUser }} a {{ secondUser }} stanno scrivendo...',\n * });\n *\n * // Make sure to call setLanguage to reflect new language in UI.\n * i18n.setLanguage('it');\n * <Chat client={chatClient} i18nInstance={i18n}>\n * ...\n * </Chat>\n * ```\n */\n i18nInstance?: Streami18n;\n /**\n * You can pass the theme object to customize the styles of Chat components. You can check the default theme in [theme.ts](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/contexts/themeContext/utils/theme.ts)\n *\n * Please check section about [themes in cookbook](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#theme) for details.\n *\n * ```\n * import type { DeepPartial, Theme } from 'stream-chat-react-native';\n *\n * const theme: DeepPartial<Theme> = {\n * messageSimple: {\n * file: {\n * container: {\n * backgroundColor: 'red',\n * },\n * icon: {\n * height: 16,\n * width: 16,\n * },\n * },\n * },\n * };\n *\n * <Chat style={theme}>\n * </Chat>\n * ```\n *\n * @overrideType object\n */\n style?: DeepPartial<Theme>;\n};\n\nconst ChatWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: PropsWithChildren<ChatProps<StreamChatGenerics>>,\n) => {\n const {\n children,\n client,\n closeConnectionOnBackground = true,\n enableOfflineSupport = false,\n i18nInstance,\n style,\n } = props;\n\n const [channel, setChannel] = useState<Channel<StreamChatGenerics>>();\n const [translators, setTranslators] = useState<TranslatorFunctions>({\n t: (key: string) => key,\n tDateTimeParser: (input?: string | number | Date) => Dayjs(input),\n });\n\n /**\n * Setup translators\n */\n const loadingTranslators = useStreami18n({ i18nInstance, setTranslators });\n\n /**\n * Setup connection event listeners\n */\n const { connectionRecovering, isOnline } = useIsOnline<StreamChatGenerics>(\n client,\n closeConnectionOnBackground,\n );\n\n /**\n * Setup muted user listener\n * TODO: reimplement\n */\n const mutedUsers = useMutedUsers<StreamChatGenerics>(client);\n\n const debugRef = useDebugContext();\n const isDebugModeEnabled = __DEV__ && debugRef && debugRef.current;\n\n useEffect(() => {\n if (client) {\n client.setUserAgent(`${SDK}-${Platform.OS}-${version}`);\n // This is to disable recovery related logic in js client, since we handle it in this SDK\n client.recoverStateOnReconnect = false;\n client.persistUserOnConnectionFailure = enableOfflineSupport;\n }\n\n if (isDebugModeEnabled) {\n if (debugRef.current.setEventType) debugRef.current.setEventType('send');\n if (debugRef.current.setSendEventParams)\n debugRef.current.setSendEventParams({\n action: 'Client',\n data: client.user,\n });\n }\n }, [client]);\n\n const setActiveChannel = (newChannel?: Channel<StreamChatGenerics>) => setChannel(newChannel);\n\n const appSettings = useAppSettings(client, isOnline);\n const { subscribeConnectionRecoveredCallback } = useConnectionRecovered<StreamChatGenerics>({\n client,\n enableOfflineSupport,\n });\n\n const chatContext = useCreateChatContext({\n appSettings,\n channel,\n client,\n connectionRecovering,\n enableOfflineSupport,\n isOnline,\n mutedUsers,\n setActiveChannel,\n subscribeConnectionRecoveredCallback,\n });\n\n useEffect(() => {\n if (enableOfflineSupport) {\n QuickSqliteClient.initializeDatabase();\n }\n }, []);\n\n useSyncDatabase({\n client,\n enableOfflineSupport,\n });\n\n if (loadingTranslators) return null;\n\n return (\n <ChatProvider<StreamChatGenerics> value={chatContext}>\n <TranslationProvider\n value={{ ...translators, userLanguage: client.user?.language || DEFAULT_USER_LANGUAGE }}\n >\n <ThemeProvider style={style}>\n <ChannelsStateProvider<StreamChatGenerics>>{children}</ChannelsStateProvider>\n </ThemeProvider>\n </TranslationProvider>\n </ChatProvider>\n );\n};\n\n/**\n * Chat - Wrapper component for Chat. The needs to be placed around any other chat components.\n * This Chat component provides the ChatContext to all other components.\n *\n * The ChatContext provides the following props:\n *\n * - channel - currently active channel\n * - client - client connection\n * - connectionRecovering - whether or not websocket is reconnecting\n * - isOnline - whether or not set user is active\n * - setActiveChannel - function to set the currently active channel\n *\n * The Chat Component takes the following generics in order:\n * - At (AttachmentType) - custom Attachment object extension\n * - Ct (ChannelType) - custom Channel object extension\n * - Co (CommandType) - custom Command string union extension\n * - Ev (EventType) - custom Event object extension\n * - Me (MessageType) - custom Message object extension\n * - Re (ReactionType) - custom Reaction object extension\n * - Us (UserType) - custom User object extension\n */\nexport const Chat = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: PropsWithChildren<ChatProps<StreamChatGenerics>>,\n) => {\n const { style } = useOverlayContext();\n\n return <ChatWithContext {...{ style }} {...props} />;\n};\n"]}
@@ -35,6 +35,8 @@ var _ChannelContext = require("../../contexts/channelContext/ChannelContext");
35
35
 
36
36
  var _ChatContext = require("../../contexts/chatContext/ChatContext");
37
37
 
38
+ var _DebugContext = require("../../contexts/debugContext/DebugContext");
39
+
38
40
  var _ImageGalleryContext = require("../../contexts/imageGalleryContext/ImageGalleryContext");
39
41
 
40
42
  var _MessagesContext = require("../../contexts/messagesContext/MessagesContext");
@@ -334,7 +336,7 @@ var MessageListWithContext = function MessageListWithContext(props) {
334
336
  __self: _this,
335
337
  __source: {
336
338
  fileName: _jsxFileName,
337
- lineNumber: 547,
339
+ lineNumber: 548,
338
340
  columnNumber: 11
339
341
  }
340
342
  }, _react["default"].createElement(MessageSystem, {
@@ -343,14 +345,14 @@ var MessageListWithContext = function MessageListWithContext(props) {
343
345
  __self: _this,
344
346
  __source: {
345
347
  fileName: _jsxFileName,
346
- lineNumber: 548,
348
+ lineNumber: 549,
347
349
  columnNumber: 13
348
350
  }
349
351
  })), insertInlineUnreadIndicator && _react["default"].createElement(InlineUnreadIndicator, {
350
352
  __self: _this,
351
353
  __source: {
352
354
  fileName: _jsxFileName,
353
- lineNumber: 550,
355
+ lineNumber: 551,
354
356
  columnNumber: 43
355
357
  }
356
358
  }));
@@ -362,7 +364,7 @@ var MessageListWithContext = function MessageListWithContext(props) {
362
364
  __self: _this,
363
365
  __source: {
364
366
  fileName: _jsxFileName,
365
- lineNumber: 558,
367
+ lineNumber: 559,
366
368
  columnNumber: 9
367
369
  }
368
370
  }, _react["default"].createElement(_reactNative.View, {
@@ -370,7 +372,7 @@ var MessageListWithContext = function MessageListWithContext(props) {
370
372
  __self: _this,
371
373
  __source: {
372
374
  fileName: _jsxFileName,
373
- lineNumber: 559,
375
+ lineNumber: 560,
374
376
  columnNumber: 11
375
377
  }
376
378
  }, _react["default"].createElement(Message, {
@@ -386,7 +388,7 @@ var MessageListWithContext = function MessageListWithContext(props) {
386
388
  __self: _this,
387
389
  __source: {
388
390
  fileName: _jsxFileName,
389
- lineNumber: 560,
391
+ lineNumber: 561,
390
392
  columnNumber: 13
391
393
  }
392
394
  }))), (0, _useMessageList.isMessageWithStylesReadByAndDateSeparator)(message) && message.dateSeparator && _react["default"].createElement(InlineDateSeparator, {
@@ -394,14 +396,14 @@ var MessageListWithContext = function MessageListWithContext(props) {
394
396
  __self: _this,
395
397
  __source: {
396
398
  fileName: _jsxFileName,
397
- lineNumber: 576,
399
+ lineNumber: 577,
398
400
  columnNumber: 11
399
401
  }
400
402
  }), insertInlineUnreadIndicator && _react["default"].createElement(InlineUnreadIndicator, {
401
403
  __self: _this,
402
404
  __source: {
403
405
  fileName: _jsxFileName,
404
- lineNumber: 579,
406
+ lineNumber: 580,
405
407
  columnNumber: 41
406
408
  }
407
409
  })) : _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_reactNative.View, {
@@ -409,7 +411,7 @@ var MessageListWithContext = function MessageListWithContext(props) {
409
411
  __self: _this,
410
412
  __source: {
411
413
  fileName: _jsxFileName,
412
- lineNumber: 583,
414
+ lineNumber: 584,
413
415
  columnNumber: 9
414
416
  }
415
417
  }, _react["default"].createElement(Message, {
@@ -425,7 +427,7 @@ var MessageListWithContext = function MessageListWithContext(props) {
425
427
  __self: _this,
426
428
  __source: {
427
429
  fileName: _jsxFileName,
428
- lineNumber: 584,
430
+ lineNumber: 585,
429
431
  columnNumber: 11
430
432
  }
431
433
  })), (0, _useMessageList.isMessageWithStylesReadByAndDateSeparator)(message) && message.dateSeparator && _react["default"].createElement(InlineDateSeparator, {
@@ -433,14 +435,14 @@ var MessageListWithContext = function MessageListWithContext(props) {
433
435
  __self: _this,
434
436
  __source: {
435
437
  fileName: _jsxFileName,
436
- lineNumber: 603,
438
+ lineNumber: 604,
437
439
  columnNumber: 11
438
440
  }
439
441
  }), insertInlineUnreadIndicator && _react["default"].createElement(InlineUnreadIndicator, {
440
442
  __self: _this,
441
443
  __source: {
442
444
  fileName: _jsxFileName,
443
- lineNumber: 606,
445
+ lineNumber: 607,
444
446
  columnNumber: 41
445
447
  }
446
448
  }));
@@ -777,6 +779,17 @@ var MessageListWithContext = function MessageListWithContext(props) {
777
779
  }
778
780
  };
779
781
 
782
+ var debugRef = (0, _DebugContext.useDebugContext)();
783
+ var isDebugModeEnabled = __DEV__ && debugRef && debugRef.current;
784
+
785
+ if (isDebugModeEnabled) {
786
+ if (debugRef.current.setEventType) debugRef.current.setEventType('send');
787
+ if (debugRef.current.setSendEventParams) debugRef.current.setSendEventParams({
788
+ action: thread ? 'ThreadList' : 'Messages',
789
+ data: messageList
790
+ });
791
+ }
792
+
780
793
  var renderListEmptyComponent = function renderListEmptyComponent() {
781
794
  return _react["default"].createElement(_reactNative.View, {
782
795
  style: [styles.flex, styles.invert],
@@ -784,7 +797,7 @@ var MessageListWithContext = function MessageListWithContext(props) {
784
797
  __self: _this,
785
798
  __source: {
786
799
  fileName: _jsxFileName,
787
- lineNumber: 940,
800
+ lineNumber: 955,
788
801
  columnNumber: 5
789
802
  }
790
803
  }, _react["default"].createElement(EmptyStateIndicator, {
@@ -792,7 +805,7 @@ var MessageListWithContext = function MessageListWithContext(props) {
792
805
  __self: _this,
793
806
  __source: {
794
807
  fileName: _jsxFileName,
795
- lineNumber: 941,
808
+ lineNumber: 956,
796
809
  columnNumber: 7
797
810
  }
798
811
  }));
@@ -806,7 +819,7 @@ var MessageListWithContext = function MessageListWithContext(props) {
806
819
  __self: _this,
807
820
  __source: {
808
821
  fileName: _jsxFileName,
809
- lineNumber: 949,
822
+ lineNumber: 964,
810
823
  columnNumber: 7
811
824
  }
812
825
  }, _react["default"].createElement(LoadingIndicator, {
@@ -814,7 +827,7 @@ var MessageListWithContext = function MessageListWithContext(props) {
814
827
  __self: _this,
815
828
  __source: {
816
829
  fileName: _jsxFileName,
817
- lineNumber: 950,
830
+ lineNumber: 965,
818
831
  columnNumber: 9
819
832
  }
820
833
  }));
@@ -828,7 +841,7 @@ var MessageListWithContext = function MessageListWithContext(props) {
828
841
  __self: _this,
829
842
  __source: {
830
843
  fileName: _jsxFileName,
831
- lineNumber: 956,
844
+ lineNumber: 971,
832
845
  columnNumber: 5
833
846
  }
834
847
  }, _react["default"].createElement(FlatList, (0, _extends2["default"])({
@@ -862,7 +875,7 @@ var MessageListWithContext = function MessageListWithContext(props) {
862
875
  __self: _this,
863
876
  __source: {
864
877
  fileName: _jsxFileName,
865
- lineNumber: 960,
878
+ lineNumber: 975,
866
879
  columnNumber: 7
867
880
  }
868
881
  })), !loading && _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_reactNative.View, {
@@ -870,7 +883,7 @@ var MessageListWithContext = function MessageListWithContext(props) {
870
883
  __self: _this,
871
884
  __source: {
872
885
  fileName: _jsxFileName,
873
- lineNumber: 992,
886
+ lineNumber: 1007,
874
887
  columnNumber: 11
875
888
  }
876
889
  }, stickyHeaderDateToRender && (StickyHeader ? _react["default"].createElement(StickyHeader, {
@@ -878,7 +891,7 @@ var MessageListWithContext = function MessageListWithContext(props) {
878
891
  __self: _this,
879
892
  __source: {
880
893
  fileName: _jsxFileName,
881
- lineNumber: 995,
894
+ lineNumber: 1010,
882
895
  columnNumber: 17
883
896
  }
884
897
  }) : messageListLengthAfterUpdate ? _react["default"].createElement(DateHeader, {
@@ -886,21 +899,21 @@ var MessageListWithContext = function MessageListWithContext(props) {
886
899
  __self: _this,
887
900
  __source: {
888
901
  fileName: _jsxFileName,
889
- lineNumber: 997,
902
+ lineNumber: 1012,
890
903
  columnNumber: 17
891
904
  }
892
905
  }) : null)), !disableTypingIndicator && TypingIndicator && _react["default"].createElement(TypingIndicatorContainer, {
893
906
  __self: _this,
894
907
  __source: {
895
908
  fileName: _jsxFileName,
896
- lineNumber: 1001,
909
+ lineNumber: 1016,
897
910
  columnNumber: 13
898
911
  }
899
912
  }, _react["default"].createElement(TypingIndicator, {
900
913
  __self: _this,
901
914
  __source: {
902
915
  fileName: _jsxFileName,
903
- lineNumber: 1002,
916
+ lineNumber: 1017,
904
917
  columnNumber: 15
905
918
  }
906
919
  })), _react["default"].createElement(ScrollToBottomButton, {
@@ -910,14 +923,14 @@ var MessageListWithContext = function MessageListWithContext(props) {
910
923
  __self: _this,
911
924
  __source: {
912
925
  fileName: _jsxFileName,
913
- lineNumber: 1005,
926
+ lineNumber: 1020,
914
927
  columnNumber: 11
915
928
  }
916
929
  })), _react["default"].createElement(NetworkDownIndicator, {
917
930
  __self: _this,
918
931
  __source: {
919
932
  fileName: _jsxFileName,
920
- lineNumber: 1012,
933
+ lineNumber: 1027,
921
934
  columnNumber: 7
922
935
  }
923
936
  }));
@@ -1036,7 +1049,7 @@ var MessageList = function MessageList(props) {
1036
1049
  __self: _this,
1037
1050
  __source: {
1038
1051
  fileName: _jsxFileName,
1039
- lineNumber: 1071,
1052
+ lineNumber: 1086,
1040
1053
  columnNumber: 5
1041
1054
  }
1042
1055
  }));