stream-chat-react-native-core 5.22.0-beta.2 → 5.22.0-beta.4

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 (136) hide show
  1. package/lib/commonjs/components/Attachment/FileAttachment.js +10 -7
  2. package/lib/commonjs/components/Attachment/FileAttachment.js.map +1 -1
  3. package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +8 -6
  4. package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
  5. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js +20 -16
  6. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -1
  7. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js +16 -14
  8. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
  9. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js +4 -2
  10. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
  11. package/lib/commonjs/components/ImageGallery/ImageGallery.js +29 -32
  12. package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
  13. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js +7 -5
  14. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
  15. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js +10 -8
  16. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js.map +1 -1
  17. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js +10 -8
  18. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js.map +1 -1
  19. package/lib/commonjs/components/Indicators/EmptyStateIndicator.js +12 -10
  20. package/lib/commonjs/components/Indicators/EmptyStateIndicator.js.map +1 -1
  21. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +20 -17
  22. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
  23. package/lib/commonjs/components/MessageList/InlineUnreadIndicator.js +13 -11
  24. package/lib/commonjs/components/MessageList/InlineUnreadIndicator.js.map +1 -1
  25. package/lib/commonjs/components/MessageOverlay/MessageActionList.js +8 -14
  26. package/lib/commonjs/components/MessageOverlay/MessageActionList.js.map +1 -1
  27. package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js +11 -8
  28. package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js.map +1 -1
  29. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +32 -29
  30. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js.map +1 -1
  31. package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js +17 -15
  32. package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js.map +1 -1
  33. package/lib/commonjs/contexts/themeContext/utils/theme.js +0 -4
  34. package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
  35. package/lib/commonjs/hooks/useViewport.js +47 -0
  36. package/lib/commonjs/hooks/useViewport.js.map +1 -0
  37. package/lib/commonjs/i18n/en.json +1 -1
  38. package/lib/commonjs/i18n/fr.json +48 -48
  39. package/lib/commonjs/i18n/hi.json +48 -48
  40. package/lib/commonjs/i18n/it.json +48 -48
  41. package/lib/commonjs/i18n/nl.json +48 -48
  42. package/lib/commonjs/i18n/ru.json +48 -48
  43. package/lib/commonjs/i18n/tr.json +48 -48
  44. package/lib/commonjs/utils/utils.js +1 -15
  45. package/lib/commonjs/utils/utils.js.map +1 -1
  46. package/lib/commonjs/version.json +1 -1
  47. package/lib/module/components/Attachment/FileAttachment.js +10 -7
  48. package/lib/module/components/Attachment/FileAttachment.js.map +1 -1
  49. package/lib/module/components/AttachmentPicker/AttachmentPicker.js +8 -6
  50. package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
  51. package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js +20 -16
  52. package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -1
  53. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js +16 -14
  54. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
  55. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js +4 -2
  56. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
  57. package/lib/module/components/ImageGallery/ImageGallery.js +29 -32
  58. package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
  59. package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js +7 -5
  60. package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
  61. package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js +10 -8
  62. package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js.map +1 -1
  63. package/lib/module/components/ImageGallery/components/ImageGrid.js +10 -8
  64. package/lib/module/components/ImageGallery/components/ImageGrid.js.map +1 -1
  65. package/lib/module/components/Indicators/EmptyStateIndicator.js +12 -10
  66. package/lib/module/components/Indicators/EmptyStateIndicator.js.map +1 -1
  67. package/lib/module/components/Message/MessageSimple/MessageContent.js +20 -17
  68. package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
  69. package/lib/module/components/MessageList/InlineUnreadIndicator.js +13 -11
  70. package/lib/module/components/MessageList/InlineUnreadIndicator.js.map +1 -1
  71. package/lib/module/components/MessageOverlay/MessageActionList.js +8 -14
  72. package/lib/module/components/MessageOverlay/MessageActionList.js.map +1 -1
  73. package/lib/module/components/MessageOverlay/MessageActionListItem.js +11 -8
  74. package/lib/module/components/MessageOverlay/MessageActionListItem.js.map +1 -1
  75. package/lib/module/components/MessageOverlay/MessageOverlay.js +32 -29
  76. package/lib/module/components/MessageOverlay/MessageOverlay.js.map +1 -1
  77. package/lib/module/components/Thread/components/ThreadFooterComponent.js +17 -15
  78. package/lib/module/components/Thread/components/ThreadFooterComponent.js.map +1 -1
  79. package/lib/module/contexts/themeContext/utils/theme.js +0 -4
  80. package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
  81. package/lib/module/hooks/useViewport.js +47 -0
  82. package/lib/module/hooks/useViewport.js.map +1 -0
  83. package/lib/module/i18n/en.json +1 -1
  84. package/lib/module/i18n/fr.json +48 -48
  85. package/lib/module/i18n/hi.json +48 -48
  86. package/lib/module/i18n/it.json +48 -48
  87. package/lib/module/i18n/nl.json +48 -48
  88. package/lib/module/i18n/ru.json +48 -48
  89. package/lib/module/i18n/tr.json +48 -48
  90. package/lib/module/utils/utils.js +1 -15
  91. package/lib/module/utils/utils.js.map +1 -1
  92. package/lib/module/version.json +1 -1
  93. package/lib/typescript/components/Message/hooks/useMessageActionHandlers.d.ts +1 -1
  94. package/lib/typescript/components/Message/hooks/useMessageActions.d.ts +1 -1
  95. package/lib/typescript/contexts/messageContext/MessageContext.d.ts +1 -1
  96. package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +1 -1
  97. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +0 -3
  98. package/lib/typescript/hooks/useViewport.d.ts +11 -0
  99. package/lib/typescript/i18n/en.json +1 -1
  100. package/lib/typescript/i18n/fr.json +48 -48
  101. package/lib/typescript/i18n/hi.json +48 -48
  102. package/lib/typescript/i18n/it.json +48 -48
  103. package/lib/typescript/i18n/nl.json +48 -48
  104. package/lib/typescript/i18n/ru.json +48 -48
  105. package/lib/typescript/i18n/tr.json +48 -48
  106. package/lib/typescript/store/mappers/mapStorableToChannel.d.ts +1 -1
  107. package/lib/typescript/utils/Streami18n.d.ts +0 -4
  108. package/lib/typescript/utils/utils.d.ts +0 -2
  109. package/package.json +1 -1
  110. package/src/components/Attachment/FileAttachment.tsx +12 -3
  111. package/src/components/AttachmentPicker/AttachmentPicker.tsx +4 -2
  112. package/src/components/AttachmentPicker/components/AttachmentPickerItem.tsx +3 -1
  113. package/src/components/ChannelPreview/ChannelPreviewMessenger.tsx +4 -3
  114. package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayName.ts +4 -3
  115. package/src/components/ImageGallery/ImageGallery.tsx +9 -19
  116. package/src/components/ImageGallery/components/AnimatedGalleryImage.tsx +5 -3
  117. package/src/components/ImageGallery/components/AnimatedGalleryVideo.tsx +5 -3
  118. package/src/components/ImageGallery/components/ImageGrid.tsx +2 -1
  119. package/src/components/Indicators/EmptyStateIndicator.tsx +4 -5
  120. package/src/components/Message/MessageSimple/MessageContent.tsx +3 -1
  121. package/src/components/MessageList/InlineUnreadIndicator.tsx +2 -1
  122. package/src/components/MessageOverlay/MessageActionList.tsx +3 -11
  123. package/src/components/MessageOverlay/MessageActionListItem.tsx +5 -2
  124. package/src/components/MessageOverlay/MessageOverlay.tsx +5 -3
  125. package/src/components/Thread/components/ThreadFooterComponent.tsx +2 -1
  126. package/src/contexts/themeContext/utils/theme.ts +0 -7
  127. package/src/hooks/useViewport.ts +41 -0
  128. package/src/i18n/en.json +1 -1
  129. package/src/i18n/fr.json +48 -48
  130. package/src/i18n/hi.json +48 -48
  131. package/src/i18n/it.json +48 -48
  132. package/src/i18n/nl.json +48 -48
  133. package/src/i18n/ru.json +48 -48
  134. package/src/i18n/tr.json +48 -48
  135. package/src/utils/utils.ts +0 -13
  136. package/src/version.json +1 -1
@@ -13,9 +13,9 @@ var _bottomSheet = require("@gorhom/bottom-sheet");
13
13
  var _dayjs = _interopRequireDefault(require("dayjs"));
14
14
  var _mimeTypes = require("mime-types");
15
15
  var _ThemeContext = require("../../../contexts/themeContext/ThemeContext");
16
+ var _useViewport3 = require("../../../hooks/useViewport");
16
17
  var _icons = require("../../../icons");
17
18
  var _native = require("../../../native");
18
- var _utils = require("../../../utils/utils");
19
19
  var _this = this,
20
20
  _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/AttachmentPicker/components/AttachmentPickerItem.tsx";
21
21
  var AttachmentVideo = function AttachmentVideo(props) {
@@ -27,6 +27,8 @@ var AttachmentVideo = function AttachmentVideo(props) {
27
27
  selected = props.selected,
28
28
  selectedFiles = props.selectedFiles,
29
29
  setSelectedFiles = props.setSelectedFiles;
30
+ var _useViewport = (0, _useViewport3.useViewport)(),
31
+ vw = _useViewport.vw;
30
32
  var _useTheme = (0, _ThemeContext.useTheme)(),
31
33
  _useTheme$theme = _useTheme.theme,
32
34
  _useTheme$theme$attac = _useTheme$theme.attachmentPicker,
@@ -46,7 +48,7 @@ var AttachmentVideo = function AttachmentVideo(props) {
46
48
  var formattedVideoDuration = _dayjs["default"].duration(videoDuration, 'second').format(formattedDurationParam);
47
49
  durationLabel = formattedVideoDuration;
48
50
  }
49
- var size = (0, _utils.vw)(100) / (numberOfAttachmentPickerImageColumns || 3) - 2;
51
+ var size = vw(100) / (numberOfAttachmentPickerImageColumns || 3) - 2;
50
52
  var patchVideoFile = function () {
51
53
  var _ref = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(files) {
52
54
  var localAssetURI, uri, mimeType;
@@ -128,7 +130,7 @@ var AttachmentVideo = function AttachmentVideo(props) {
128
130
  __self: _this,
129
131
  __source: {
130
132
  fileName: _jsxFileName,
131
- lineNumber: 108,
133
+ lineNumber: 109,
132
134
  columnNumber: 5
133
135
  }
134
136
  }, _react["default"].createElement(_reactNative.ImageBackground, {
@@ -143,7 +145,7 @@ var AttachmentVideo = function AttachmentVideo(props) {
143
145
  __self: _this,
144
146
  __source: {
145
147
  fileName: _jsxFileName,
146
- lineNumber: 109,
148
+ lineNumber: 110,
147
149
  columnNumber: 7
148
150
  }
149
151
  }, selected && _react["default"].createElement(_reactNative.View, {
@@ -153,14 +155,14 @@ var AttachmentVideo = function AttachmentVideo(props) {
153
155
  __self: _this,
154
156
  __source: {
155
157
  fileName: _jsxFileName,
156
- lineNumber: 121,
158
+ lineNumber: 122,
157
159
  columnNumber: 11
158
160
  }
159
161
  }, _react["default"].createElement(ImageOverlaySelectedComponent, {
160
162
  __self: _this,
161
163
  __source: {
162
164
  fileName: _jsxFileName,
163
- lineNumber: 122,
165
+ lineNumber: 123,
164
166
  columnNumber: 13
165
167
  }
166
168
  })), _react["default"].createElement(_reactNative.View, {
@@ -168,7 +170,7 @@ var AttachmentVideo = function AttachmentVideo(props) {
168
170
  __self: _this,
169
171
  __source: {
170
172
  fileName: _jsxFileName,
171
- lineNumber: 125,
173
+ lineNumber: 126,
172
174
  columnNumber: 9
173
175
  }
174
176
  }, _react["default"].createElement(_icons.Recorder, {
@@ -178,7 +180,7 @@ var AttachmentVideo = function AttachmentVideo(props) {
178
180
  __self: _this,
179
181
  __source: {
180
182
  fileName: _jsxFileName,
181
- lineNumber: 126,
183
+ lineNumber: 127,
182
184
  columnNumber: 11
183
185
  }
184
186
  }), videoDuration ? _react["default"].createElement(_reactNative.Text, {
@@ -188,7 +190,7 @@ var AttachmentVideo = function AttachmentVideo(props) {
188
190
  __self: _this,
189
191
  __source: {
190
192
  fileName: _jsxFileName,
191
- lineNumber: 128,
193
+ lineNumber: 129,
192
194
  columnNumber: 13
193
195
  }
194
196
  }, durationLabel) : null)));
@@ -208,7 +210,9 @@ var AttachmentImage = function AttachmentImage(props) {
208
210
  image = _useTheme2$theme$atta.image,
209
211
  imageOverlay = _useTheme2$theme$atta.imageOverlay,
210
212
  overlay = _useTheme2$theme.colors.overlay;
211
- var size = (0, _utils.vw)(100) / (numberOfAttachmentPickerImageColumns || 3) - 2;
213
+ var _useViewport2 = (0, _useViewport3.useViewport)(),
214
+ vw = _useViewport2.vw;
215
+ var size = vw(100) / (numberOfAttachmentPickerImageColumns || 3) - 2;
212
216
  var uri = asset.uri;
213
217
  var patchImageFile = function () {
214
218
  var _ref3 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3(images) {
@@ -285,7 +289,7 @@ var AttachmentImage = function AttachmentImage(props) {
285
289
  __self: _this,
286
290
  __source: {
287
291
  fileName: _jsxFileName,
288
- lineNumber: 195,
292
+ lineNumber: 197,
289
293
  columnNumber: 5
290
294
  }
291
295
  }, _react["default"].createElement(_reactNative.ImageBackground, {
@@ -300,7 +304,7 @@ var AttachmentImage = function AttachmentImage(props) {
300
304
  __self: _this,
301
305
  __source: {
302
306
  fileName: _jsxFileName,
303
- lineNumber: 196,
307
+ lineNumber: 198,
304
308
  columnNumber: 7
305
309
  }
306
310
  }, selected && _react["default"].createElement(_reactNative.View, {
@@ -310,14 +314,14 @@ var AttachmentImage = function AttachmentImage(props) {
310
314
  __self: _this,
311
315
  __source: {
312
316
  fileName: _jsxFileName,
313
- lineNumber: 208,
317
+ lineNumber: 210,
314
318
  columnNumber: 11
315
319
  }
316
320
  }, _react["default"].createElement(ImageOverlaySelectedComponent, {
317
321
  __self: _this,
318
322
  __source: {
319
323
  fileName: _jsxFileName,
320
- lineNumber: 209,
324
+ lineNumber: 211,
321
325
  columnNumber: 13
322
326
  }
323
327
  }))));
@@ -348,7 +352,7 @@ var renderAttachmentPickerItem = function renderAttachmentPickerItem(_ref5) {
348
352
  __self: _this,
349
353
  __source: {
350
354
  fileName: _jsxFileName,
351
- lineNumber: 241,
355
+ lineNumber: 243,
352
356
  columnNumber: 7
353
357
  }
354
358
  });
@@ -365,7 +369,7 @@ var renderAttachmentPickerItem = function renderAttachmentPickerItem(_ref5) {
365
369
  __self: _this,
366
370
  __source: {
367
371
  fileName: _jsxFileName,
368
- lineNumber: 255,
372
+ lineNumber: 257,
369
373
  columnNumber: 5
370
374
  }
371
375
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_bottomSheet","_dayjs","_mimeTypes","_ThemeContext","_icons","_native","_utils","_this","_jsxFileName","AttachmentVideo","props","asset","ImageOverlaySelectedComponent","maxNumberOfFiles","numberOfAttachmentPickerImageColumns","numberOfUploads","selected","selectedFiles","setSelectedFiles","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$attac","attachmentPicker","durationText","image","imageOverlay","_useTheme$theme$color","colors","overlay","white","videoDuration","duration","uri","ONE_HOUR_IN_SECONDS","durationLabel","isDurationLongerThanHour","formattedDurationParam","formattedVideoDuration","dayjs","format","size","vw","patchVideoFile","_ref","_asyncToGenerator2","_regenerator","mark","_callee","files","localAssetURI","mimeType","wrap","_callee$","_context","prev","next","t0","Platform","OS","id","getLocalAssetUri","sent","lookup","filename","abrupt","concat","_toConsumableArray2","name","fileSize","stop","_x","apply","arguments","updateSelectedFiles","_ref2","_callee2","_callee2$","_context2","Alert","alert","onPressVideo","filter","file","createElement","TouchableOpacity","onPress","__self","__source","fileName","lineNumber","columnNumber","ImageBackground","source","style","height","margin","width","View","styles","backgroundColor","videoView","Recorder","pathFill","Text","color","AttachmentImage","selectedImages","setSelectedImages","_useTheme2","_useTheme2$theme","_useTheme2$theme$atta","patchImageFile","_ref3","_callee3","images","_callee3$","_context3","_extends2","_x2","updateSelectedImages","_ref4","_callee4","_callee4$","_context4","onPressImage","renderAttachmentPickerItem","_ref5","item","isVideoType","type","includes","exports","StyleSheet","create","fontWeight","alignItems","flex","bottom","display","flexDirection","justifyContent","paddingHorizontal","position"],"sources":["AttachmentPickerItem.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Alert, ImageBackground, Platform, StyleSheet, Text, View } from 'react-native';\n\nimport { TouchableOpacity } from '@gorhom/bottom-sheet';\nimport dayjs from 'dayjs';\nimport { lookup } from 'mime-types';\n\nimport type { AttachmentPickerContextValue } from '../../../contexts/attachmentPickerContext/AttachmentPickerContext';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\nimport { Recorder } from '../../../icons';\nimport { getLocalAssetUri } from '../../../native';\nimport type { Asset, File } from '../../../types/types';\nimport { vw } from '../../../utils/utils';\n\ntype AttachmentPickerItemType = Pick<\n AttachmentPickerContextValue,\n 'selectedFiles' | 'setSelectedFiles' | 'setSelectedImages' | 'selectedImages' | 'maxNumberOfFiles'\n> & {\n asset: Asset;\n ImageOverlaySelectedComponent: React.ComponentType;\n numberOfUploads: number;\n selected: boolean;\n numberOfAttachmentPickerImageColumns?: number;\n};\n\ntype AttachmentImageProps = Omit<AttachmentPickerItemType, 'setSelectedFiles' | 'selectedFiles'>;\n\ntype AttachmentVideoProps = Omit<AttachmentPickerItemType, 'setSelectedImages' | 'selectedImages'>;\n\nconst AttachmentVideo: React.FC<AttachmentVideoProps> = (props) => {\n const {\n asset,\n ImageOverlaySelectedComponent,\n maxNumberOfFiles,\n numberOfAttachmentPickerImageColumns,\n numberOfUploads,\n selected,\n selectedFiles,\n setSelectedFiles,\n } = props;\n\n const {\n theme: {\n attachmentPicker: { durationText, image, imageOverlay },\n colors: { overlay, white },\n },\n } = useTheme();\n\n const { duration: videoDuration, uri } = asset;\n\n const ONE_HOUR_IN_SECONDS = 3600;\n\n let durationLabel = '00:00';\n\n if (videoDuration) {\n const isDurationLongerThanHour = videoDuration / ONE_HOUR_IN_SECONDS >= 1;\n const formattedDurationParam = isDurationLongerThanHour ? 'HH:mm:ss' : 'mm:ss';\n const formattedVideoDuration = dayjs\n .duration(videoDuration, 'second')\n .format(formattedDurationParam);\n durationLabel = formattedVideoDuration;\n }\n\n const size = vw(100) / (numberOfAttachmentPickerImageColumns || 3) - 2;\n\n /* Patches video files with uri and mimetype */\n const patchVideoFile = async (files: File[]) => {\n // For the case of Expo CLI where you need to fetch the file uri from file id. Here it is only done for iOS since for android the file.uri is fine.\n const localAssetURI = Platform.OS === 'ios' && asset.id && (await getLocalAssetUri(asset.id));\n const uri = localAssetURI || asset.uri || '';\n // We need a mime-type to upload a video file.\n const mimeType = lookup(asset.filename) || 'multipart/form-data';\n return [\n ...files,\n {\n duration: durationLabel,\n id: asset.id,\n mimeType,\n name: asset.filename,\n size: asset.fileSize,\n uri,\n },\n ];\n };\n\n const updateSelectedFiles = async () => {\n if (numberOfUploads >= maxNumberOfFiles) {\n Alert.alert('Maximum number of files reached');\n return;\n }\n const files = await patchVideoFile(selectedFiles);\n setSelectedFiles(files);\n };\n\n const onPressVideo = () => {\n if (selected) {\n setSelectedFiles((files) =>\n // `id` is available for Expo MediaLibrary while Cameraroll doesn't share id therefore we use `uri`\n files.filter((file) => (file.id ? file.id !== asset.id : file.uri !== asset.uri)),\n );\n } else {\n updateSelectedFiles();\n }\n };\n\n return (\n <TouchableOpacity onPress={onPressVideo}>\n <ImageBackground\n source={{ uri }}\n style={[\n {\n height: size,\n margin: 1,\n width: size,\n },\n image,\n ]}\n >\n {selected && (\n <View style={[styles.overlay, { backgroundColor: overlay }, imageOverlay]}>\n <ImageOverlaySelectedComponent />\n </View>\n )}\n <View style={styles.videoView}>\n <Recorder height={20} pathFill={white} width={25} />\n {videoDuration ? (\n <Text style={[styles.durationText, durationText, { color: white }]}>\n {durationLabel}\n </Text>\n ) : null}\n </View>\n </ImageBackground>\n </TouchableOpacity>\n );\n};\n\nconst AttachmentImage: React.FC<AttachmentImageProps> = (props) => {\n const {\n asset,\n ImageOverlaySelectedComponent,\n maxNumberOfFiles,\n numberOfAttachmentPickerImageColumns,\n numberOfUploads,\n selected,\n selectedImages,\n setSelectedImages,\n } = props;\n const {\n theme: {\n attachmentPicker: { image, imageOverlay },\n colors: { overlay },\n },\n } = useTheme();\n\n const size = vw(100) / (numberOfAttachmentPickerImageColumns || 3) - 2;\n\n const { uri } = asset;\n\n /* Patches image files with uri */\n const patchImageFile = async (images: Asset[]) => {\n // For the case of Expo CLI where you need to fetch the file uri from file id. Here it is only done for iOS since for android the file.uri is fine.\n const localAssetURI = Platform.OS === 'ios' && asset.id && (await getLocalAssetUri(asset.id));\n const uri = localAssetURI || asset.uri || '';\n return [\n ...images,\n {\n ...asset,\n uri,\n },\n ];\n };\n\n const updateSelectedImages = async () => {\n if (numberOfUploads >= maxNumberOfFiles) {\n Alert.alert('Maximum number of files reached');\n return;\n }\n const images = await patchImageFile(selectedImages);\n setSelectedImages(images);\n };\n\n const onPressImage = () => {\n if (selected) {\n // `id` is available for Expo MediaLibrary while Cameraroll doesn't share id therefore we use `uri`\n setSelectedImages((images) =>\n images.filter((image) => (image.id ? image.id !== asset.id : image.uri !== asset.uri)),\n );\n } else {\n updateSelectedImages();\n }\n };\n\n return (\n <TouchableOpacity onPress={onPressImage}>\n <ImageBackground\n source={{ uri }}\n style={[\n {\n height: size,\n margin: 1,\n width: size,\n },\n image,\n ]}\n >\n {selected && (\n <View style={[styles.overlay, { backgroundColor: overlay }, imageOverlay]}>\n <ImageOverlaySelectedComponent />\n </View>\n )}\n </ImageBackground>\n </TouchableOpacity>\n );\n};\n\nexport const renderAttachmentPickerItem = ({ item }: { item: AttachmentPickerItemType }) => {\n const {\n asset,\n ImageOverlaySelectedComponent,\n maxNumberOfFiles,\n numberOfAttachmentPickerImageColumns,\n numberOfUploads,\n selected,\n selectedFiles,\n selectedImages,\n setSelectedFiles,\n setSelectedImages,\n } = item;\n\n /**\n * Expo Media Library - Result of asset type\n * Native Android - Gives mime type(Eg: image/jpeg, video/mp4, etc.)\n * Native iOS - Gives `image` or `video`\n * Expo Android/iOS - Gives `photo` or `video`\n **/\n const isVideoType = asset.type.includes('video');\n\n if (isVideoType) {\n return (\n <AttachmentVideo\n asset={asset}\n ImageOverlaySelectedComponent={ImageOverlaySelectedComponent}\n maxNumberOfFiles={maxNumberOfFiles}\n numberOfAttachmentPickerImageColumns={numberOfAttachmentPickerImageColumns}\n numberOfUploads={numberOfUploads}\n selected={selected}\n selectedFiles={selectedFiles}\n setSelectedFiles={setSelectedFiles}\n />\n );\n }\n\n return (\n <AttachmentImage\n asset={asset}\n ImageOverlaySelectedComponent={ImageOverlaySelectedComponent}\n maxNumberOfFiles={maxNumberOfFiles}\n numberOfAttachmentPickerImageColumns={numberOfAttachmentPickerImageColumns}\n numberOfUploads={numberOfUploads}\n selected={selected}\n selectedImages={selectedImages}\n setSelectedImages={setSelectedImages}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n durationText: {\n fontWeight: 'bold',\n },\n overlay: {\n alignItems: 'flex-end',\n flex: 1,\n },\n videoView: {\n bottom: 5,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n paddingHorizontal: 5,\n position: 'absolute',\n width: '100%',\n },\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_bottomSheet","_dayjs","_mimeTypes","_ThemeContext","_useViewport3","_icons","_native","_this","_jsxFileName","AttachmentVideo","props","asset","ImageOverlaySelectedComponent","maxNumberOfFiles","numberOfAttachmentPickerImageColumns","numberOfUploads","selected","selectedFiles","setSelectedFiles","_useViewport","useViewport","vw","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$attac","attachmentPicker","durationText","image","imageOverlay","_useTheme$theme$color","colors","overlay","white","videoDuration","duration","uri","ONE_HOUR_IN_SECONDS","durationLabel","isDurationLongerThanHour","formattedDurationParam","formattedVideoDuration","dayjs","format","size","patchVideoFile","_ref","_asyncToGenerator2","_regenerator","mark","_callee","files","localAssetURI","mimeType","wrap","_callee$","_context","prev","next","t0","Platform","OS","id","getLocalAssetUri","sent","lookup","filename","abrupt","concat","_toConsumableArray2","name","fileSize","stop","_x","apply","arguments","updateSelectedFiles","_ref2","_callee2","_callee2$","_context2","Alert","alert","onPressVideo","filter","file","createElement","TouchableOpacity","onPress","__self","__source","fileName","lineNumber","columnNumber","ImageBackground","source","style","height","margin","width","View","styles","backgroundColor","videoView","Recorder","pathFill","Text","color","AttachmentImage","selectedImages","setSelectedImages","_useTheme2","_useTheme2$theme","_useTheme2$theme$atta","_useViewport2","patchImageFile","_ref3","_callee3","images","_callee3$","_context3","_extends2","_x2","updateSelectedImages","_ref4","_callee4","_callee4$","_context4","onPressImage","renderAttachmentPickerItem","_ref5","item","isVideoType","type","includes","exports","StyleSheet","create","fontWeight","alignItems","flex","bottom","display","flexDirection","justifyContent","paddingHorizontal","position"],"sources":["AttachmentPickerItem.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Alert, ImageBackground, Platform, StyleSheet, Text, View } from 'react-native';\n\nimport { TouchableOpacity } from '@gorhom/bottom-sheet';\nimport dayjs from 'dayjs';\nimport { lookup } from 'mime-types';\n\nimport type { AttachmentPickerContextValue } from '../../../contexts/attachmentPickerContext/AttachmentPickerContext';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\nimport { useViewport } from '../../../hooks/useViewport';\nimport { Recorder } from '../../../icons';\nimport { getLocalAssetUri } from '../../../native';\nimport type { Asset, File } from '../../../types/types';\n\ntype AttachmentPickerItemType = Pick<\n AttachmentPickerContextValue,\n 'selectedFiles' | 'setSelectedFiles' | 'setSelectedImages' | 'selectedImages' | 'maxNumberOfFiles'\n> & {\n asset: Asset;\n ImageOverlaySelectedComponent: React.ComponentType;\n numberOfUploads: number;\n selected: boolean;\n numberOfAttachmentPickerImageColumns?: number;\n};\n\ntype AttachmentImageProps = Omit<AttachmentPickerItemType, 'setSelectedFiles' | 'selectedFiles'>;\n\ntype AttachmentVideoProps = Omit<AttachmentPickerItemType, 'setSelectedImages' | 'selectedImages'>;\n\nconst AttachmentVideo: React.FC<AttachmentVideoProps> = (props) => {\n const {\n asset,\n ImageOverlaySelectedComponent,\n maxNumberOfFiles,\n numberOfAttachmentPickerImageColumns,\n numberOfUploads,\n selected,\n selectedFiles,\n setSelectedFiles,\n } = props;\n const { vw } = useViewport();\n\n const {\n theme: {\n attachmentPicker: { durationText, image, imageOverlay },\n colors: { overlay, white },\n },\n } = useTheme();\n\n const { duration: videoDuration, uri } = asset;\n\n const ONE_HOUR_IN_SECONDS = 3600;\n\n let durationLabel = '00:00';\n\n if (videoDuration) {\n const isDurationLongerThanHour = videoDuration / ONE_HOUR_IN_SECONDS >= 1;\n const formattedDurationParam = isDurationLongerThanHour ? 'HH:mm:ss' : 'mm:ss';\n const formattedVideoDuration = dayjs\n .duration(videoDuration, 'second')\n .format(formattedDurationParam);\n durationLabel = formattedVideoDuration;\n }\n\n const size = vw(100) / (numberOfAttachmentPickerImageColumns || 3) - 2;\n\n /* Patches video files with uri and mimetype */\n const patchVideoFile = async (files: File[]) => {\n // For the case of Expo CLI where you need to fetch the file uri from file id. Here it is only done for iOS since for android the file.uri is fine.\n const localAssetURI = Platform.OS === 'ios' && asset.id && (await getLocalAssetUri(asset.id));\n const uri = localAssetURI || asset.uri || '';\n // We need a mime-type to upload a video file.\n const mimeType = lookup(asset.filename) || 'multipart/form-data';\n return [\n ...files,\n {\n duration: durationLabel,\n id: asset.id,\n mimeType,\n name: asset.filename,\n size: asset.fileSize,\n uri,\n },\n ];\n };\n\n const updateSelectedFiles = async () => {\n if (numberOfUploads >= maxNumberOfFiles) {\n Alert.alert('Maximum number of files reached');\n return;\n }\n const files = await patchVideoFile(selectedFiles);\n setSelectedFiles(files);\n };\n\n const onPressVideo = () => {\n if (selected) {\n setSelectedFiles((files) =>\n // `id` is available for Expo MediaLibrary while Cameraroll doesn't share id therefore we use `uri`\n files.filter((file) => (file.id ? file.id !== asset.id : file.uri !== asset.uri)),\n );\n } else {\n updateSelectedFiles();\n }\n };\n\n return (\n <TouchableOpacity onPress={onPressVideo}>\n <ImageBackground\n source={{ uri }}\n style={[\n {\n height: size,\n margin: 1,\n width: size,\n },\n image,\n ]}\n >\n {selected && (\n <View style={[styles.overlay, { backgroundColor: overlay }, imageOverlay]}>\n <ImageOverlaySelectedComponent />\n </View>\n )}\n <View style={styles.videoView}>\n <Recorder height={20} pathFill={white} width={25} />\n {videoDuration ? (\n <Text style={[styles.durationText, durationText, { color: white }]}>\n {durationLabel}\n </Text>\n ) : null}\n </View>\n </ImageBackground>\n </TouchableOpacity>\n );\n};\n\nconst AttachmentImage: React.FC<AttachmentImageProps> = (props) => {\n const {\n asset,\n ImageOverlaySelectedComponent,\n maxNumberOfFiles,\n numberOfAttachmentPickerImageColumns,\n numberOfUploads,\n selected,\n selectedImages,\n setSelectedImages,\n } = props;\n const {\n theme: {\n attachmentPicker: { image, imageOverlay },\n colors: { overlay },\n },\n } = useTheme();\n const { vw } = useViewport();\n\n const size = vw(100) / (numberOfAttachmentPickerImageColumns || 3) - 2;\n\n const { uri } = asset;\n\n /* Patches image files with uri */\n const patchImageFile = async (images: Asset[]) => {\n // For the case of Expo CLI where you need to fetch the file uri from file id. Here it is only done for iOS since for android the file.uri is fine.\n const localAssetURI = Platform.OS === 'ios' && asset.id && (await getLocalAssetUri(asset.id));\n const uri = localAssetURI || asset.uri || '';\n return [\n ...images,\n {\n ...asset,\n uri,\n },\n ];\n };\n\n const updateSelectedImages = async () => {\n if (numberOfUploads >= maxNumberOfFiles) {\n Alert.alert('Maximum number of files reached');\n return;\n }\n const images = await patchImageFile(selectedImages);\n setSelectedImages(images);\n };\n\n const onPressImage = () => {\n if (selected) {\n // `id` is available for Expo MediaLibrary while Cameraroll doesn't share id therefore we use `uri`\n setSelectedImages((images) =>\n images.filter((image) => (image.id ? image.id !== asset.id : image.uri !== asset.uri)),\n );\n } else {\n updateSelectedImages();\n }\n };\n\n return (\n <TouchableOpacity onPress={onPressImage}>\n <ImageBackground\n source={{ uri }}\n style={[\n {\n height: size,\n margin: 1,\n width: size,\n },\n image,\n ]}\n >\n {selected && (\n <View style={[styles.overlay, { backgroundColor: overlay }, imageOverlay]}>\n <ImageOverlaySelectedComponent />\n </View>\n )}\n </ImageBackground>\n </TouchableOpacity>\n );\n};\n\nexport const renderAttachmentPickerItem = ({ item }: { item: AttachmentPickerItemType }) => {\n const {\n asset,\n ImageOverlaySelectedComponent,\n maxNumberOfFiles,\n numberOfAttachmentPickerImageColumns,\n numberOfUploads,\n selected,\n selectedFiles,\n selectedImages,\n setSelectedFiles,\n setSelectedImages,\n } = item;\n\n /**\n * Expo Media Library - Result of asset type\n * Native Android - Gives mime type(Eg: image/jpeg, video/mp4, etc.)\n * Native iOS - Gives `image` or `video`\n * Expo Android/iOS - Gives `photo` or `video`\n **/\n const isVideoType = asset.type.includes('video');\n\n if (isVideoType) {\n return (\n <AttachmentVideo\n asset={asset}\n ImageOverlaySelectedComponent={ImageOverlaySelectedComponent}\n maxNumberOfFiles={maxNumberOfFiles}\n numberOfAttachmentPickerImageColumns={numberOfAttachmentPickerImageColumns}\n numberOfUploads={numberOfUploads}\n selected={selected}\n selectedFiles={selectedFiles}\n setSelectedFiles={setSelectedFiles}\n />\n );\n }\n\n return (\n <AttachmentImage\n asset={asset}\n ImageOverlaySelectedComponent={ImageOverlaySelectedComponent}\n maxNumberOfFiles={maxNumberOfFiles}\n numberOfAttachmentPickerImageColumns={numberOfAttachmentPickerImageColumns}\n numberOfUploads={numberOfUploads}\n selected={selected}\n selectedImages={selectedImages}\n setSelectedImages={setSelectedImages}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n durationText: {\n fontWeight: 'bold',\n },\n overlay: {\n alignItems: 'flex-end',\n flex: 1,\n },\n videoView: {\n bottom: 5,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n paddingHorizontal: 5,\n position: 'absolute',\n width: '100%',\n },\n});\n"],"mappings":"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"}
@@ -19,7 +19,7 @@ var _useChannelPreviewDisplayName = require("./hooks/useChannelPreviewDisplayNam
19
19
  var _ChannelsContext = require("../../contexts/channelsContext/ChannelsContext");
20
20
  var _ChatContext = require("../../contexts/chatContext/ChatContext");
21
21
  var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
22
- var _utils = require("../../utils/utils");
22
+ var _useViewport2 = require("../../hooks/useViewport");
23
23
  var _this = this,
24
24
  _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/ChannelPreview/ChannelPreviewMessenger.tsx";
25
25
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -51,7 +51,6 @@ var styles = _reactNative.StyleSheet.create({
51
51
  fontWeight: '700'
52
52
  }
53
53
  });
54
- var maxWidth = (0, _utils.vw)(80) - 16 - 40;
55
54
  var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithContext(props) {
56
55
  var channel = props.channel,
57
56
  formatLatestMessageDate = props.formatLatestMessageDate,
@@ -71,6 +70,9 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
71
70
  _props$PreviewMutedSt = props.PreviewMutedStatus,
72
71
  PreviewMutedStatus = _props$PreviewMutedSt === void 0 ? _ChannelPreviewMutedStatus.ChannelPreviewMutedStatus : _props$PreviewMutedSt,
73
72
  unread = props.unread;
73
+ var _useViewport = (0, _useViewport2.useViewport)(),
74
+ vw = _useViewport.vw;
75
+ var maxWidth = vw(80) - 16 - 40;
74
76
  var _useTheme = (0, _ThemeContext.useTheme)(),
75
77
  _useTheme$theme = _useTheme.theme,
76
78
  _useTheme$theme$chann = _useTheme$theme.channelPreview,
@@ -113,7 +115,7 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
113
115
  __self: _this,
114
116
  __source: {
115
117
  fileName: _jsxFileName,
116
- lineNumber: 148,
118
+ lineNumber: 149,
117
119
  columnNumber: 5
118
120
  }
119
121
  }, _react["default"].createElement(PreviewAvatar, {
@@ -121,7 +123,7 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
121
123
  __self: _this,
122
124
  __source: {
123
125
  fileName: _jsxFileName,
124
- lineNumber: 161,
126
+ lineNumber: 162,
125
127
  columnNumber: 7
126
128
  }
127
129
  }), _react["default"].createElement(_reactNative.View, {
@@ -130,7 +132,7 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
130
132
  __self: _this,
131
133
  __source: {
132
134
  fileName: _jsxFileName,
133
- lineNumber: 162,
135
+ lineNumber: 163,
134
136
  columnNumber: 7
135
137
  }
136
138
  }, _react["default"].createElement(_reactNative.View, {
@@ -138,7 +140,7 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
138
140
  __self: _this,
139
141
  __source: {
140
142
  fileName: _jsxFileName,
141
- lineNumber: 166,
143
+ lineNumber: 167,
142
144
  columnNumber: 9
143
145
  }
144
146
  }, _react["default"].createElement(PreviewTitle, {
@@ -147,7 +149,7 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
147
149
  __self: _this,
148
150
  __source: {
149
151
  fileName: _jsxFileName,
150
- lineNumber: 167,
152
+ lineNumber: 168,
151
153
  columnNumber: 11
152
154
  }
153
155
  }), _react["default"].createElement(_reactNative.View, {
@@ -155,14 +157,14 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
155
157
  __self: _this,
156
158
  __source: {
157
159
  fileName: _jsxFileName,
158
- lineNumber: 168,
160
+ lineNumber: 169,
159
161
  columnNumber: 11
160
162
  }
161
163
  }, isChannelMuted && _react["default"].createElement(PreviewMutedStatus, {
162
164
  __self: _this,
163
165
  __source: {
164
166
  fileName: _jsxFileName,
165
- lineNumber: 169,
167
+ lineNumber: 170,
166
168
  columnNumber: 32
167
169
  }
168
170
  }), _react["default"].createElement(PreviewUnreadCount, {
@@ -172,7 +174,7 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
172
174
  __self: _this,
173
175
  __source: {
174
176
  fileName: _jsxFileName,
175
- lineNumber: 170,
177
+ lineNumber: 171,
176
178
  columnNumber: 13
177
179
  }
178
180
  }))), _react["default"].createElement(_reactNative.View, {
@@ -180,7 +182,7 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
180
182
  __self: _this,
181
183
  __source: {
182
184
  fileName: _jsxFileName,
183
- lineNumber: 173,
185
+ lineNumber: 174,
184
186
  columnNumber: 9
185
187
  }
186
188
  }, _react["default"].createElement(PreviewMessage, {
@@ -188,7 +190,7 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
188
190
  __self: _this,
189
191
  __source: {
190
192
  fileName: _jsxFileName,
191
- lineNumber: 174,
193
+ lineNumber: 175,
192
194
  columnNumber: 11
193
195
  }
194
196
  }), _react["default"].createElement(PreviewStatus, {
@@ -198,7 +200,7 @@ var ChannelPreviewMessengerWithContext = function ChannelPreviewMessengerWithCon
198
200
  __self: _this,
199
201
  __source: {
200
202
  fileName: _jsxFileName,
201
- lineNumber: 175,
203
+ lineNumber: 176,
202
204
  columnNumber: 11
203
205
  }
204
206
  }))));
@@ -227,7 +229,7 @@ var ChannelPreviewMessenger = function ChannelPreviewMessenger(props) {
227
229
  __self: _this,
228
230
  __source: {
229
231
  fileName: _jsxFileName,
230
- lineNumber: 223,
232
+ lineNumber: 224,
231
233
  columnNumber: 5
232
234
  }
233
235
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeGestureHandler","_ChannelAvatar","_ChannelPreviewMessage","_ChannelPreviewMutedStatus","_ChannelPreviewStatus","_ChannelPreviewTitle","_ChannelPreviewUnreadCount","_useChannelPreviewDisplayName","_ChannelsContext","_ChatContext","_ThemeContext","_utils","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","styles","StyleSheet","create","container","borderBottomWidth","flex","flexDirection","paddingHorizontal","paddingVertical","contentContainer","row","alignItems","justifyContent","paddingLeft","statusContainer","display","title","fontSize","fontWeight","maxWidth","vw","ChannelPreviewMessengerWithContext","props","channel","formatLatestMessageDate","latestMessagePreview","maxUnreadCount","onSelect","_props$PreviewAvatar","PreviewAvatar","ChannelAvatar","_props$PreviewMessage","PreviewMessage","ChannelPreviewMessage","_props$PreviewStatus","PreviewStatus","ChannelPreviewStatus","_props$PreviewTitle","PreviewTitle","ChannelPreviewTitle","_props$PreviewUnreadC","PreviewUnreadCount","ChannelPreviewUnreadCount","_props$PreviewMutedSt","PreviewMutedStatus","ChannelPreviewMutedStatus","unread","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$chann","channelPreview","_useTheme$theme$color","colors","border","white_snow","_useChatContext","useChatContext","client","displayName","useChannelPreviewDisplayName","Math","floor","_useState","useState","muteStatus","muted","_useState2","_slicedToArray2","isChannelMuted","setIsChannelMuted","useEffect","handleEvent","on","off","createElement","TouchableOpacity","onPress","style","backgroundColor","borderBottomColor","testID","__self","__source","fileName","lineNumber","columnNumber","View","id","MemoizedChannelPreviewMessengerWithContext","React","memo","ChannelPreviewMessenger","_useChannelsContext","useChannelsContext","_extends2","exports"],"sources":["ChannelPreviewMessenger.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { TouchableOpacity } from 'react-native-gesture-handler';\n\nimport { ChannelAvatar } from './ChannelAvatar';\nimport type { ChannelPreviewProps } from './ChannelPreview';\nimport { ChannelPreviewMessage } from './ChannelPreviewMessage';\nimport { ChannelPreviewMutedStatus } from './ChannelPreviewMutedStatus';\nimport { ChannelPreviewStatus } from './ChannelPreviewStatus';\nimport { ChannelPreviewTitle } from './ChannelPreviewTitle';\nimport { ChannelPreviewUnreadCount } from './ChannelPreviewUnreadCount';\nimport { useChannelPreviewDisplayName } from './hooks/useChannelPreviewDisplayName';\n\nimport type { LatestMessagePreview } from './hooks/useLatestMessagePreview';\n\nimport {\n ChannelsContextValue,\n useChannelsContext,\n} from '../../contexts/channelsContext/ChannelsContext';\nimport { useChatContext } from '../../contexts/chatContext/ChatContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { vw } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n container: {\n borderBottomWidth: 1,\n flex: 1,\n flexDirection: 'row',\n paddingHorizontal: 8,\n paddingVertical: 12,\n },\n contentContainer: { flex: 1 },\n row: {\n alignItems: 'center',\n flex: 1,\n flexDirection: 'row',\n justifyContent: 'space-between',\n paddingLeft: 8,\n },\n statusContainer: {\n display: 'flex',\n flexDirection: 'row',\n },\n title: { fontSize: 14, fontWeight: '700' },\n});\n\nconst maxWidth = vw(80) - 16 - 40;\n\nexport type ChannelPreviewMessengerPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChannelPreviewProps<StreamChatGenerics>, 'channel'> &\n Pick<\n ChannelsContextValue<StreamChatGenerics>,\n | 'maxUnreadCount'\n | 'onSelect'\n | 'PreviewAvatar'\n | 'PreviewMessage'\n | 'PreviewMutedStatus'\n | 'PreviewStatus'\n | 'PreviewTitle'\n | 'PreviewUnreadCount'\n > & {\n /**\n * Latest message on a channel, formatted for preview\n *\n * e.g.,\n *\n * ```json\n * {\n * created_at: '' ,\n * messageObject: { ... },\n * previews: {\n * bold: true,\n * text: 'This is the message preview text'\n * },\n * status: 0 | 1 | 2 // read states of the latest message.\n * }\n * ```\n *\n * The read status is either of the following:\n *\n * 0: The message was not sent by the current user\n * 1: The message was sent by the current user and is unread\n * 2: The message was sent by the current user and is read\n *\n * @overrideType object\n */\n latestMessagePreview: LatestMessagePreview<StreamChatGenerics>;\n /**\n * Formatter function for date of latest message.\n * @param date Message date\n * @returns Formatted date string\n *\n * By default today's date is shown in 'HH:mm A' format and other dates\n * are displayed in 'DD/MM/YY' format. props.latestMessage.created_at is the\n * default formatted date. This default logic is part of ChannelPreview component.\n */\n formatLatestMessageDate?: (date: Date) => string;\n /** Number of unread messages on the channel */\n unread?: number;\n };\n\nconst ChannelPreviewMessengerWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelPreviewMessengerPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n channel,\n formatLatestMessageDate,\n latestMessagePreview,\n maxUnreadCount,\n onSelect,\n PreviewAvatar = ChannelAvatar,\n PreviewMessage = ChannelPreviewMessage,\n PreviewStatus = ChannelPreviewStatus,\n PreviewTitle = ChannelPreviewTitle,\n PreviewUnreadCount = ChannelPreviewUnreadCount,\n PreviewMutedStatus = ChannelPreviewMutedStatus,\n unread,\n } = props;\n\n const {\n theme: {\n channelPreview: { container, contentContainer, row, title },\n colors: { border, white_snow },\n },\n } = useTheme();\n\n const { client } = useChatContext<StreamChatGenerics>();\n\n const displayName = useChannelPreviewDisplayName(\n channel,\n Math.floor(maxWidth / ((title.fontSize || styles.title.fontSize) / 2)),\n );\n\n const [isChannelMuted, setIsChannelMuted] = useState(() => channel.muteStatus().muted);\n\n useEffect(() => {\n const handleEvent = () => setIsChannelMuted(channel.muteStatus().muted);\n\n client.on('notification.channel_mutes_updated', handleEvent);\n return () => client.off('notification.channel_mutes_updated', handleEvent);\n }, [client]);\n\n return (\n <TouchableOpacity\n onPress={() => {\n if (onSelect) {\n onSelect(channel);\n }\n }}\n style={[\n styles.container,\n { backgroundColor: white_snow, borderBottomColor: border },\n container,\n ]}\n testID='channel-preview-button'\n >\n <PreviewAvatar channel={channel} />\n <View\n style={[styles.contentContainer, contentContainer]}\n testID={`channel-preview-content-${channel.id}`}\n >\n <View style={[styles.row, row]}>\n <PreviewTitle channel={channel} displayName={displayName} />\n <View style={[styles.statusContainer, row]}>\n {isChannelMuted && <PreviewMutedStatus />}\n <PreviewUnreadCount channel={channel} maxUnreadCount={maxUnreadCount} unread={unread} />\n </View>\n </View>\n <View style={[styles.row, row]}>\n <PreviewMessage latestMessagePreview={latestMessagePreview} />\n <PreviewStatus\n channel={channel}\n formatLatestMessageDate={formatLatestMessageDate}\n latestMessagePreview={latestMessagePreview}\n />\n </View>\n </View>\n </TouchableOpacity>\n );\n};\n\nexport type ChannelPreviewMessengerProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<\n Omit<\n ChannelPreviewMessengerPropsWithContext<StreamChatGenerics>,\n 'channel' | 'latestMessagePreview'\n >\n> &\n Pick<\n ChannelPreviewMessengerPropsWithContext<StreamChatGenerics>,\n 'channel' | 'latestMessagePreview'\n >;\n\nconst MemoizedChannelPreviewMessengerWithContext = React.memo(\n ChannelPreviewMessengerWithContext,\n) as typeof ChannelPreviewMessengerWithContext;\n\n/**\n * This UI component displays an individual preview item for each channel in a list. It also receives all props\n * from the ChannelPreview component.\n */\nexport const ChannelPreviewMessenger = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelPreviewMessengerProps<StreamChatGenerics>,\n) => {\n const {\n maxUnreadCount,\n onSelect,\n PreviewAvatar,\n PreviewMessage,\n PreviewMutedStatus,\n PreviewStatus,\n PreviewTitle,\n PreviewUnreadCount,\n } = useChannelsContext<StreamChatGenerics>();\n return (\n <MemoizedChannelPreviewMessengerWithContext\n {...{\n maxUnreadCount,\n onSelect,\n PreviewAvatar,\n PreviewMessage,\n PreviewMutedStatus,\n PreviewStatus,\n PreviewTitle,\n PreviewUnreadCount,\n }}\n {...props}\n />\n );\n};\n\nChannelPreviewMessenger.displayName = 'ChannelPreviewMessenger{channelPreview}';\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeGestureHandler","_ChannelAvatar","_ChannelPreviewMessage","_ChannelPreviewMutedStatus","_ChannelPreviewStatus","_ChannelPreviewTitle","_ChannelPreviewUnreadCount","_useChannelPreviewDisplayName","_ChannelsContext","_ChatContext","_ThemeContext","_useViewport2","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","styles","StyleSheet","create","container","borderBottomWidth","flex","flexDirection","paddingHorizontal","paddingVertical","contentContainer","row","alignItems","justifyContent","paddingLeft","statusContainer","display","title","fontSize","fontWeight","ChannelPreviewMessengerWithContext","props","channel","formatLatestMessageDate","latestMessagePreview","maxUnreadCount","onSelect","_props$PreviewAvatar","PreviewAvatar","ChannelAvatar","_props$PreviewMessage","PreviewMessage","ChannelPreviewMessage","_props$PreviewStatus","PreviewStatus","ChannelPreviewStatus","_props$PreviewTitle","PreviewTitle","ChannelPreviewTitle","_props$PreviewUnreadC","PreviewUnreadCount","ChannelPreviewUnreadCount","_props$PreviewMutedSt","PreviewMutedStatus","ChannelPreviewMutedStatus","unread","_useViewport","useViewport","vw","maxWidth","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$chann","channelPreview","_useTheme$theme$color","colors","border","white_snow","_useChatContext","useChatContext","client","displayName","useChannelPreviewDisplayName","Math","floor","_useState","useState","muteStatus","muted","_useState2","_slicedToArray2","isChannelMuted","setIsChannelMuted","useEffect","handleEvent","on","off","createElement","TouchableOpacity","onPress","style","backgroundColor","borderBottomColor","testID","__self","__source","fileName","lineNumber","columnNumber","View","id","MemoizedChannelPreviewMessengerWithContext","React","memo","ChannelPreviewMessenger","_useChannelsContext","useChannelsContext","_extends2","exports"],"sources":["ChannelPreviewMessenger.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { TouchableOpacity } from 'react-native-gesture-handler';\n\nimport { ChannelAvatar } from './ChannelAvatar';\nimport type { ChannelPreviewProps } from './ChannelPreview';\nimport { ChannelPreviewMessage } from './ChannelPreviewMessage';\nimport { ChannelPreviewMutedStatus } from './ChannelPreviewMutedStatus';\nimport { ChannelPreviewStatus } from './ChannelPreviewStatus';\nimport { ChannelPreviewTitle } from './ChannelPreviewTitle';\nimport { ChannelPreviewUnreadCount } from './ChannelPreviewUnreadCount';\nimport { useChannelPreviewDisplayName } from './hooks/useChannelPreviewDisplayName';\n\nimport type { LatestMessagePreview } from './hooks/useLatestMessagePreview';\n\nimport {\n ChannelsContextValue,\n useChannelsContext,\n} from '../../contexts/channelsContext/ChannelsContext';\nimport { useChatContext } from '../../contexts/chatContext/ChatContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useViewport } from '../../hooks/useViewport';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nconst styles = StyleSheet.create({\n container: {\n borderBottomWidth: 1,\n flex: 1,\n flexDirection: 'row',\n paddingHorizontal: 8,\n paddingVertical: 12,\n },\n contentContainer: { flex: 1 },\n row: {\n alignItems: 'center',\n flex: 1,\n flexDirection: 'row',\n justifyContent: 'space-between',\n paddingLeft: 8,\n },\n statusContainer: {\n display: 'flex',\n flexDirection: 'row',\n },\n title: { fontSize: 14, fontWeight: '700' },\n});\n\nexport type ChannelPreviewMessengerPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChannelPreviewProps<StreamChatGenerics>, 'channel'> &\n Pick<\n ChannelsContextValue<StreamChatGenerics>,\n | 'maxUnreadCount'\n | 'onSelect'\n | 'PreviewAvatar'\n | 'PreviewMessage'\n | 'PreviewMutedStatus'\n | 'PreviewStatus'\n | 'PreviewTitle'\n | 'PreviewUnreadCount'\n > & {\n /**\n * Latest message on a channel, formatted for preview\n *\n * e.g.,\n *\n * ```json\n * {\n * created_at: '' ,\n * messageObject: { ... },\n * previews: {\n * bold: true,\n * text: 'This is the message preview text'\n * },\n * status: 0 | 1 | 2 // read states of the latest message.\n * }\n * ```\n *\n * The read status is either of the following:\n *\n * 0: The message was not sent by the current user\n * 1: The message was sent by the current user and is unread\n * 2: The message was sent by the current user and is read\n *\n * @overrideType object\n */\n latestMessagePreview: LatestMessagePreview<StreamChatGenerics>;\n /**\n * Formatter function for date of latest message.\n * @param date Message date\n * @returns Formatted date string\n *\n * By default today's date is shown in 'HH:mm A' format and other dates\n * are displayed in 'DD/MM/YY' format. props.latestMessage.created_at is the\n * default formatted date. This default logic is part of ChannelPreview component.\n */\n formatLatestMessageDate?: (date: Date) => string;\n /** Number of unread messages on the channel */\n unread?: number;\n };\n\nconst ChannelPreviewMessengerWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelPreviewMessengerPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n channel,\n formatLatestMessageDate,\n latestMessagePreview,\n maxUnreadCount,\n onSelect,\n PreviewAvatar = ChannelAvatar,\n PreviewMessage = ChannelPreviewMessage,\n PreviewStatus = ChannelPreviewStatus,\n PreviewTitle = ChannelPreviewTitle,\n PreviewUnreadCount = ChannelPreviewUnreadCount,\n PreviewMutedStatus = ChannelPreviewMutedStatus,\n unread,\n } = props;\n const { vw } = useViewport();\n\n const maxWidth = vw(80) - 16 - 40;\n\n const {\n theme: {\n channelPreview: { container, contentContainer, row, title },\n colors: { border, white_snow },\n },\n } = useTheme();\n\n const { client } = useChatContext<StreamChatGenerics>();\n\n const displayName = useChannelPreviewDisplayName(\n channel,\n Math.floor(maxWidth / ((title.fontSize || styles.title.fontSize) / 2)),\n );\n\n const [isChannelMuted, setIsChannelMuted] = useState(() => channel.muteStatus().muted);\n\n useEffect(() => {\n const handleEvent = () => setIsChannelMuted(channel.muteStatus().muted);\n\n client.on('notification.channel_mutes_updated', handleEvent);\n return () => client.off('notification.channel_mutes_updated', handleEvent);\n }, [client]);\n\n return (\n <TouchableOpacity\n onPress={() => {\n if (onSelect) {\n onSelect(channel);\n }\n }}\n style={[\n styles.container,\n { backgroundColor: white_snow, borderBottomColor: border },\n container,\n ]}\n testID='channel-preview-button'\n >\n <PreviewAvatar channel={channel} />\n <View\n style={[styles.contentContainer, contentContainer]}\n testID={`channel-preview-content-${channel.id}`}\n >\n <View style={[styles.row, row]}>\n <PreviewTitle channel={channel} displayName={displayName} />\n <View style={[styles.statusContainer, row]}>\n {isChannelMuted && <PreviewMutedStatus />}\n <PreviewUnreadCount channel={channel} maxUnreadCount={maxUnreadCount} unread={unread} />\n </View>\n </View>\n <View style={[styles.row, row]}>\n <PreviewMessage latestMessagePreview={latestMessagePreview} />\n <PreviewStatus\n channel={channel}\n formatLatestMessageDate={formatLatestMessageDate}\n latestMessagePreview={latestMessagePreview}\n />\n </View>\n </View>\n </TouchableOpacity>\n );\n};\n\nexport type ChannelPreviewMessengerProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<\n Omit<\n ChannelPreviewMessengerPropsWithContext<StreamChatGenerics>,\n 'channel' | 'latestMessagePreview'\n >\n> &\n Pick<\n ChannelPreviewMessengerPropsWithContext<StreamChatGenerics>,\n 'channel' | 'latestMessagePreview'\n >;\n\nconst MemoizedChannelPreviewMessengerWithContext = React.memo(\n ChannelPreviewMessengerWithContext,\n) as typeof ChannelPreviewMessengerWithContext;\n\n/**\n * This UI component displays an individual preview item for each channel in a list. It also receives all props\n * from the ChannelPreview component.\n */\nexport const ChannelPreviewMessenger = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ChannelPreviewMessengerProps<StreamChatGenerics>,\n) => {\n const {\n maxUnreadCount,\n onSelect,\n PreviewAvatar,\n PreviewMessage,\n PreviewMutedStatus,\n PreviewStatus,\n PreviewTitle,\n PreviewUnreadCount,\n } = useChannelsContext<StreamChatGenerics>();\n return (\n <MemoizedChannelPreviewMessengerWithContext\n {...{\n maxUnreadCount,\n onSelect,\n PreviewAvatar,\n PreviewMessage,\n PreviewMutedStatus,\n PreviewStatus,\n PreviewTitle,\n PreviewUnreadCount,\n }}\n {...props}\n />\n );\n};\n\nChannelPreviewMessenger.displayName = 'ChannelPreviewMessenger{channelPreview}';\n"],"mappings":"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"}
@@ -6,8 +6,7 @@ exports.useChannelPreviewDisplayName = exports.getChannelPreviewDisplayName = vo
6
6
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
7
7
  var _react = require("react");
8
8
  var _ChatContext = require("../../../contexts/chatContext/ChatContext");
9
- var _utils = require("../../../utils/utils");
10
- var DEFAULT_MAX_CHARACTER_LENGTH = ((0, _utils.vw)(100) - 16) / 6;
9
+ var _useViewport2 = require("../../../hooks/useViewport");
11
10
  var ELLIPSIS = "...";
12
11
  var getMemberName = function getMemberName(member) {
13
12
  var _member$user, _member$user2;
@@ -58,6 +57,9 @@ var useChannelPreviewDisplayName = function useChannelPreviewDisplayName(channel
58
57
  var _channel$state, _channel$data;
59
58
  var _useChatContext = (0, _ChatContext.useChatContext)(),
60
59
  client = _useChatContext.client;
60
+ var _useViewport = (0, _useViewport2.useViewport)(),
61
+ vw = _useViewport.vw;
62
+ var DEFAULT_MAX_CHARACTER_LENGTH = (vw(100) - 16) / 6;
61
63
  var currentUserId = client == null ? void 0 : client.userID;
62
64
  var members = channel == null ? void 0 : (_channel$state = channel.state) == null ? void 0 : _channel$state.members;
63
65
  var numOfMembers = Object.keys(members || {}).length;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_ChatContext","_utils","DEFAULT_MAX_CHARACTER_LENGTH","vw","ELLIPSIS","getMemberName","member","_member$user","_member$user2","user","name","id","getChannelPreviewDisplayName","_ref","channelName","characterLimit","currentUserId","members","channelMembers","Object","values","otherMembers","filter","_member$user3","sort","prevUser","nextUser","_prevUser$user$name","_prevUser$user","_nextUser$user$name","_nextUser$user","toLowerCase","localeCompare","toLocaleUpperCase","createChannelNameSuffix","remainingNumberOfMembers","length","slice","reduce","result","currentMember","index","originalArray","currentMemberName","resultHasSpaceForCurrentMemberName","truncateLimit","tuncatedCurrentMemberName","channelNameSuffix","exports","useChannelPreviewDisplayName","channel","characterLength","_channel$state","_channel$data","_useChatContext","useChatContext","client","userID","state","numOfMembers","keys","data","_useState","useState","_useState2","_slicedToArray2","displayName","setDisplayName","useEffect"],"sources":["useChannelPreviewDisplayName.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { Channel, ChannelMemberResponse } from 'stream-chat';\n\nimport { useChatContext } from '../../../contexts/chatContext/ChatContext';\n\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\nimport { vw } from '../../../utils/utils';\n\nconst DEFAULT_MAX_CHARACTER_LENGTH = (vw(100) - 16) / 6;\n\nconst ELLIPSIS = `...`;\n\nconst getMemberName = (member: ChannelMemberResponse) =>\n member.user?.name || member.user?.id || 'Unknown User';\n\nexport const getChannelPreviewDisplayName = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n channelName,\n characterLimit,\n currentUserId,\n members,\n}: {\n characterLimit: number;\n channelName?: string;\n currentUserId?: string;\n members?: Channel<StreamChatGenerics>['state']['members'];\n}): string => {\n if (channelName) return channelName;\n\n const channelMembers = Object.values(members || {});\n\n const otherMembers = channelMembers.filter((member) => member.user?.id !== currentUserId);\n otherMembers.sort((prevUser, nextUser) =>\n (prevUser?.user?.name ?? '')\n .toLowerCase()\n .localeCompare((nextUser?.user?.name ?? '').toLocaleUpperCase()),\n );\n\n const createChannelNameSuffix = (remainingNumberOfMembers: number) =>\n remainingNumberOfMembers <= 1 ? `${ELLIPSIS}` : `,${ELLIPSIS}+${remainingNumberOfMembers}`;\n\n if (otherMembers.length === 1) {\n const name = getMemberName(otherMembers[0]);\n return name.length > characterLimit\n ? `${name.slice(0, characterLimit - ELLIPSIS.length)}${ELLIPSIS}`\n : name;\n }\n\n const name = otherMembers.reduce((result, currentMember, index, originalArray) => {\n if (result.length >= characterLimit) {\n return result;\n }\n\n const currentMemberName = getMemberName(currentMember);\n\n const resultHasSpaceForCurrentMemberName =\n result.length + (currentMemberName.length + ELLIPSIS.length) < characterLimit;\n\n if (resultHasSpaceForCurrentMemberName) {\n return result.length > 0 ? `${result}, ${currentMemberName}` : `${currentMemberName}`;\n } else {\n const remainingNumberOfMembers = originalArray.length - index;\n const truncateLimit = characterLimit - (ELLIPSIS.length + result.length);\n const tuncatedCurrentMemberName = `, ${currentMemberName.slice(0, truncateLimit)}`;\n\n const channelNameSuffix = createChannelNameSuffix(remainingNumberOfMembers);\n\n return `${result}${tuncatedCurrentMemberName}${channelNameSuffix}`;\n }\n }, '');\n\n return name;\n};\n\nexport const useChannelPreviewDisplayName = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel?: Channel<StreamChatGenerics>,\n characterLength?: number,\n) => {\n const { client } = useChatContext<StreamChatGenerics>();\n\n const currentUserId = client?.userID;\n const members = channel?.state?.members;\n const numOfMembers = Object.keys(members || {}).length;\n const channelName = channel?.data?.name;\n const characterLimit = characterLength || DEFAULT_MAX_CHARACTER_LENGTH;\n const [displayName, setDisplayName] = useState(\n getChannelPreviewDisplayName({\n channelName,\n characterLimit,\n currentUserId,\n members,\n }),\n );\n\n useEffect(() => {\n setDisplayName(\n getChannelPreviewDisplayName({\n channelName,\n characterLimit,\n currentUserId,\n members,\n }),\n );\n }, [channelName, currentUserId, characterLimit, numOfMembers]);\n\n return displayName;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_ChatContext","_useViewport2","ELLIPSIS","getMemberName","member","_member$user","_member$user2","user","name","id","getChannelPreviewDisplayName","_ref","channelName","characterLimit","currentUserId","members","channelMembers","Object","values","otherMembers","filter","_member$user3","sort","prevUser","nextUser","_prevUser$user$name","_prevUser$user","_nextUser$user$name","_nextUser$user","toLowerCase","localeCompare","toLocaleUpperCase","createChannelNameSuffix","remainingNumberOfMembers","length","slice","reduce","result","currentMember","index","originalArray","currentMemberName","resultHasSpaceForCurrentMemberName","truncateLimit","tuncatedCurrentMemberName","channelNameSuffix","exports","useChannelPreviewDisplayName","channel","characterLength","_channel$state","_channel$data","_useChatContext","useChatContext","client","_useViewport","useViewport","vw","DEFAULT_MAX_CHARACTER_LENGTH","userID","state","numOfMembers","keys","data","_useState","useState","_useState2","_slicedToArray2","displayName","setDisplayName","useEffect"],"sources":["useChannelPreviewDisplayName.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { Channel, ChannelMemberResponse } from 'stream-chat';\n\nimport { useChatContext } from '../../../contexts/chatContext/ChatContext';\nimport { useViewport } from '../../../hooks/useViewport';\n\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\nconst ELLIPSIS = `...`;\n\nconst getMemberName = (member: ChannelMemberResponse) =>\n member.user?.name || member.user?.id || 'Unknown User';\n\nexport const getChannelPreviewDisplayName = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n channelName,\n characterLimit,\n currentUserId,\n members,\n}: {\n characterLimit: number;\n channelName?: string;\n currentUserId?: string;\n members?: Channel<StreamChatGenerics>['state']['members'];\n}): string => {\n if (channelName) return channelName;\n\n const channelMembers = Object.values(members || {});\n\n const otherMembers = channelMembers.filter((member) => member.user?.id !== currentUserId);\n otherMembers.sort((prevUser, nextUser) =>\n (prevUser?.user?.name ?? '')\n .toLowerCase()\n .localeCompare((nextUser?.user?.name ?? '').toLocaleUpperCase()),\n );\n\n const createChannelNameSuffix = (remainingNumberOfMembers: number) =>\n remainingNumberOfMembers <= 1 ? `${ELLIPSIS}` : `,${ELLIPSIS}+${remainingNumberOfMembers}`;\n\n if (otherMembers.length === 1) {\n const name = getMemberName(otherMembers[0]);\n return name.length > characterLimit\n ? `${name.slice(0, characterLimit - ELLIPSIS.length)}${ELLIPSIS}`\n : name;\n }\n\n const name = otherMembers.reduce((result, currentMember, index, originalArray) => {\n if (result.length >= characterLimit) {\n return result;\n }\n\n const currentMemberName = getMemberName(currentMember);\n\n const resultHasSpaceForCurrentMemberName =\n result.length + (currentMemberName.length + ELLIPSIS.length) < characterLimit;\n\n if (resultHasSpaceForCurrentMemberName) {\n return result.length > 0 ? `${result}, ${currentMemberName}` : `${currentMemberName}`;\n } else {\n const remainingNumberOfMembers = originalArray.length - index;\n const truncateLimit = characterLimit - (ELLIPSIS.length + result.length);\n const tuncatedCurrentMemberName = `, ${currentMemberName.slice(0, truncateLimit)}`;\n\n const channelNameSuffix = createChannelNameSuffix(remainingNumberOfMembers);\n\n return `${result}${tuncatedCurrentMemberName}${channelNameSuffix}`;\n }\n }, '');\n\n return name;\n};\n\nexport const useChannelPreviewDisplayName = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n channel?: Channel<StreamChatGenerics>,\n characterLength?: number,\n) => {\n const { client } = useChatContext<StreamChatGenerics>();\n const { vw } = useViewport();\n\n const DEFAULT_MAX_CHARACTER_LENGTH = (vw(100) - 16) / 6;\n\n const currentUserId = client?.userID;\n const members = channel?.state?.members;\n const numOfMembers = Object.keys(members || {}).length;\n const channelName = channel?.data?.name;\n const characterLimit = characterLength || DEFAULT_MAX_CHARACTER_LENGTH;\n const [displayName, setDisplayName] = useState(\n getChannelPreviewDisplayName({\n channelName,\n characterLimit,\n currentUserId,\n members,\n }),\n );\n\n useEffect(() => {\n setDisplayName(\n getChannelPreviewDisplayName({\n channelName,\n characterLimit,\n currentUserId,\n members,\n }),\n );\n }, [channelName, currentUserId, characterLimit, numOfMembers]);\n\n return displayName;\n};\n"],"mappings":"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"}