stream-chat-react-native-core 5.22.0-beta.7 → 5.22.0-beta.8

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 (70) hide show
  1. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js +4 -4
  2. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -1
  3. package/lib/commonjs/components/Message/MessageSimple/utils/generateMarkdownText.js +7 -5
  4. package/lib/commonjs/components/Message/MessageSimple/utils/generateMarkdownText.js.map +1 -1
  5. package/lib/commonjs/components/Message/MessageSimple/utils/generateMarkdownText.test.js +8 -0
  6. package/lib/commonjs/components/Message/MessageSimple/utils/generateMarkdownText.test.js.map +1 -0
  7. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +17 -16
  8. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  9. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +30 -20
  10. package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
  11. package/lib/commonjs/components/MessageInput/MessageInput.js +1 -1
  12. package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
  13. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +7 -7
  14. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  15. package/lib/commonjs/i18n/fr.json +12 -12
  16. package/lib/commonjs/i18n/hi.json +12 -12
  17. package/lib/commonjs/i18n/it.json +12 -12
  18. package/lib/commonjs/i18n/nl.json +12 -12
  19. package/lib/commonjs/i18n/ru.json +12 -12
  20. package/lib/commonjs/i18n/tr.json +12 -12
  21. package/lib/commonjs/types/types.js.map +1 -1
  22. package/lib/commonjs/version.json +1 -1
  23. package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js +4 -4
  24. package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -1
  25. package/lib/module/components/Message/MessageSimple/utils/generateMarkdownText.js +7 -5
  26. package/lib/module/components/Message/MessageSimple/utils/generateMarkdownText.js.map +1 -1
  27. package/lib/module/components/Message/MessageSimple/utils/generateMarkdownText.test.js +8 -0
  28. package/lib/module/components/Message/MessageSimple/utils/generateMarkdownText.test.js.map +1 -0
  29. package/lib/module/components/Message/MessageSimple/utils/renderText.js +17 -16
  30. package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  31. package/lib/module/components/MessageInput/FileUploadPreview.js +30 -20
  32. package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
  33. package/lib/module/components/MessageInput/MessageInput.js +1 -1
  34. package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
  35. package/lib/module/contexts/messageInputContext/MessageInputContext.js +7 -7
  36. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  37. package/lib/module/i18n/fr.json +12 -12
  38. package/lib/module/i18n/hi.json +12 -12
  39. package/lib/module/i18n/it.json +12 -12
  40. package/lib/module/i18n/nl.json +12 -12
  41. package/lib/module/i18n/ru.json +12 -12
  42. package/lib/module/i18n/tr.json +12 -12
  43. package/lib/module/types/types.js.map +1 -1
  44. package/lib/module/version.json +1 -1
  45. package/lib/typescript/components/Message/MessageSimple/utils/generateMarkdownText.d.ts +1 -3
  46. package/lib/typescript/components/Message/MessageSimple/utils/generateMarkdownText.test.d.ts +1 -0
  47. package/lib/typescript/i18n/fr.json +12 -12
  48. package/lib/typescript/i18n/hi.json +12 -12
  49. package/lib/typescript/i18n/it.json +12 -12
  50. package/lib/typescript/i18n/nl.json +12 -12
  51. package/lib/typescript/i18n/ru.json +12 -12
  52. package/lib/typescript/i18n/tr.json +12 -12
  53. package/lib/typescript/types/types.d.ts +8 -11
  54. package/package.json +1 -1
  55. package/src/components/AttachmentPicker/components/AttachmentPickerItem.tsx +4 -4
  56. package/src/components/Message/MessageSimple/utils/generateMarkdownText.test.ts +23 -0
  57. package/src/components/Message/MessageSimple/utils/generateMarkdownText.ts +12 -13
  58. package/src/components/Message/MessageSimple/utils/renderText.tsx +2 -1
  59. package/src/components/MessageInput/FileUploadPreview.tsx +16 -1
  60. package/src/components/MessageInput/MessageInput.tsx +1 -1
  61. package/src/components/MessageInput/__tests__/MessageInput.test.js +2 -2
  62. package/src/contexts/messageInputContext/MessageInputContext.tsx +2 -2
  63. package/src/i18n/fr.json +12 -12
  64. package/src/i18n/hi.json +12 -12
  65. package/src/i18n/it.json +12 -12
  66. package/src/i18n/nl.json +12 -12
  67. package/src/i18n/ru.json +12 -12
  68. package/src/i18n/tr.json +12 -12
  69. package/src/types/types.ts +8 -12
  70. package/src/version.json +1 -1
@@ -67,13 +67,13 @@ var AttachmentVideo = function AttachmentVideo(props) {
67
67
  case 5:
68
68
  localAssetURI = _context.t0;
69
69
  uri = localAssetURI || asset.uri || '';
70
- mimeType = (0, _mimeTypes.lookup)(asset.filename) || 'multipart/form-data';
70
+ mimeType = (0, _mimeTypes.lookup)(asset.name) || 'multipart/form-data';
71
71
  return _context.abrupt("return", [].concat((0, _toConsumableArray2["default"])(files), [{
72
- duration: durationLabel,
72
+ duration: asset.duration,
73
73
  id: asset.id,
74
74
  mimeType: mimeType,
75
- name: asset.filename,
76
- size: asset.fileSize,
75
+ name: asset.name,
76
+ size: asset.size,
77
77
  uri: uri
78
78
  }]));
79
79
  case 9:
@@ -1 +1 @@
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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"}
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","name","abrupt","concat","_toConsumableArray2","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.name) || 'multipart/form-data';\n return [\n ...files,\n {\n duration: asset.duration,\n id: asset.id,\n mimeType,\n name: asset.name,\n size: asset.size,\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":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AAGA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,aAAA,GAAAN,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AACA,IAAAQ,OAAA,GAAAR,OAAA;AAAmD,IAAAS,KAAA;EAAAC,YAAA;AAkBnD,IAAMC,eAA+C,GAAG,SAAlDA,eAA+CA,CAAIC,KAAK,EAAK;EACjE,IACEC,KAAK,GAQHD,KAAK,CARPC,KAAK;IACLC,6BAA6B,GAO3BF,KAAK,CAPPE,6BAA6B;IAC7BC,gBAAgB,GAMdH,KAAK,CANPG,gBAAgB;IAChBC,oCAAoC,GAKlCJ,KAAK,CALPI,oCAAoC;IACpCC,eAAe,GAIbL,KAAK,CAJPK,eAAe;IACfC,QAAQ,GAGNN,KAAK,CAHPM,QAAQ;IACRC,aAAa,GAEXP,KAAK,CAFPO,aAAa;IACbC,gBAAgB,GACdR,KAAK,CADPQ,gBAAgB;EAElB,IAAAC,YAAA,GAAe,IAAAC,yBAAW,EAAC,CAAC;IAApBC,EAAE,GAAAF,YAAA,CAAFE,EAAE;EAEV,IAAAC,SAAA,GAKI,IAAAC,sBAAQ,EAAC,CAAC;IAAAC,eAAA,GAAAF,SAAA,CAJZG,KAAK;IAAAC,qBAAA,GAAAF,eAAA,CACHG,gBAAgB;IAAIC,YAAY,GAAAF,qBAAA,CAAZE,YAAY;IAAEC,KAAK,GAAAH,qBAAA,CAALG,KAAK;IAAEC,YAAY,GAAAJ,qBAAA,CAAZI,YAAY;IAAAC,qBAAA,GAAAP,eAAA,CACrDQ,MAAM;IAAIC,OAAO,GAAAF,qBAAA,CAAPE,OAAO;IAAEC,KAAK,GAAAH,qBAAA,CAALG,KAAK;EAI5B,IAAkBC,aAAa,GAAUxB,KAAK,CAAtCyB,QAAQ;IAAiBC,GAAG,GAAK1B,KAAK,CAAb0B,GAAG;EAEpC,IAAMC,mBAAmB,GAAG,IAAI;EAEhC,IAAIC,aAAa,GAAG,OAAO;EAE3B,IAAIJ,aAAa,EAAE;IACjB,IAAMK,wBAAwB,GAAGL,aAAa,GAAGG,mBAAmB,IAAI,CAAC;IACzE,IAAMG,sBAAsB,GAAGD,wBAAwB,GAAG,UAAU,GAAG,OAAO;IAC9E,IAAME,sBAAsB,GAAGC,iBAAK,CACjCP,QAAQ,CAACD,aAAa,EAAE,QAAQ,CAAC,CACjCS,MAAM,CAACH,sBAAsB,CAAC;IACjCF,aAAa,GAAGG,sBAAsB;EACxC;EAEA,IAAMG,IAAI,GAAGxB,EAAE,CAAC,GAAG,CAAC,IAAIP,oCAAoC,IAAI,CAAC,CAAC,GAAG,CAAC;EAGtE,IAAMgC,cAAc;IAAA,IAAAC,IAAA,OAAAC,kBAAA,aAAAC,YAAA,YAAAC,IAAA,CAAG,SAAAC,QAAOC,KAAa;MAAA,IAAAC,aAAA,EAAAhB,GAAA,EAAAiB,QAAA;MAAA,OAAAL,YAAA,YAAAM,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAAF,QAAA,CAAAG,EAAA,GAEnBC,qBAAQ,CAACC,EAAE,KAAK,KAAK,IAAInD,KAAK,CAACoD,EAAE;YAAA,KAAAN,QAAA,CAAAG,EAAA;cAAAH,QAAA,CAAAE,IAAA;cAAA;YAAA;YAAAF,QAAA,CAAAE,IAAA;YAAA,OAAW,IAAAK,wBAAgB,EAACrD,KAAK,CAACoD,EAAE,CAAC;UAAA;YAAAN,QAAA,CAAAG,EAAA,GAAAH,QAAA,CAAAQ,IAAA;UAAA;YAAtFZ,aAAa,GAAAI,QAAA,CAAAG,EAAA;YACbvB,GAAG,GAAGgB,aAAa,IAAI1C,KAAK,CAAC0B,GAAG,IAAI,EAAE;YAEtCiB,QAAQ,GAAG,IAAAY,iBAAM,EAACvD,KAAK,CAACwD,IAAI,CAAC,IAAI,qBAAqB;YAAA,OAAAV,QAAA,CAAAW,MAAA,cAAAC,MAAA,KAAAC,mBAAA,aAEvDlB,KAAK,IACR;cACEhB,QAAQ,EAAEzB,KAAK,CAACyB,QAAQ;cACxB2B,EAAE,EAAEpD,KAAK,CAACoD,EAAE;cACZT,QAAQ,EAARA,QAAQ;cACRa,IAAI,EAAExD,KAAK,CAACwD,IAAI;cAChBtB,IAAI,EAAElC,KAAK,CAACkC,IAAI;cAChBR,GAAG,EAAHA;YACF,CAAC;UAAA;UAAA;YAAA,OAAAoB,QAAA,CAAAc,IAAA;QAAA;MAAA,GAAApB,OAAA;IAAA,CAEJ;IAAA,gBAjBKL,cAAcA,CAAA0B,EAAA;MAAA,OAAAzB,IAAA,CAAA0B,KAAA,OAAAC,SAAA;IAAA;EAAA,GAiBnB;EAED,IAAMC,mBAAmB;IAAA,IAAAC,KAAA,OAAA5B,kBAAA,aAAAC,YAAA,YAAAC,IAAA,CAAG,SAAA2B,SAAA;MAAA,IAAAzB,KAAA;MAAA,OAAAH,YAAA,YAAAM,IAAA,UAAAuB,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAArB,IAAA,GAAAqB,SAAA,CAAApB,IAAA;UAAA;YAAA,MACtB5C,eAAe,IAAIF,gBAAgB;cAAAkE,SAAA,CAAApB,IAAA;cAAA;YAAA;YACrCqB,kBAAK,CAACC,KAAK,CAAC,iCAAiC,CAAC;YAAC,OAAAF,SAAA,CAAAX,MAAA;UAAA;YAAAW,SAAA,CAAApB,IAAA;YAAA,OAG7Bb,cAAc,CAAC7B,aAAa,CAAC;UAAA;YAA3CmC,KAAK,GAAA2B,SAAA,CAAAd,IAAA;YACX/C,gBAAgB,CAACkC,KAAK,CAAC;UAAC;UAAA;YAAA,OAAA2B,SAAA,CAAAR,IAAA;QAAA;MAAA,GAAAM,QAAA;IAAA,CACzB;IAAA,gBAPKF,mBAAmBA,CAAA;MAAA,OAAAC,KAAA,CAAAH,KAAA,OAAAC,SAAA;IAAA;EAAA,GAOxB;EAED,IAAMQ,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;IACzB,IAAIlE,QAAQ,EAAE;MACZE,gBAAgB,CAAC,UAACkC,KAAK;QAAA,OAErBA,KAAK,CAAC+B,MAAM,CAAC,UAACC,IAAI;UAAA,OAAMA,IAAI,CAACrB,EAAE,GAAGqB,IAAI,CAACrB,EAAE,KAAKpD,KAAK,CAACoD,EAAE,GAAGqB,IAAI,CAAC/C,GAAG,KAAK1B,KAAK,CAAC0B,GAAG;QAAA,CAAC,CAAC;MAAA,CACnF,CAAC;IACH,CAAC,MAAM;MACLsC,mBAAmB,CAAC,CAAC;IACvB;EACF,CAAC;EAED,OACE/E,MAAA,YAAAyF,aAAA,CAACrF,YAAA,CAAAsF,gBAAgB;IAACC,OAAO,EAAEL,YAAa;IAAAM,MAAA,EAAAjF,KAAA;IAAAkF,QAAA;MAAAC,QAAA,EAAAlF,YAAA;MAAAmF,UAAA;MAAAC,YAAA;IAAA;EAAA,GACtChG,MAAA,YAAAyF,aAAA,CAACtF,YAAA,CAAA8F,eAAe;IACdC,MAAM,EAAE;MAAEzD,GAAG,EAAHA;IAAI,CAAE;IAChB0D,KAAK,EAAE,CACL;MACEC,MAAM,EAAEnD,IAAI;MACZoD,MAAM,EAAE,CAAC;MACTC,KAAK,EAAErD;IACT,CAAC,EACDhB,KAAK,CACL;IAAA2D,MAAA,EAAAjF,KAAA;IAAAkF,QAAA;MAAAC,QAAA,EAAAlF,YAAA;MAAAmF,UAAA;MAAAC,YAAA;IAAA;EAAA,GAED5E,QAAQ,IACPpB,MAAA,YAAAyF,aAAA,CAACtF,YAAA,CAAAoG,IAAI;IAACJ,KAAK,EAAE,CAACK,MAAM,CAACnE,OAAO,EAAE;MAAEoE,eAAe,EAAEpE;IAAQ,CAAC,EAAEH,YAAY,CAAE;IAAA0D,MAAA,EAAAjF,KAAA;IAAAkF,QAAA;MAAAC,QAAA,EAAAlF,YAAA;MAAAmF,UAAA;MAAAC,YAAA;IAAA;EAAA,GACxEhG,MAAA,YAAAyF,aAAA,CAACzE,6BAA6B;IAAA4E,MAAA,EAAAjF,KAAA;IAAAkF,QAAA;MAAAC,QAAA,EAAAlF,YAAA;MAAAmF,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CAC5B,CACP,EACDhG,MAAA,YAAAyF,aAAA,CAACtF,YAAA,CAAAoG,IAAI;IAACJ,KAAK,EAAEK,MAAM,CAACE,SAAU;IAAAd,MAAA,EAAAjF,KAAA;IAAAkF,QAAA;MAAAC,QAAA,EAAAlF,YAAA;MAAAmF,UAAA;MAAAC,YAAA;IAAA;EAAA,GAC5BhG,MAAA,YAAAyF,aAAA,CAAChF,MAAA,CAAAkG,QAAQ;IAACP,MAAM,EAAE,EAAG;IAACQ,QAAQ,EAAEtE,KAAM;IAACgE,KAAK,EAAE,EAAG;IAAAV,MAAA,EAAAjF,KAAA;IAAAkF,QAAA;MAAAC,QAAA,EAAAlF,YAAA;MAAAmF,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CAAC,EACnDzD,aAAa,GACZvC,MAAA,YAAAyF,aAAA,CAACtF,YAAA,CAAA0G,IAAI;IAACV,KAAK,EAAE,CAACK,MAAM,CAACxE,YAAY,EAAEA,YAAY,EAAE;MAAE8E,KAAK,EAAExE;IAAM,CAAC,CAAE;IAAAsD,MAAA,EAAAjF,KAAA;IAAAkF,QAAA;MAAAC,QAAA,EAAAlF,YAAA;MAAAmF,UAAA;MAAAC,YAAA;IAAA;EAAA,GAChErD,aACG,CAAC,GACL,IACA,CACS,CACD,CAAC;AAEvB,CAAC;AAED,IAAMoE,eAA+C,GAAG,SAAlDA,eAA+CA,CAAIjG,KAAK,EAAK;EACjE,IACEC,KAAK,GAQHD,KAAK,CARPC,KAAK;IACLC,6BAA6B,GAO3BF,KAAK,CAPPE,6BAA6B;IAC7BC,gBAAgB,GAMdH,KAAK,CANPG,gBAAgB;IAChBC,oCAAoC,GAKlCJ,KAAK,CALPI,oCAAoC;IACpCC,eAAe,GAIbL,KAAK,CAJPK,eAAe;IACfC,QAAQ,GAGNN,KAAK,CAHPM,QAAQ;IACR4F,cAAc,GAEZlG,KAAK,CAFPkG,cAAc;IACdC,iBAAiB,GACfnG,KAAK,CADPmG,iBAAiB;EAEnB,IAAAC,UAAA,GAKI,IAAAvF,sBAAQ,EAAC,CAAC;IAAAwF,gBAAA,GAAAD,UAAA,CAJZrF,KAAK;IAAAuF,qBAAA,GAAAD,gBAAA,CACHpF,gBAAgB;IAAIE,KAAK,GAAAmF,qBAAA,CAALnF,KAAK;IAAEC,YAAY,GAAAkF,qBAAA,CAAZlF,YAAY;IAC7BG,OAAO,GAAA8E,gBAAA,CAAjB/E,MAAM,CAAIC,OAAO;EAGrB,IAAAgF,aAAA,GAAe,IAAA7F,yBAAW,EAAC,CAAC;IAApBC,EAAE,GAAA4F,aAAA,CAAF5F,EAAE;EAEV,IAAMwB,IAAI,GAAGxB,EAAE,CAAC,GAAG,CAAC,IAAIP,oCAAoC,IAAI,CAAC,CAAC,GAAG,CAAC;EAEtE,IAAQuB,GAAG,GAAK1B,KAAK,CAAb0B,GAAG;EAGX,IAAM6E,cAAc;IAAA,IAAAC,KAAA,OAAAnE,kBAAA,aAAAC,YAAA,YAAAC,IAAA,CAAG,SAAAkE,SAAOC,MAAe;MAAA,IAAAhE,aAAA,EAAAhB,GAAA;MAAA,OAAAY,YAAA,YAAAM,IAAA,UAAA+D,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAA7D,IAAA,GAAA6D,SAAA,CAAA5D,IAAA;UAAA;YAAA4D,SAAA,CAAA3D,EAAA,GAErBC,qBAAQ,CAACC,EAAE,KAAK,KAAK,IAAInD,KAAK,CAACoD,EAAE;YAAA,KAAAwD,SAAA,CAAA3D,EAAA;cAAA2D,SAAA,CAAA5D,IAAA;cAAA;YAAA;YAAA4D,SAAA,CAAA5D,IAAA;YAAA,OAAW,IAAAK,wBAAgB,EAACrD,KAAK,CAACoD,EAAE,CAAC;UAAA;YAAAwD,SAAA,CAAA3D,EAAA,GAAA2D,SAAA,CAAAtD,IAAA;UAAA;YAAtFZ,aAAa,GAAAkE,SAAA,CAAA3D,EAAA;YACbvB,GAAG,GAAGgB,aAAa,IAAI1C,KAAK,CAAC0B,GAAG,IAAI,EAAE;YAAA,OAAAkF,SAAA,CAAAnD,MAAA,cAAAC,MAAA,KAAAC,mBAAA,aAEvC+C,MAAM,QAAAG,SAAA,iBAEJ7G,KAAK;cACR0B,GAAG,EAAHA;YAAG;UAAA;UAAA;YAAA,OAAAkF,SAAA,CAAAhD,IAAA;QAAA;MAAA,GAAA6C,QAAA;IAAA,CAGR;IAAA,gBAXKF,cAAcA,CAAAO,GAAA;MAAA,OAAAN,KAAA,CAAA1C,KAAA,OAAAC,SAAA;IAAA;EAAA,GAWnB;EAED,IAAMgD,oBAAoB;IAAA,IAAAC,KAAA,OAAA3E,kBAAA,aAAAC,YAAA,YAAAC,IAAA,CAAG,SAAA0E,SAAA;MAAA,IAAAP,MAAA;MAAA,OAAApE,YAAA,YAAAM,IAAA,UAAAsE,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAApE,IAAA,GAAAoE,SAAA,CAAAnE,IAAA;UAAA;YAAA,MACvB5C,eAAe,IAAIF,gBAAgB;cAAAiH,SAAA,CAAAnE,IAAA;cAAA;YAAA;YACrCqB,kBAAK,CAACC,KAAK,CAAC,iCAAiC,CAAC;YAAC,OAAA6C,SAAA,CAAA1D,MAAA;UAAA;YAAA0D,SAAA,CAAAnE,IAAA;YAAA,OAG5BuD,cAAc,CAACN,cAAc,CAAC;UAAA;YAA7CS,MAAM,GAAAS,SAAA,CAAA7D,IAAA;YACZ4C,iBAAiB,CAACQ,MAAM,CAAC;UAAC;UAAA;YAAA,OAAAS,SAAA,CAAAvD,IAAA;QAAA;MAAA,GAAAqD,QAAA;IAAA,CAC3B;IAAA,gBAPKF,oBAAoBA,CAAA;MAAA,OAAAC,KAAA,CAAAlD,KAAA,OAAAC,SAAA;IAAA;EAAA,GAOzB;EAED,IAAMqD,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;IACzB,IAAI/G,QAAQ,EAAE;MAEZ6F,iBAAiB,CAAC,UAACQ,MAAM;QAAA,OACvBA,MAAM,CAAClC,MAAM,CAAC,UAACtD,KAAK;UAAA,OAAMA,KAAK,CAACkC,EAAE,GAAGlC,KAAK,CAACkC,EAAE,KAAKpD,KAAK,CAACoD,EAAE,GAAGlC,KAAK,CAACQ,GAAG,KAAK1B,KAAK,CAAC0B,GAAG;QAAA,CAAC,CAAC;MAAA,CACxF,CAAC;IACH,CAAC,MAAM;MACLqF,oBAAoB,CAAC,CAAC;IACxB;EACF,CAAC;EAED,OACE9H,MAAA,YAAAyF,aAAA,CAACrF,YAAA,CAAAsF,gBAAgB;IAACC,OAAO,EAAEwC,YAAa;IAAAvC,MAAA,EAAAjF,KAAA;IAAAkF,QAAA;MAAAC,QAAA,EAAAlF,YAAA;MAAAmF,UAAA;MAAAC,YAAA;IAAA;EAAA,GACtChG,MAAA,YAAAyF,aAAA,CAACtF,YAAA,CAAA8F,eAAe;IACdC,MAAM,EAAE;MAAEzD,GAAG,EAAHA;IAAI,CAAE;IAChB0D,KAAK,EAAE,CACL;MACEC,MAAM,EAAEnD,IAAI;MACZoD,MAAM,EAAE,CAAC;MACTC,KAAK,EAAErD;IACT,CAAC,EACDhB,KAAK,CACL;IAAA2D,MAAA,EAAAjF,KAAA;IAAAkF,QAAA;MAAAC,QAAA,EAAAlF,YAAA;MAAAmF,UAAA;MAAAC,YAAA;IAAA;EAAA,GAED5E,QAAQ,IACPpB,MAAA,YAAAyF,aAAA,CAACtF,YAAA,CAAAoG,IAAI;IAACJ,KAAK,EAAE,CAACK,MAAM,CAACnE,OAAO,EAAE;MAAEoE,eAAe,EAAEpE;IAAQ,CAAC,EAAEH,YAAY,CAAE;IAAA0D,MAAA,EAAAjF,KAAA;IAAAkF,QAAA;MAAAC,QAAA,EAAAlF,YAAA;MAAAmF,UAAA;MAAAC,YAAA;IAAA;EAAA,GACxEhG,MAAA,YAAAyF,aAAA,CAACzE,6BAA6B;IAAA4E,MAAA,EAAAjF,KAAA;IAAAkF,QAAA;MAAAC,QAAA,EAAAlF,YAAA;MAAAmF,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CAC5B,CAEO,CACD,CAAC;AAEvB,CAAC;AAEM,IAAMoC,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAAAC,KAAA,EAAqD;EAAA,IAA/CC,IAAI,GAAAD,KAAA,CAAJC,IAAI;EAC/C,IACEvH,KAAK,GAUHuH,IAAI,CAVNvH,KAAK;IACLC,6BAA6B,GAS3BsH,IAAI,CATNtH,6BAA6B;IAC7BC,gBAAgB,GAQdqH,IAAI,CARNrH,gBAAgB;IAChBC,oCAAoC,GAOlCoH,IAAI,CAPNpH,oCAAoC;IACpCC,eAAe,GAMbmH,IAAI,CANNnH,eAAe;IACfC,QAAQ,GAKNkH,IAAI,CALNlH,QAAQ;IACRC,aAAa,GAIXiH,IAAI,CAJNjH,aAAa;IACb2F,cAAc,GAGZsB,IAAI,CAHNtB,cAAc;IACd1F,gBAAgB,GAEdgH,IAAI,CAFNhH,gBAAgB;IAChB2F,iBAAiB,GACfqB,IAAI,CADNrB,iBAAiB;EASnB,IAAMsB,WAAW,GAAGxH,KAAK,CAACyH,IAAI,CAACC,QAAQ,CAAC,OAAO,CAAC;EAEhD,IAAIF,WAAW,EAAE;IACf,OACEvI,MAAA,YAAAyF,aAAA,CAAC5E,eAAe;MACdE,KAAK,EAAEA,KAAM;MACbC,6BAA6B,EAAEA,6BAA8B;MAC7DC,gBAAgB,EAAEA,gBAAiB;MACnCC,oCAAoC,EAAEA,oCAAqC;MAC3EC,eAAe,EAAEA,eAAgB;MACjCC,QAAQ,EAAEA,QAAS;MACnBC,aAAa,EAAEA,aAAc;MAC7BC,gBAAgB,EAAEA,gBAAiB;MAAAsE,MAAA,EAAAjF,KAAA;MAAAkF,QAAA;QAAAC,QAAA,EAAAlF,YAAA;QAAAmF,UAAA;QAAAC,YAAA;MAAA;IAAA,CACpC,CAAC;EAEN;EAEA,OACEhG,MAAA,YAAAyF,aAAA,CAACsB,eAAe;IACdhG,KAAK,EAAEA,KAAM;IACbC,6BAA6B,EAAEA,6BAA8B;IAC7DC,gBAAgB,EAAEA,gBAAiB;IACnCC,oCAAoC,EAAEA,oCAAqC;IAC3EC,eAAe,EAAEA,eAAgB;IACjCC,QAAQ,EAAEA,QAAS;IACnB4F,cAAc,EAAEA,cAAe;IAC/BC,iBAAiB,EAAEA,iBAAkB;IAAArB,MAAA,EAAAjF,KAAA;IAAAkF,QAAA;MAAAC,QAAA,EAAAlF,YAAA;MAAAmF,UAAA;MAAAC,YAAA;IAAA;EAAA,CACtC,CAAC;AAEN,CAAC;AAAC0C,OAAA,CAAAN,0BAAA,GAAAA,0BAAA;AAEF,IAAM5B,MAAM,GAAGmC,uBAAU,CAACC,MAAM,CAAC;EAC/B5G,YAAY,EAAE;IACZ6G,UAAU,EAAE;EACd,CAAC;EACDxG,OAAO,EAAE;IACPyG,UAAU,EAAE,UAAU;IACtBC,IAAI,EAAE;EACR,CAAC;EACDrC,SAAS,EAAE;IACTsC,MAAM,EAAE,CAAC;IACTC,OAAO,EAAE,MAAM;IACfC,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE,eAAe;IAC/BC,iBAAiB,EAAE,CAAC;IACpBC,QAAQ,EAAE,UAAU;IACpB/C,KAAK,EAAE;EACT;AACF,CAAC,CAAC"}
@@ -8,8 +8,10 @@ var _parseLinks = require("./parseLinks");
8
8
  function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
9
9
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
10
10
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
11
- var generateMarkdownText = function generateMarkdownText(message) {
12
- var text = message.text;
11
+ function escapeRegExp(text) {
12
+ return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&');
13
+ }
14
+ var generateMarkdownText = function generateMarkdownText(text) {
13
15
  if (!text) return null;
14
16
  var resultText = text.trim();
15
17
  var linkInfos = (0, _parseLinks.parseLinksFromText)(resultText);
@@ -19,13 +21,13 @@ var generateMarkdownText = function generateMarkdownText(message) {
19
21
  length: 200,
20
22
  omission: '...'
21
23
  });
22
- var normalRegEx = new RegExp(linkInfo.raw, 'g');
24
+ var normalRegEx = new RegExp(escapeRegExp(linkInfo.raw), 'g');
23
25
  var markdown = "[" + displayLink + "](" + linkInfo.encodedUrl + ")";
24
26
  resultText = text.replace(normalRegEx, markdown);
25
- var mentionsRegex = new RegExp("@\\[" + displayLink + "\\]\\(" + linkInfo.encodedUrl + "\\)", 'g');
27
+ var mentionsRegex = new RegExp("@\\[" + escapeRegExp(displayLink) + "\\]\\(" + escapeRegExp(linkInfo.encodedUrl) + "\\)", 'g');
26
28
  resultText = resultText.replace(mentionsRegex, "@" + displayLink);
27
29
  }
28
- resultText = resultText.replace(/[<&"'>]/g, '\\$&');
30
+ resultText = resultText.replace(/[<"'>]/g, '\\$&');
29
31
  return resultText;
30
32
  };
31
33
  exports.generateMarkdownText = generateMarkdownText;
@@ -1 +1 @@
1
- {"version":3,"names":["_truncate","_interopRequireDefault","require","_parseLinks","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","call","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","minLen","_arrayLikeToArray","n","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","generateMarkdownText","message","text","resultText","trim","linkInfos","parseLinksFromText","_iterator","_step","linkInfo","displayLink","truncate","raw","omission","normalRegEx","RegExp","markdown","encodedUrl","replace","mentionsRegex","exports"],"sources":["generateMarkdownText.ts"],"sourcesContent":["import truncate from 'lodash/truncate';\n\nimport { parseLinksFromText } from './parseLinks';\n\nimport type { DefaultStreamChatGenerics } from '../../../../types/types';\nimport type { MessageType } from '../../../MessageList/hooks/useMessageList';\n\nexport const generateMarkdownText = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n message: MessageType<StreamChatGenerics>,\n) => {\n const { text } = message;\n\n if (!text) return null;\n\n // Trim the extra spaces from the text.\n let resultText = text.trim();\n\n // List of all the links present in the text.\n const linkInfos = parseLinksFromText(resultText);\n\n for (const linkInfo of linkInfos) {\n const displayLink = truncate(linkInfo.raw, {\n length: 200,\n omission: '...',\n });\n // Convert raw links/emails in the text to respective markdown syntax.\n // Eg: Hi getstream.io -> Hi [getstream.io](getstream.io).\n const normalRegEx = new RegExp(linkInfo.raw, 'g');\n const markdown = `[${displayLink}](${linkInfo.encodedUrl})`;\n resultText = text.replace(normalRegEx, markdown);\n\n // After previous step, in some cases, the mentioned user after `@` might have a link/email so we convert it back to normal raw text.\n // Eg: Hi, @[test.user@gmail.com](mailto:test.user@gmail.com) to @test.user@gmail.com.\n const mentionsRegex = new RegExp(`@\\\\[${displayLink}\\\\]\\\\(${linkInfo.encodedUrl}\\\\)`, 'g');\n resultText = resultText.replace(mentionsRegex, `@${displayLink}`);\n }\n\n resultText = resultText.replace(/[<&\"'>]/g, '\\\\$&');\n\n return resultText;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_truncate","_interopRequireDefault","require","_parseLinks","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","call","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","minLen","_arrayLikeToArray","n","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","escapeRegExp","text","replace","generateMarkdownText","resultText","trim","linkInfos","parseLinksFromText","_iterator","_step","linkInfo","displayLink","truncate","raw","omission","normalRegEx","RegExp","markdown","encodedUrl","mentionsRegex","exports"],"sources":["generateMarkdownText.ts"],"sourcesContent":["import truncate from 'lodash/truncate';\n\nimport { parseLinksFromText } from './parseLinks';\n\n// If you need to use any of the special characters literally (actually searching for a \"*\", for instance), you must escape it by putting a backslash in front of it.\nfunction escapeRegExp(text: string) {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nexport const generateMarkdownText = (text?: string) => {\n if (!text) return null;\n\n // Trim the extra spaces from the text.\n let resultText = text.trim();\n\n // List of all the links present in the text.\n const linkInfos = parseLinksFromText(resultText);\n\n for (const linkInfo of linkInfos) {\n const displayLink = truncate(linkInfo.raw, {\n length: 200,\n omission: '...',\n });\n // Convert raw links/emails in the text to respective markdown syntax.\n // Eg: Hi @getstream.io -> Hi @[getstream.io](getstream.io).\n const normalRegEx = new RegExp(escapeRegExp(linkInfo.raw), 'g');\n const markdown = `[${displayLink}](${linkInfo.encodedUrl})`;\n resultText = text.replace(normalRegEx, markdown);\n\n // After previous step, in some cases, the mentioned user after `@` might have a link/email so we convert it back to normal raw text.\n // Eg: Hi, @[test.user@gmail.com](mailto:test.user@gmail.com) to @test.user@gmail.com.\n const mentionsRegex = new RegExp(\n `@\\\\[${escapeRegExp(displayLink)}\\\\]\\\\(${escapeRegExp(linkInfo.encodedUrl)}\\\\)`,\n 'g',\n );\n resultText = resultText.replace(mentionsRegex, `@${displayLink}`);\n }\n\n resultText = resultText.replace(/[<\"'>]/g, '\\\\$&');\n\n return resultText;\n};\n"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ var _generateMarkdownText = require("./generateMarkdownText");
2
+ describe('generateMarkdownText', function () {
3
+ it.each([['', null], [' test message ', 'test message'], ['https://www.getstream.io', '[https://www.getstream.io](https://www.getstream.io)'], ['https://getstream-production.s3-accelerate.amazonaws.com/N336903591601695/33e78ef89e64642862a75c5cca2541eaf6b1c924/trimmedVideos/alert/2_270_881/outputVideo.mp4?AWSAccessKeyId=AKIAVJAW2AD2SQVQCBXV&Expires=1699998768&Signature=zdEMCGzf4Pq++16YkPprvN5NAds=', '[https://getstream-production.s3-accelerate.amazonaws.com/N336903591601695/33e78ef89e64642862a75c5cca2541eaf6b1c924/trimmedVideos/alert/2_270_881/outputVideo.mp4?AWSAccessKeyId=AKIAVJAW2AD2SQVQCBXV&...](https://getstream-production.s3-accelerate.amazonaws.com/N336903591601695/33e78ef89e64642862a75c5cca2541eaf6b1c924/trimmedVideos/alert/2_270_881/outputVideo.mp4?AWSAccessKeyId=AKIAVJAW2AD2SQVQCBXV&Expires=1699998768&Signature=zdEMCGzf4Pq++16YkPprvN5NAds=)'], ['Hi @getstream.io', 'Hi @getstream.io'], ['Hi test@gmail.com @test@gmail.com', 'Hi [test@gmail.com](mailto:test@gmail.com) @test@gmail.com'], ['Hi @getstream.io getstream.io', 'Hi @getstream.io [getstream.io](http://getstream.io)'], ['Hi <Stream>', 'Hi \\<Stream\\>']])('Returns the generated markdown text for %p and %p', function (text, expected) {
4
+ var result = (0, _generateMarkdownText.generateMarkdownText)(text);
5
+ expect(result).toBe(expected);
6
+ });
7
+ });
8
+ //# sourceMappingURL=generateMarkdownText.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_generateMarkdownText","require","describe","it","each","text","expected","result","generateMarkdownText","expect","toBe"],"sources":["generateMarkdownText.test.ts"],"sourcesContent":["import { generateMarkdownText } from './generateMarkdownText';\n\ndescribe('generateMarkdownText', () => {\n it.each([\n ['', null],\n [' test message ', 'test message'],\n ['https://www.getstream.io', '[https://www.getstream.io](https://www.getstream.io)'],\n [\n 'https://getstream-production.s3-accelerate.amazonaws.com/N336903591601695/33e78ef89e64642862a75c5cca2541eaf6b1c924/trimmedVideos/alert/2_270_881/outputVideo.mp4?AWSAccessKeyId=AKIAVJAW2AD2SQVQCBXV&Expires=1699998768&Signature=zdEMCGzf4Pq++16YkPprvN5NAds=',\n '[https://getstream-production.s3-accelerate.amazonaws.com/N336903591601695/33e78ef89e64642862a75c5cca2541eaf6b1c924/trimmedVideos/alert/2_270_881/outputVideo.mp4?AWSAccessKeyId=AKIAVJAW2AD2SQVQCBXV&...](https://getstream-production.s3-accelerate.amazonaws.com/N336903591601695/33e78ef89e64642862a75c5cca2541eaf6b1c924/trimmedVideos/alert/2_270_881/outputVideo.mp4?AWSAccessKeyId=AKIAVJAW2AD2SQVQCBXV&Expires=1699998768&Signature=zdEMCGzf4Pq++16YkPprvN5NAds=)',\n ],\n ['Hi @getstream.io', 'Hi @getstream.io'],\n [\n 'Hi test@gmail.com @test@gmail.com',\n 'Hi [test@gmail.com](mailto:test@gmail.com) @test@gmail.com',\n ],\n ['Hi @getstream.io getstream.io', 'Hi @getstream.io [getstream.io](http://getstream.io)'],\n ['Hi <Stream>', 'Hi \\\\<Stream\\\\>'],\n ])('Returns the generated markdown text for %p and %p', (text, expected) => {\n const result = generateMarkdownText(text);\n expect(result).toBe(expected);\n });\n});\n"],"mappings":"AAAA,IAAAA,qBAAA,GAAAC,OAAA;AAEAC,QAAQ,CAAC,sBAAsB,EAAE,YAAM;EACrCC,EAAE,CAACC,IAAI,CAAC,CACN,CAAC,EAAE,EAAE,IAAI,CAAC,EACV,CAAC,kBAAkB,EAAE,cAAc,CAAC,EACpC,CAAC,0BAA0B,EAAE,sDAAsD,CAAC,EACpF,CACE,gQAAgQ,EAChQ,4cAA4c,CAC7c,EACD,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,EACxC,CACE,mCAAmC,EACnC,4DAA4D,CAC7D,EACD,CAAC,+BAA+B,EAAE,sDAAsD,CAAC,EACzF,CAAC,aAAa,EAAE,iBAAiB,CAAC,CACnC,CAAC,CAAC,mDAAmD,EAAE,UAACC,IAAI,EAAEC,QAAQ,EAAK;IAC1E,IAAMC,MAAM,GAAG,IAAAC,0CAAoB,EAACH,IAAI,CAAC;IACzCI,MAAM,CAACF,MAAM,CAAC,CAACG,IAAI,CAACJ,QAAQ,CAAC;EAC/B,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -64,7 +64,8 @@ var renderText = function renderText(params) {
64
64
  onlyEmojis = params.onlyEmojis,
65
65
  onPressParam = params.onPress,
66
66
  preventPress = params.preventPress;
67
- var markdownText = (0, _generateMarkdownText.generateMarkdownText)(message);
67
+ var text = message.text;
68
+ var markdownText = (0, _generateMarkdownText.generateMarkdownText)(text);
68
69
  var styles = (0, _extends2["default"])({}, defaultMarkdownStyles, markdownStyles, {
69
70
  autolink: (0, _extends2["default"])({}, defaultMarkdownStyles.autolink, {
70
71
  color: colors.accent_blue
@@ -134,7 +135,7 @@ var renderText = function renderText(params) {
134
135
  __self: _this,
135
136
  __source: {
136
137
  fileName: _jsxFileName,
137
- lineNumber: 179,
138
+ lineNumber: 180,
138
139
  columnNumber: 7
139
140
  }
140
141
  }, output(node.content, (0, _extends2["default"])({}, state, {
@@ -152,7 +153,7 @@ var renderText = function renderText(params) {
152
153
  __self: _this,
153
154
  __source: {
154
155
  fileName: _jsxFileName,
155
- lineNumber: 197,
156
+ lineNumber: 198,
156
157
  columnNumber: 11
157
158
  }
158
159
  }, output(node.content, state));
@@ -166,7 +167,7 @@ var renderText = function renderText(params) {
166
167
  __self: _this,
167
168
  __source: {
168
169
  fileName: _jsxFileName,
169
- lineNumber: 207,
170
+ lineNumber: 208,
170
171
  columnNumber: 7
171
172
  }
172
173
  }, output(node.content, state));
@@ -218,7 +219,7 @@ var renderText = function renderText(params) {
218
219
  __self: _this,
219
220
  __source: {
220
221
  fileName: _jsxFileName,
221
- lineNumber: 262,
222
+ lineNumber: 263,
222
223
  columnNumber: 7
223
224
  }
224
225
  }, Array.isArray(node.content) ? node.content.reduce(function (acc, current) {
@@ -235,7 +236,7 @@ var renderText = function renderText(params) {
235
236
  __self: _this,
236
237
  __source: {
237
238
  fileName: _jsxFileName,
238
- lineNumber: 271,
239
+ lineNumber: 272,
239
240
  columnNumber: 5
240
241
  }
241
242
  });
@@ -279,7 +280,7 @@ var renderText = function renderText(params) {
279
280
  __self: _this,
280
281
  __source: {
281
282
  fileName: _jsxFileName,
282
- lineNumber: 303,
283
+ lineNumber: 304,
283
284
  columnNumber: 5
284
285
  }
285
286
  }, markdownText);
@@ -298,7 +299,7 @@ var ListOutput = function ListOutput(_ref4) {
298
299
  __self: _this,
299
300
  __source: {
300
301
  fileName: _jsxFileName,
301
- lineNumber: 338,
302
+ lineNumber: 339,
302
303
  columnNumber: 5
303
304
  }
304
305
  }, node.items.map(function (item, index) {
@@ -312,7 +313,7 @@ var ListOutput = function ListOutput(_ref4) {
312
313
  __self: _this,
313
314
  __source: {
314
315
  fileName: _jsxFileName,
315
- lineNumber: 344,
316
+ lineNumber: 345,
316
317
  columnNumber: 13
317
318
  }
318
319
  }, _react["default"].createElement(Bullet, {
@@ -321,7 +322,7 @@ var ListOutput = function ListOutput(_ref4) {
321
322
  __self: _this,
322
323
  __source: {
323
324
  fileName: _jsxFileName,
324
- lineNumber: 345,
325
+ lineNumber: 346,
325
326
  columnNumber: 15
326
327
  }
327
328
  }));
@@ -338,7 +339,7 @@ var ListOutput = function ListOutput(_ref4) {
338
339
  __self: _this,
339
340
  __source: {
340
341
  fileName: _jsxFileName,
341
- lineNumber: 358,
342
+ lineNumber: 359,
342
343
  columnNumber: 11
343
344
  }
344
345
  }, _react["default"].createElement(Bullet, {
@@ -347,7 +348,7 @@ var ListOutput = function ListOutput(_ref4) {
347
348
  __self: _this,
348
349
  __source: {
349
350
  fileName: _jsxFileName,
350
- lineNumber: 359,
351
+ lineNumber: 360,
351
352
  columnNumber: 13
352
353
  }
353
354
  }), _react["default"].createElement(ListItem, {
@@ -356,7 +357,7 @@ var ListOutput = function ListOutput(_ref4) {
356
357
  __self: _this,
357
358
  __source: {
358
359
  fileName: _jsxFileName,
359
- lineNumber: 363,
360
+ lineNumber: 364,
360
361
  columnNumber: 13
361
362
  }
362
363
  }, output(item, state)));
@@ -372,7 +373,7 @@ var Bullet = function Bullet(_ref5) {
372
373
  __self: _this,
373
374
  __source: {
374
375
  fileName: _jsxFileName,
375
- lineNumber: 378,
376
+ lineNumber: 379,
376
377
  columnNumber: 3
377
378
  }
378
379
  }, index ? index + ". " : "\u2022 ");
@@ -385,7 +386,7 @@ var ListRow = function ListRow(_ref6) {
385
386
  __self: _this,
386
387
  __source: {
387
388
  fileName: _jsxFileName,
388
- lineNumber: 384,
389
+ lineNumber: 385,
389
390
  columnNumber: 3
390
391
  }
391
392
  }, children);
@@ -398,7 +399,7 @@ var ListItem = function ListItem(_ref7) {
398
399
  __self: _this,
399
400
  __source: {
400
401
  fileName: _jsxFileName,
401
- lineNumber: 388,
402
+ lineNumber: 389,
402
403
  columnNumber: 3
403
404
  }
404
405
  }, children);
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeMarkdownPackage","_simpleMarkdown","_generateMarkdownText","_this","_jsxFileName","defaultMarkdownStyles","inlineCode","fontSize","padding","paddingHorizontal","list","marginBottom","marginTop","listItemNumber","fontWeight","listItemText","flex","listRow","flexDirection","mentions","paragraph","paragraphCenter","paragraphWithImage","mentionsParseFunction","capture","parse","state","content","parseInline","renderText","params","colors","markdownRules","markdownStyles","message","messageOverlay","messageTextNumberOfLines","onLinkParams","onLink","onLongPressParam","onLongPress","onlyEmojis","onPressParam","onPress","preventPress","markdownText","generateMarkdownText","styles","_extends2","autolink","color","accent_blue","backgroundColor","white_smoke","borderColor","grey_gainsboro","accent_red","text","black","url","pattern","RegExp","test","Linking","canOpenURL","then","canOpenUrl","openURL","previousLink","linkReact","node","output","_ref","_objectDestructuringEmpty2","withinLink","target","event","additionalInfo","defaultHandler","emitter","createElement","Text","key","style","suppressHighlighting","__self","__source","fileName","lineNumber","columnNumber","paragraphTextReact","_ref2","undefined","numberOfLines","mentioned_users","mentionedUsers","Array","isArray","reduce","acc","cur","userName","name","id","length","replace","match","regEx","mentionsMatchFunction","source","exec","mentionsReact","_ref3","_node$content$","_node$content$$conten","substring","user","find","current","listReact","ListOutput","customRules","image","link","react","reflink","sublist","order","defaultRules","JSON","stringify","rules","exports","_ref4","isSublist","withinList","parentTypes","View","items","map","item","index","_item$","indexAfterStart","start","ListRow","testID","Bullet","ordered","listItemBullet","type","isSublistWithinText","includes","ListItem","_ref5","_ref6","children","_ref7"],"sources":["renderText.tsx"],"sourcesContent":["import React, { PropsWithChildren } from 'react';\nimport { GestureResponderEvent, Linking, Text, TextProps, View, ViewProps } from 'react-native';\n\n// @ts-expect-error\nimport Markdown from 'react-native-markdown-package';\n\nimport {\n DefaultRules,\n defaultRules,\n MatchFunction,\n ParseFunction,\n parseInline,\n ReactNodeOutput,\n ReactOutput,\n SingleASTNode,\n State,\n} from 'simple-markdown';\n\nimport type { UserResponse } from 'stream-chat';\n\nimport { generateMarkdownText } from './generateMarkdownText';\n\nimport type { MessageContextValue } from '../../../../contexts/messageContext/MessageContext';\nimport type { Colors, MarkdownStyle } from '../../../../contexts/themeContext/utils/theme';\nimport type { DefaultStreamChatGenerics } from '../../../../types/types';\nimport type { MessageType } from '../../../MessageList/hooks/useMessageList';\n\nconst defaultMarkdownStyles: MarkdownStyle = {\n inlineCode: {\n fontSize: 13,\n padding: 3,\n paddingHorizontal: 5,\n },\n list: {\n marginBottom: 8,\n marginTop: 8,\n },\n listItemNumber: {\n fontWeight: 'bold',\n },\n listItemText: {\n flex: 0,\n },\n listRow: {\n flexDirection: 'row',\n },\n mentions: {\n fontWeight: '700',\n },\n paragraph: {\n marginBottom: 8,\n marginTop: 8,\n },\n paragraphCenter: {\n marginBottom: 8,\n marginTop: 8,\n },\n paragraphWithImage: {\n marginBottom: 8,\n marginTop: 8,\n },\n};\n\nconst mentionsParseFunction: ParseFunction = (capture, parse, state) => ({\n content: parseInline(parse, capture[0], state),\n});\n\nexport type MarkdownRules = Partial<DefaultRules>;\n\nexport type RenderTextParams<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<\n Pick<MessageContextValue<StreamChatGenerics>, 'onLongPress' | 'onPress' | 'preventPress'>\n> & {\n colors: typeof Colors;\n message: MessageType<StreamChatGenerics>;\n markdownRules?: MarkdownRules;\n markdownStyles?: MarkdownStyle;\n messageOverlay?: boolean;\n messageTextNumberOfLines?: number;\n onLink?: (url: string) => Promise<void>;\n onlyEmojis?: boolean;\n};\n\nexport const renderText = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n params: RenderTextParams<StreamChatGenerics>,\n) => {\n const {\n colors,\n markdownRules,\n markdownStyles,\n message,\n messageOverlay,\n messageTextNumberOfLines,\n onLink: onLinkParams,\n onLongPress: onLongPressParam,\n onlyEmojis,\n onPress: onPressParam,\n preventPress,\n } = params;\n\n const markdownText = generateMarkdownText<StreamChatGenerics>(message);\n\n const styles: MarkdownStyle = {\n ...defaultMarkdownStyles,\n ...markdownStyles,\n autolink: {\n ...defaultMarkdownStyles.autolink,\n color: colors.accent_blue,\n ...markdownStyles?.autolink,\n },\n inlineCode: {\n ...defaultMarkdownStyles.inlineCode,\n backgroundColor: colors.white_smoke,\n borderColor: colors.grey_gainsboro,\n color: colors.accent_red,\n ...markdownStyles?.inlineCode,\n },\n mentions: {\n ...defaultMarkdownStyles.mentions,\n color: colors.accent_blue,\n ...markdownStyles?.mentions,\n },\n text: {\n ...defaultMarkdownStyles.text,\n color: colors.black,\n ...markdownStyles?.text,\n },\n };\n\n const onLink = (url: string) => {\n const pattern = new RegExp(/^\\S+:\\/\\//);\n if (!pattern.test(url)) {\n url = 'http://' + url;\n }\n\n return onLinkParams\n ? onLinkParams(url)\n : Linking.canOpenURL(url).then((canOpenUrl) => canOpenUrl && Linking.openURL(url));\n };\n\n let previousLink: string | undefined;\n const linkReact: ReactNodeOutput = (node, output, { ...state }) => {\n let url: string;\n // Some long URLs with `&` separated parameters are trimmed and the url only until first param is taken.\n // This is done because of internal link been taken from the original URL in react-native-markdown-package. So, we check for `withinLink` and take the previous full URL.\n if (state?.withinLink && previousLink) {\n url = previousLink;\n } else {\n url = node.target;\n previousLink = node.target;\n }\n const onPress = (event: GestureResponderEvent) => {\n if (!preventPress && onPressParam) {\n onPressParam({\n additionalInfo: { url },\n defaultHandler: () => {\n onLink(url);\n },\n emitter: 'textLink',\n event,\n });\n }\n };\n\n const onLongPress = (event: GestureResponderEvent) => {\n if (!preventPress && onLongPressParam) {\n onLongPressParam({\n additionalInfo: { url },\n emitter: 'textLink',\n event,\n });\n }\n };\n\n return (\n <Text\n key={state.key}\n onLongPress={onLongPress}\n onPress={onPress}\n style={styles.autolink}\n suppressHighlighting={true}\n >\n {output(node.content, { ...state, withinLink: true })}\n </Text>\n );\n };\n\n const paragraphTextReact: ReactNodeOutput = (node, output, { ...state }) => {\n if (messageTextNumberOfLines !== undefined) {\n // If we want to truncate the message text, lets only truncate the first paragraph\n // and simply not render rest of the paragraphs.\n if (state.key === '0' || state.key === 0) {\n return (\n <Text key={state.key} numberOfLines={messageTextNumberOfLines} style={styles.paragraph}>\n {output(node.content, state)}\n </Text>\n );\n } else {\n return null;\n }\n }\n\n return (\n <Text key={state.key} style={styles.paragraph}>\n {output(node.content, state)}\n </Text>\n );\n };\n\n // take the @ mentions and turn them into markdown?\n // translate links\n const { mentioned_users } = message;\n const mentionedUsers = Array.isArray(mentioned_users)\n ? mentioned_users.reduce((acc, cur) => {\n const userName = cur.name || cur.id || '';\n if (userName) {\n acc += `${acc.length ? '|' : ''}@${userName.replace(\n /[.*+?^${}()|[\\]\\\\]/g,\n function (match) {\n return '\\\\' + match;\n },\n )}`;\n }\n\n return acc;\n }, '')\n : '';\n\n const regEx = new RegExp(`^\\\\B(${mentionedUsers})`, 'g');\n const mentionsMatchFunction: MatchFunction = (source) => regEx.exec(source);\n\n const mentionsReact: ReactNodeOutput = (node, output, { ...state }) => {\n /**removes the @ prefix of username */\n const userName = node.content[0]?.content?.substring(1);\n const onPress = (event: GestureResponderEvent) => {\n if (!preventPress && onPressParam) {\n onPressParam({\n additionalInfo: {\n user: mentioned_users?.find(\n (user: UserResponse<StreamChatGenerics>) => userName === user.name,\n ),\n },\n emitter: 'textMention',\n event,\n });\n }\n };\n\n const onLongPress = (event: GestureResponderEvent) => {\n if (!preventPress && onLongPressParam) {\n onLongPressParam({\n emitter: 'textMention',\n event,\n });\n }\n };\n\n return (\n <Text key={state.key} onLongPress={onLongPress} onPress={onPress} style={styles.mentions}>\n {Array.isArray(node.content)\n ? node.content.reduce((acc, current) => acc + current.content, '') || ''\n : output(node.content, state)}\n </Text>\n );\n };\n\n const listReact: ReactNodeOutput = (node, output, state) => (\n <ListOutput\n key={`list-${state.key}`}\n node={node}\n output={output}\n state={state}\n styles={styles}\n />\n );\n\n const customRules = {\n // do not render images, we will scrape them out of the message and show on attachment card component\n image: { match: () => null },\n link: { react: linkReact },\n list: { react: listReact },\n // Truncate long text content in the message overlay\n paragraph: messageTextNumberOfLines ? { react: paragraphTextReact } : {},\n // we have no react rendering support for reflinks\n reflink: { match: () => null },\n sublist: { react: listReact },\n ...(mentionedUsers\n ? {\n mentions: {\n match: mentionsMatchFunction,\n order: defaultRules.text.order - 0.5,\n parse: mentionsParseFunction,\n react: mentionsReact,\n },\n }\n : {}),\n };\n\n return (\n <Markdown\n key={`${JSON.stringify(mentioned_users)}-${onlyEmojis}-${\n messageOverlay ? JSON.stringify(markdownStyles) : undefined\n }-${JSON.stringify(colors)}`}\n onLink={onLink}\n rules={{\n ...customRules,\n ...markdownRules,\n }}\n styles={styles}\n >\n {markdownText}\n </Markdown>\n );\n};\n\nexport interface ListOutputProps {\n node: SingleASTNode;\n output: ReactOutput;\n state: State;\n styles?: Partial<MarkdownStyle>;\n}\n\n/**\n * For lists and sublists, the default behavior of the markdown library we use is\n * to always renumber any list, so all ordered lists start from 1.\n *\n * This custom rule overrides this behavior both for top level lists and sublists,\n * in order to start the numbering from the number of the first list item provided.\n */\nexport const ListOutput = ({ node, output, state, styles }: ListOutputProps) => {\n let isSublist = state.withinList;\n const parentTypes = ['text', 'paragraph', 'strong'];\n\n return (\n <View key={state.key} style={isSublist ? styles?.sublist : styles?.list}>\n {node.items.map((item: SingleASTNode, index: number) => {\n const indexAfterStart = node.start + index;\n\n if (item === null) {\n return (\n <ListRow key={index} style={styles?.listRow} testID='list-item'>\n <Bullet\n index={node.ordered && indexAfterStart}\n style={node.ordered ? styles?.listItemNumber : styles?.listItemBullet}\n />\n </ListRow>\n );\n }\n\n isSublist = item.length > 1 && item[1].type === 'list';\n const isSublistWithinText = parentTypes.includes((item[0] ?? {}).type) && isSublist;\n const style = isSublistWithinText ? { marginBottom: 0 } : {};\n\n return (\n <ListRow key={index} style={styles?.listRow} testID='list-item'>\n <Bullet\n index={node.ordered && indexAfterStart}\n style={node.ordered ? styles?.listItemNumber : styles?.listItemBullet}\n />\n <ListItem key={1} style={[styles?.listItemText, style]}>\n {output(item, state)}\n </ListItem>\n </ListRow>\n );\n })}\n </View>\n );\n};\n\ninterface BulletProps extends TextProps {\n index?: number;\n}\n\nconst Bullet = ({ index, style }: BulletProps) => (\n <Text key={0} style={style}>\n {index ? `${index}. ` : '\\u2022 '}\n </Text>\n);\n\nconst ListRow = ({ children, style }: PropsWithChildren<ViewProps>) => (\n <Text style={style}>{children}</Text>\n);\n\nconst ListItem = ({ children, style }: PropsWithChildren<TextProps>) => (\n <Text style={style}>{children}</Text>\n);\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAGA,IAAAE,2BAAA,GAAAH,sBAAA,CAAAC,OAAA;AAEA,IAAAG,eAAA,GAAAH,OAAA;AAcA,IAAAI,qBAAA,GAAAJ,OAAA;AAA8D,IAAAK,KAAA;EAAAC,YAAA;AAO9D,IAAMC,qBAAoC,GAAG;EAC3CC,UAAU,EAAE;IACVC,QAAQ,EAAE,EAAE;IACZC,OAAO,EAAE,CAAC;IACVC,iBAAiB,EAAE;EACrB,CAAC;EACDC,IAAI,EAAE;IACJC,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE;EACb,CAAC;EACDC,cAAc,EAAE;IACdC,UAAU,EAAE;EACd,CAAC;EACDC,YAAY,EAAE;IACZC,IAAI,EAAE;EACR,CAAC;EACDC,OAAO,EAAE;IACPC,aAAa,EAAE;EACjB,CAAC;EACDC,QAAQ,EAAE;IACRL,UAAU,EAAE;EACd,CAAC;EACDM,SAAS,EAAE;IACTT,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE;EACb,CAAC;EACDS,eAAe,EAAE;IACfV,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE;EACb,CAAC;EACDU,kBAAkB,EAAE;IAClBX,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE;EACb;AACF,CAAC;AAED,IAAMW,qBAAoC,GAAG,SAAvCA,qBAAoCA,CAAIC,OAAO,EAAEC,KAAK,EAAEC,KAAK;EAAA,OAAM;IACvEC,OAAO,EAAE,IAAAC,2BAAW,EAACH,KAAK,EAAED,OAAO,CAAC,CAAC,CAAC,EAAEE,KAAK;EAC/C,CAAC;AAAA,CAAC;AAmBK,IAAMG,UAAU,GAAG,SAAbA,UAAUA,CAGrBC,MAA4C,EACzC;EACH,IACEC,MAAM,GAWJD,MAAM,CAXRC,MAAM;IACNC,aAAa,GAUXF,MAAM,CAVRE,aAAa;IACbC,cAAc,GASZH,MAAM,CATRG,cAAc;IACdC,OAAO,GAQLJ,MAAM,CARRI,OAAO;IACPC,cAAc,GAOZL,MAAM,CAPRK,cAAc;IACdC,wBAAwB,GAMtBN,MAAM,CANRM,wBAAwB;IAChBC,YAAY,GAKlBP,MAAM,CALRQ,MAAM;IACOC,gBAAgB,GAI3BT,MAAM,CAJRU,WAAW;IACXC,UAAU,GAGRX,MAAM,CAHRW,UAAU;IACDC,YAAY,GAEnBZ,MAAM,CAFRa,OAAO;IACPC,YAAY,GACVd,MAAM,CADRc,YAAY;EAGd,IAAMC,YAAY,GAAG,IAAAC,0CAAoB,EAAqBZ,OAAO,CAAC;EAEtE,IAAMa,MAAqB,OAAAC,SAAA,iBACtB3C,qBAAqB,EACrB4B,cAAc;IACjBgB,QAAQ,MAAAD,SAAA,iBACH3C,qBAAqB,CAAC4C,QAAQ;MACjCC,KAAK,EAAEnB,MAAM,CAACoB;IAAW,GACtBlB,cAAc,oBAAdA,cAAc,CAAEgB,QAAQ,CAC5B;IACD3C,UAAU,MAAA0C,SAAA,iBACL3C,qBAAqB,CAACC,UAAU;MACnC8C,eAAe,EAAErB,MAAM,CAACsB,WAAW;MACnCC,WAAW,EAAEvB,MAAM,CAACwB,cAAc;MAClCL,KAAK,EAAEnB,MAAM,CAACyB;IAAU,GACrBvB,cAAc,oBAAdA,cAAc,CAAE3B,UAAU,CAC9B;IACDa,QAAQ,MAAA6B,SAAA,iBACH3C,qBAAqB,CAACc,QAAQ;MACjC+B,KAAK,EAAEnB,MAAM,CAACoB;IAAW,GACtBlB,cAAc,oBAAdA,cAAc,CAAEd,QAAQ,CAC5B;IACDsC,IAAI,MAAAT,SAAA,iBACC3C,qBAAqB,CAACoD,IAAI;MAC7BP,KAAK,EAAEnB,MAAM,CAAC2B;IAAK,GAChBzB,cAAc,oBAAdA,cAAc,CAAEwB,IAAI;EACxB,EACF;EAED,IAAMnB,MAAM,GAAG,SAATA,MAAMA,CAAIqB,GAAW,EAAK;IAC9B,IAAMC,OAAO,GAAG,IAAIC,MAAM,CAAC,WAAW,CAAC;IACvC,IAAI,CAACD,OAAO,CAACE,IAAI,CAACH,GAAG,CAAC,EAAE;MACtBA,GAAG,GAAG,SAAS,GAAGA,GAAG;IACvB;IAEA,OAAOtB,YAAY,GACfA,YAAY,CAACsB,GAAG,CAAC,GACjBI,oBAAO,CAACC,UAAU,CAACL,GAAG,CAAC,CAACM,IAAI,CAAC,UAACC,UAAU;MAAA,OAAKA,UAAU,IAAIH,oBAAO,CAACI,OAAO,CAACR,GAAG,CAAC;IAAA,EAAC;EACtF,CAAC;EAED,IAAIS,YAAgC;EACpC,IAAMC,SAA0B,GAAG,SAA7BA,SAA0BA,CAAIC,IAAI,EAAEC,MAAM,EAAAC,IAAA,EAAmB;IAAA,IAAZ9C,KAAK,OAAAsB,SAAA,sBAAAyB,0BAAA,aAAAD,IAAA,GAAAA,IAAA;IAC1D,IAAIb,GAAW;IAGf,IAAIjC,KAAK,YAALA,KAAK,CAAEgD,UAAU,IAAIN,YAAY,EAAE;MACrCT,GAAG,GAAGS,YAAY;IACpB,CAAC,MAAM;MACLT,GAAG,GAAGW,IAAI,CAACK,MAAM;MACjBP,YAAY,GAAGE,IAAI,CAACK,MAAM;IAC5B;IACA,IAAMhC,OAAO,GAAG,SAAVA,OAAOA,CAAIiC,KAA4B,EAAK;MAChD,IAAI,CAAChC,YAAY,IAAIF,YAAY,EAAE;QACjCA,YAAY,CAAC;UACXmC,cAAc,EAAE;YAAElB,GAAG,EAAHA;UAAI,CAAC;UACvBmB,cAAc,EAAE,SAAAA,eAAA,EAAM;YACpBxC,MAAM,CAACqB,GAAG,CAAC;UACb,CAAC;UACDoB,OAAO,EAAE,UAAU;UACnBH,KAAK,EAALA;QACF,CAAC,CAAC;MACJ;IACF,CAAC;IAED,IAAMpC,WAAW,GAAG,SAAdA,WAAWA,CAAIoC,KAA4B,EAAK;MACpD,IAAI,CAAChC,YAAY,IAAIL,gBAAgB,EAAE;QACrCA,gBAAgB,CAAC;UACfsC,cAAc,EAAE;YAAElB,GAAG,EAAHA;UAAI,CAAC;UACvBoB,OAAO,EAAE,UAAU;UACnBH,KAAK,EAALA;QACF,CAAC,CAAC;MACJ;IACF,CAAC;IAED,OACEhF,MAAA,YAAAoF,aAAA,CAACjF,YAAA,CAAAkF,IAAI;MACHC,GAAG,EAAExD,KAAK,CAACwD,GAAI;MACf1C,WAAW,EAAEA,WAAY;MACzBG,OAAO,EAAEA,OAAQ;MACjBwC,KAAK,EAAEpC,MAAM,CAACE,QAAS;MACvBmC,oBAAoB,EAAE,IAAK;MAAAC,MAAA,EAAAlF,KAAA;MAAAmF,QAAA;QAAAC,QAAA,EAAAnF,YAAA;QAAAoF,UAAA;QAAAC,YAAA;MAAA;IAAA,GAE1BlB,MAAM,CAACD,IAAI,CAAC3C,OAAO,MAAAqB,SAAA,iBAAOtB,KAAK;MAAEgD,UAAU,EAAE;IAAI,EAAE,CAChD,CAAC;EAEX,CAAC;EAED,IAAMgB,kBAAmC,GAAG,SAAtCA,kBAAmCA,CAAIpB,IAAI,EAAEC,MAAM,EAAAoB,KAAA,EAAmB;IAAA,IAAZjE,KAAK,OAAAsB,SAAA,sBAAAyB,0BAAA,aAAAkB,KAAA,GAAAA,KAAA;IACnE,IAAIvD,wBAAwB,KAAKwD,SAAS,EAAE;MAG1C,IAAIlE,KAAK,CAACwD,GAAG,KAAK,GAAG,IAAIxD,KAAK,CAACwD,GAAG,KAAK,CAAC,EAAE;QACxC,OACEtF,MAAA,YAAAoF,aAAA,CAACjF,YAAA,CAAAkF,IAAI;UAACC,GAAG,EAAExD,KAAK,CAACwD,GAAI;UAACW,aAAa,EAAEzD,wBAAyB;UAAC+C,KAAK,EAAEpC,MAAM,CAAC3B,SAAU;UAAAiE,MAAA,EAAAlF,KAAA;UAAAmF,QAAA;YAAAC,QAAA,EAAAnF,YAAA;YAAAoF,UAAA;YAAAC,YAAA;UAAA;QAAA,GACpFlB,MAAM,CAACD,IAAI,CAAC3C,OAAO,EAAED,KAAK,CACvB,CAAC;MAEX,CAAC,MAAM;QACL,OAAO,IAAI;MACb;IACF;IAEA,OACE9B,MAAA,YAAAoF,aAAA,CAACjF,YAAA,CAAAkF,IAAI;MAACC,GAAG,EAAExD,KAAK,CAACwD,GAAI;MAACC,KAAK,EAAEpC,MAAM,CAAC3B,SAAU;MAAAiE,MAAA,EAAAlF,KAAA;MAAAmF,QAAA;QAAAC,QAAA,EAAAnF,YAAA;QAAAoF,UAAA;QAAAC,YAAA;MAAA;IAAA,GAC3ClB,MAAM,CAACD,IAAI,CAAC3C,OAAO,EAAED,KAAK,CACvB,CAAC;EAEX,CAAC;EAID,IAAQoE,eAAe,GAAK5D,OAAO,CAA3B4D,eAAe;EACvB,IAAMC,cAAc,GAAGC,KAAK,CAACC,OAAO,CAACH,eAAe,CAAC,GACjDA,eAAe,CAACI,MAAM,CAAC,UAACC,GAAG,EAAEC,GAAG,EAAK;IACnC,IAAMC,QAAQ,GAAGD,GAAG,CAACE,IAAI,IAAIF,GAAG,CAACG,EAAE,IAAI,EAAE;IACzC,IAAIF,QAAQ,EAAE;MACZF,GAAG,KAAOA,GAAG,CAACK,MAAM,GAAG,GAAG,GAAG,EAAE,UAAIH,QAAQ,CAACI,OAAO,CACjD,qBAAqB,EACrB,UAAUC,KAAK,EAAE;QACf,OAAO,IAAI,GAAGA,KAAK;MACrB,CACF,CAAG;IACL;IAEA,OAAOP,GAAG;EACZ,CAAC,EAAE,EAAE,CAAC,GACN,EAAE;EAEN,IAAMQ,KAAK,GAAG,IAAI9C,MAAM,WAASkC,cAAc,QAAK,GAAG,CAAC;EACxD,IAAMa,qBAAoC,GAAG,SAAvCA,qBAAoCA,CAAIC,MAAM;IAAA,OAAKF,KAAK,CAACG,IAAI,CAACD,MAAM,CAAC;EAAA;EAE3E,IAAME,aAA8B,GAAG,SAAjCA,aAA8BA,CAAIzC,IAAI,EAAEC,MAAM,EAAAyC,KAAA,EAAmB;IAAA,IAAAC,cAAA,EAAAC,qBAAA;IAAA,IAAZxF,KAAK,OAAAsB,SAAA,sBAAAyB,0BAAA,aAAAuC,KAAA,GAAAA,KAAA;IAE9D,IAAMX,QAAQ,IAAAY,cAAA,GAAG3C,IAAI,CAAC3C,OAAO,CAAC,CAAC,CAAC,sBAAAuF,qBAAA,GAAfD,cAAA,CAAiBtF,OAAO,qBAAxBuF,qBAAA,CAA0BC,SAAS,CAAC,CAAC,CAAC;IACvD,IAAMxE,OAAO,GAAG,SAAVA,OAAOA,CAAIiC,KAA4B,EAAK;MAChD,IAAI,CAAChC,YAAY,IAAIF,YAAY,EAAE;QACjCA,YAAY,CAAC;UACXmC,cAAc,EAAE;YACduC,IAAI,EAAEtB,eAAe,oBAAfA,eAAe,CAAEuB,IAAI,CACzB,UAACD,IAAsC;cAAA,OAAKf,QAAQ,KAAKe,IAAI,CAACd,IAAI;YAAA,CACpE;UACF,CAAC;UACDvB,OAAO,EAAE,aAAa;UACtBH,KAAK,EAALA;QACF,CAAC,CAAC;MACJ;IACF,CAAC;IAED,IAAMpC,WAAW,GAAG,SAAdA,WAAWA,CAAIoC,KAA4B,EAAK;MACpD,IAAI,CAAChC,YAAY,IAAIL,gBAAgB,EAAE;QACrCA,gBAAgB,CAAC;UACfwC,OAAO,EAAE,aAAa;UACtBH,KAAK,EAALA;QACF,CAAC,CAAC;MACJ;IACF,CAAC;IAED,OACEhF,MAAA,YAAAoF,aAAA,CAACjF,YAAA,CAAAkF,IAAI;MAACC,GAAG,EAAExD,KAAK,CAACwD,GAAI;MAAC1C,WAAW,EAAEA,WAAY;MAACG,OAAO,EAAEA,OAAQ;MAACwC,KAAK,EAAEpC,MAAM,CAAC5B,QAAS;MAAAkE,MAAA,EAAAlF,KAAA;MAAAmF,QAAA;QAAAC,QAAA,EAAAnF,YAAA;QAAAoF,UAAA;QAAAC,YAAA;MAAA;IAAA,GACtFO,KAAK,CAACC,OAAO,CAAC3B,IAAI,CAAC3C,OAAO,CAAC,GACxB2C,IAAI,CAAC3C,OAAO,CAACuE,MAAM,CAAC,UAACC,GAAG,EAAEmB,OAAO;MAAA,OAAKnB,GAAG,GAAGmB,OAAO,CAAC3F,OAAO;IAAA,GAAE,EAAE,CAAC,IAAI,EAAE,GACtE4C,MAAM,CAACD,IAAI,CAAC3C,OAAO,EAAED,KAAK,CAC1B,CAAC;EAEX,CAAC;EAED,IAAM6F,SAA0B,GAAG,SAA7BA,SAA0BA,CAAIjD,IAAI,EAAEC,MAAM,EAAE7C,KAAK;IAAA,OACrD9B,MAAA,YAAAoF,aAAA,CAACwC,UAAU;MACTtC,GAAG,YAAUxD,KAAK,CAACwD,GAAM;MACzBZ,IAAI,EAAEA,IAAK;MACXC,MAAM,EAAEA,MAAO;MACf7C,KAAK,EAAEA,KAAM;MACbqB,MAAM,EAAEA,MAAO;MAAAsC,MAAA,EAAAlF,KAAA;MAAAmF,QAAA;QAAAC,QAAA,EAAAnF,YAAA;QAAAoF,UAAA;QAAAC,YAAA;MAAA;IAAA,CAChB,CAAC;EAAA,CACH;EAED,IAAMgC,WAAW,OAAAzE,SAAA;IAEf0E,KAAK,EAAE;MAAEhB,KAAK,EAAE,SAAAA,MAAA;QAAA,OAAM,IAAI;MAAA;IAAC,CAAC;IAC5BiB,IAAI,EAAE;MAAEC,KAAK,EAAEvD;IAAU,CAAC;IAC1B3D,IAAI,EAAE;MAAEkH,KAAK,EAAEL;IAAU,CAAC;IAE1BnG,SAAS,EAAEgB,wBAAwB,GAAG;MAAEwF,KAAK,EAAElC;IAAmB,CAAC,GAAG,CAAC,CAAC;IAExEmC,OAAO,EAAE;MAAEnB,KAAK,EAAE,SAAAA,MAAA;QAAA,OAAM,IAAI;MAAA;IAAC,CAAC;IAC9BoB,OAAO,EAAE;MAAEF,KAAK,EAAEL;IAAU;EAAC,GACzBxB,cAAc,GACd;IACE5E,QAAQ,EAAE;MACRuF,KAAK,EAAEE,qBAAqB;MAC5BmB,KAAK,EAAEC,4BAAY,CAACvE,IAAI,CAACsE,KAAK,GAAG,GAAG;MACpCtG,KAAK,EAAEF,qBAAqB;MAC5BqG,KAAK,EAAEb;IACT;EACF,CAAC,GACD,CAAC,CAAC,CACP;EAED,OACEnH,MAAA,YAAAoF,aAAA,CAAChF,2BAAA,WAAQ;IACPkF,GAAG,EAAK+C,IAAI,CAACC,SAAS,CAACpC,eAAe,CAAC,SAAIrD,UAAU,UACnDN,cAAc,GAAG8F,IAAI,CAACC,SAAS,CAACjG,cAAc,CAAC,GAAG2D,SAAS,UACzDqC,IAAI,CAACC,SAAS,CAACnG,MAAM,CAAI;IAC7BO,MAAM,EAAEA,MAAO;IACf6F,KAAK,MAAAnF,SAAA,iBACAyE,WAAW,EACXzF,aAAa,CAChB;IACFe,MAAM,EAAEA,MAAO;IAAAsC,MAAA,EAAAlF,KAAA;IAAAmF,QAAA;MAAAC,QAAA,EAAAnF,YAAA;MAAAoF,UAAA;MAAAC,YAAA;IAAA;EAAA,GAEd5C,YACO,CAAC;AAEf,CAAC;AAACuF,OAAA,CAAAvG,UAAA,GAAAA,UAAA;AAgBK,IAAM2F,UAAU,GAAG,SAAbA,UAAUA,CAAAa,KAAA,EAAyD;EAAA,IAAnD/D,IAAI,GAAA+D,KAAA,CAAJ/D,IAAI;IAAEC,MAAM,GAAA8D,KAAA,CAAN9D,MAAM;IAAE7C,KAAK,GAAA2G,KAAA,CAAL3G,KAAK;IAAEqB,MAAM,GAAAsF,KAAA,CAANtF,MAAM;EACtD,IAAIuF,SAAS,GAAG5G,KAAK,CAAC6G,UAAU;EAChC,IAAMC,WAAW,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC;EAEnD,OACE5I,MAAA,YAAAoF,aAAA,CAACjF,YAAA,CAAA0I,IAAI;IAACvD,GAAG,EAAExD,KAAK,CAACwD,GAAI;IAACC,KAAK,EAAEmD,SAAS,GAAGvF,MAAM,oBAANA,MAAM,CAAE+E,OAAO,GAAG/E,MAAM,oBAANA,MAAM,CAAErC,IAAK;IAAA2E,MAAA,EAAAlF,KAAA;IAAAmF,QAAA;MAAAC,QAAA,EAAAnF,YAAA;MAAAoF,UAAA;MAAAC,YAAA;IAAA;EAAA,GACrEnB,IAAI,CAACoE,KAAK,CAACC,GAAG,CAAC,UAACC,IAAmB,EAAEC,KAAa,EAAK;IAAA,IAAAC,MAAA;IACtD,IAAMC,eAAe,GAAGzE,IAAI,CAAC0E,KAAK,GAAGH,KAAK;IAE1C,IAAID,IAAI,KAAK,IAAI,EAAE;MACjB,OACEhJ,MAAA,YAAAoF,aAAA,CAACiE,OAAO;QAAC/D,GAAG,EAAE2D,KAAM;QAAC1D,KAAK,EAAEpC,MAAM,oBAANA,MAAM,CAAE9B,OAAQ;QAACiI,MAAM,EAAC,WAAW;QAAA7D,MAAA,EAAAlF,KAAA;QAAAmF,QAAA;UAAAC,QAAA,EAAAnF,YAAA;UAAAoF,UAAA;UAAAC,YAAA;QAAA;MAAA,GAC7D7F,MAAA,YAAAoF,aAAA,CAACmE,MAAM;QACLN,KAAK,EAAEvE,IAAI,CAAC8E,OAAO,IAAIL,eAAgB;QACvC5D,KAAK,EAAEb,IAAI,CAAC8E,OAAO,GAAGrG,MAAM,oBAANA,MAAM,CAAElC,cAAc,GAAGkC,MAAM,oBAANA,MAAM,CAAEsG,cAAe;QAAAhE,MAAA,EAAAlF,KAAA;QAAAmF,QAAA;UAAAC,QAAA,EAAAnF,YAAA;UAAAoF,UAAA;UAAAC,YAAA;QAAA;MAAA,CACvE,CACM,CAAC;IAEd;IAEA6C,SAAS,GAAGM,IAAI,CAACpC,MAAM,GAAG,CAAC,IAAIoC,IAAI,CAAC,CAAC,CAAC,CAACU,IAAI,KAAK,MAAM;IACtD,IAAMC,mBAAmB,GAAGf,WAAW,CAACgB,QAAQ,CAAC,EAAAV,MAAA,GAACF,IAAI,CAAC,CAAC,CAAC,YAAAE,MAAA,GAAI,CAAC,CAAC,EAAEQ,IAAI,CAAC,IAAIhB,SAAS;IACnF,IAAMnD,KAAK,GAAGoE,mBAAmB,GAAG;MAAE5I,YAAY,EAAE;IAAE,CAAC,GAAG,CAAC,CAAC;IAE5D,OACEf,MAAA,YAAAoF,aAAA,CAACiE,OAAO;MAAC/D,GAAG,EAAE2D,KAAM;MAAC1D,KAAK,EAAEpC,MAAM,oBAANA,MAAM,CAAE9B,OAAQ;MAACiI,MAAM,EAAC,WAAW;MAAA7D,MAAA,EAAAlF,KAAA;MAAAmF,QAAA;QAAAC,QAAA,EAAAnF,YAAA;QAAAoF,UAAA;QAAAC,YAAA;MAAA;IAAA,GAC7D7F,MAAA,YAAAoF,aAAA,CAACmE,MAAM;MACLN,KAAK,EAAEvE,IAAI,CAAC8E,OAAO,IAAIL,eAAgB;MACvC5D,KAAK,EAAEb,IAAI,CAAC8E,OAAO,GAAGrG,MAAM,oBAANA,MAAM,CAAElC,cAAc,GAAGkC,MAAM,oBAANA,MAAM,CAAEsG,cAAe;MAAAhE,MAAA,EAAAlF,KAAA;MAAAmF,QAAA;QAAAC,QAAA,EAAAnF,YAAA;QAAAoF,UAAA;QAAAC,YAAA;MAAA;IAAA,CACvE,CAAC,EACF7F,MAAA,YAAAoF,aAAA,CAACyE,QAAQ;MAACvE,GAAG,EAAE,CAAE;MAACC,KAAK,EAAE,CAACpC,MAAM,oBAANA,MAAM,CAAEhC,YAAY,EAAEoE,KAAK,CAAE;MAAAE,MAAA,EAAAlF,KAAA;MAAAmF,QAAA;QAAAC,QAAA,EAAAnF,YAAA;QAAAoF,UAAA;QAAAC,YAAA;MAAA;IAAA,GACpDlB,MAAM,CAACqE,IAAI,EAAElH,KAAK,CACX,CACH,CAAC;EAEd,CAAC,CACG,CAAC;AAEX,CAAC;AAAC0G,OAAA,CAAAZ,UAAA,GAAAA,UAAA;AAMF,IAAM2B,MAAM,GAAG,SAATA,MAAMA,CAAAO,KAAA;EAAA,IAAMb,KAAK,GAAAa,KAAA,CAALb,KAAK;IAAE1D,KAAK,GAAAuE,KAAA,CAALvE,KAAK;EAAA,OAC5BvF,MAAA,YAAAoF,aAAA,CAACjF,YAAA,CAAAkF,IAAI;IAACC,GAAG,EAAE,CAAE;IAACC,KAAK,EAAEA,KAAM;IAAAE,MAAA,EAAAlF,KAAA;IAAAmF,QAAA;MAAAC,QAAA,EAAAnF,YAAA;MAAAoF,UAAA;MAAAC,YAAA;IAAA;EAAA,GACxBoD,KAAK,GAAMA,KAAK,UAAO,SACpB,CAAC;AAAA,CACR;AAED,IAAMI,OAAO,GAAG,SAAVA,OAAOA,CAAAU,KAAA;EAAA,IAAMC,QAAQ,GAAAD,KAAA,CAARC,QAAQ;IAAEzE,KAAK,GAAAwE,KAAA,CAALxE,KAAK;EAAA,OAChCvF,MAAA,YAAAoF,aAAA,CAACjF,YAAA,CAAAkF,IAAI;IAACE,KAAK,EAAEA,KAAM;IAAAE,MAAA,EAAAlF,KAAA;IAAAmF,QAAA;MAAAC,QAAA,EAAAnF,YAAA;MAAAoF,UAAA;MAAAC,YAAA;IAAA;EAAA,GAAEmE,QAAe,CAAC;AAAA,CACtC;AAED,IAAMH,QAAQ,GAAG,SAAXA,QAAQA,CAAAI,KAAA;EAAA,IAAMD,QAAQ,GAAAC,KAAA,CAARD,QAAQ;IAAEzE,KAAK,GAAA0E,KAAA,CAAL1E,KAAK;EAAA,OACjCvF,MAAA,YAAAoF,aAAA,CAACjF,YAAA,CAAAkF,IAAI;IAACE,KAAK,EAAEA,KAAM;IAAAE,MAAA,EAAAlF,KAAA;IAAAmF,QAAA;MAAAC,QAAA,EAAAnF,YAAA;MAAAoF,UAAA;MAAAC,YAAA;IAAA;EAAA,GAAEmE,QAAe,CAAC;AAAA,CACtC"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeMarkdownPackage","_simpleMarkdown","_generateMarkdownText","_this","_jsxFileName","defaultMarkdownStyles","inlineCode","fontSize","padding","paddingHorizontal","list","marginBottom","marginTop","listItemNumber","fontWeight","listItemText","flex","listRow","flexDirection","mentions","paragraph","paragraphCenter","paragraphWithImage","mentionsParseFunction","capture","parse","state","content","parseInline","renderText","params","colors","markdownRules","markdownStyles","message","messageOverlay","messageTextNumberOfLines","onLinkParams","onLink","onLongPressParam","onLongPress","onlyEmojis","onPressParam","onPress","preventPress","text","markdownText","generateMarkdownText","styles","_extends2","autolink","color","accent_blue","backgroundColor","white_smoke","borderColor","grey_gainsboro","accent_red","black","url","pattern","RegExp","test","Linking","canOpenURL","then","canOpenUrl","openURL","previousLink","linkReact","node","output","_ref","_objectDestructuringEmpty2","withinLink","target","event","additionalInfo","defaultHandler","emitter","createElement","Text","key","style","suppressHighlighting","__self","__source","fileName","lineNumber","columnNumber","paragraphTextReact","_ref2","undefined","numberOfLines","mentioned_users","mentionedUsers","Array","isArray","reduce","acc","cur","userName","name","id","length","replace","match","regEx","mentionsMatchFunction","source","exec","mentionsReact","_ref3","_node$content$","_node$content$$conten","substring","user","find","current","listReact","ListOutput","customRules","image","link","react","reflink","sublist","order","defaultRules","JSON","stringify","rules","exports","_ref4","isSublist","withinList","parentTypes","View","items","map","item","index","_item$","indexAfterStart","start","ListRow","testID","Bullet","ordered","listItemBullet","type","isSublistWithinText","includes","ListItem","_ref5","_ref6","children","_ref7"],"sources":["renderText.tsx"],"sourcesContent":["import React, { PropsWithChildren } from 'react';\nimport { GestureResponderEvent, Linking, Text, TextProps, View, ViewProps } from 'react-native';\n\n// @ts-expect-error\nimport Markdown from 'react-native-markdown-package';\n\nimport {\n DefaultRules,\n defaultRules,\n MatchFunction,\n ParseFunction,\n parseInline,\n ReactNodeOutput,\n ReactOutput,\n SingleASTNode,\n State,\n} from 'simple-markdown';\n\nimport type { UserResponse } from 'stream-chat';\n\nimport { generateMarkdownText } from './generateMarkdownText';\n\nimport type { MessageContextValue } from '../../../../contexts/messageContext/MessageContext';\nimport type { Colors, MarkdownStyle } from '../../../../contexts/themeContext/utils/theme';\nimport type { DefaultStreamChatGenerics } from '../../../../types/types';\nimport type { MessageType } from '../../../MessageList/hooks/useMessageList';\n\nconst defaultMarkdownStyles: MarkdownStyle = {\n inlineCode: {\n fontSize: 13,\n padding: 3,\n paddingHorizontal: 5,\n },\n list: {\n marginBottom: 8,\n marginTop: 8,\n },\n listItemNumber: {\n fontWeight: 'bold',\n },\n listItemText: {\n flex: 0,\n },\n listRow: {\n flexDirection: 'row',\n },\n mentions: {\n fontWeight: '700',\n },\n paragraph: {\n marginBottom: 8,\n marginTop: 8,\n },\n paragraphCenter: {\n marginBottom: 8,\n marginTop: 8,\n },\n paragraphWithImage: {\n marginBottom: 8,\n marginTop: 8,\n },\n};\n\nconst mentionsParseFunction: ParseFunction = (capture, parse, state) => ({\n content: parseInline(parse, capture[0], state),\n});\n\nexport type MarkdownRules = Partial<DefaultRules>;\n\nexport type RenderTextParams<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<\n Pick<MessageContextValue<StreamChatGenerics>, 'onLongPress' | 'onPress' | 'preventPress'>\n> & {\n colors: typeof Colors;\n message: MessageType<StreamChatGenerics>;\n markdownRules?: MarkdownRules;\n markdownStyles?: MarkdownStyle;\n messageOverlay?: boolean;\n messageTextNumberOfLines?: number;\n onLink?: (url: string) => Promise<void>;\n onlyEmojis?: boolean;\n};\n\nexport const renderText = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n params: RenderTextParams<StreamChatGenerics>,\n) => {\n const {\n colors,\n markdownRules,\n markdownStyles,\n message,\n messageOverlay,\n messageTextNumberOfLines,\n onLink: onLinkParams,\n onLongPress: onLongPressParam,\n onlyEmojis,\n onPress: onPressParam,\n preventPress,\n } = params;\n const { text } = message;\n\n const markdownText = generateMarkdownText(text);\n\n const styles: MarkdownStyle = {\n ...defaultMarkdownStyles,\n ...markdownStyles,\n autolink: {\n ...defaultMarkdownStyles.autolink,\n color: colors.accent_blue,\n ...markdownStyles?.autolink,\n },\n inlineCode: {\n ...defaultMarkdownStyles.inlineCode,\n backgroundColor: colors.white_smoke,\n borderColor: colors.grey_gainsboro,\n color: colors.accent_red,\n ...markdownStyles?.inlineCode,\n },\n mentions: {\n ...defaultMarkdownStyles.mentions,\n color: colors.accent_blue,\n ...markdownStyles?.mentions,\n },\n text: {\n ...defaultMarkdownStyles.text,\n color: colors.black,\n ...markdownStyles?.text,\n },\n };\n\n const onLink = (url: string) => {\n const pattern = new RegExp(/^\\S+:\\/\\//);\n if (!pattern.test(url)) {\n url = 'http://' + url;\n }\n\n return onLinkParams\n ? onLinkParams(url)\n : Linking.canOpenURL(url).then((canOpenUrl) => canOpenUrl && Linking.openURL(url));\n };\n\n let previousLink: string | undefined;\n const linkReact: ReactNodeOutput = (node, output, { ...state }) => {\n let url: string;\n // Some long URLs with `&` separated parameters are trimmed and the url only until first param is taken.\n // This is done because of internal link been taken from the original URL in react-native-markdown-package. So, we check for `withinLink` and take the previous full URL.\n if (state?.withinLink && previousLink) {\n url = previousLink;\n } else {\n url = node.target;\n previousLink = node.target;\n }\n const onPress = (event: GestureResponderEvent) => {\n if (!preventPress && onPressParam) {\n onPressParam({\n additionalInfo: { url },\n defaultHandler: () => {\n onLink(url);\n },\n emitter: 'textLink',\n event,\n });\n }\n };\n\n const onLongPress = (event: GestureResponderEvent) => {\n if (!preventPress && onLongPressParam) {\n onLongPressParam({\n additionalInfo: { url },\n emitter: 'textLink',\n event,\n });\n }\n };\n\n return (\n <Text\n key={state.key}\n onLongPress={onLongPress}\n onPress={onPress}\n style={styles.autolink}\n suppressHighlighting={true}\n >\n {output(node.content, { ...state, withinLink: true })}\n </Text>\n );\n };\n\n const paragraphTextReact: ReactNodeOutput = (node, output, { ...state }) => {\n if (messageTextNumberOfLines !== undefined) {\n // If we want to truncate the message text, lets only truncate the first paragraph\n // and simply not render rest of the paragraphs.\n if (state.key === '0' || state.key === 0) {\n return (\n <Text key={state.key} numberOfLines={messageTextNumberOfLines} style={styles.paragraph}>\n {output(node.content, state)}\n </Text>\n );\n } else {\n return null;\n }\n }\n\n return (\n <Text key={state.key} style={styles.paragraph}>\n {output(node.content, state)}\n </Text>\n );\n };\n\n // take the @ mentions and turn them into markdown?\n // translate links\n const { mentioned_users } = message;\n const mentionedUsers = Array.isArray(mentioned_users)\n ? mentioned_users.reduce((acc, cur) => {\n const userName = cur.name || cur.id || '';\n if (userName) {\n acc += `${acc.length ? '|' : ''}@${userName.replace(\n /[.*+?^${}()|[\\]\\\\]/g,\n function (match) {\n return '\\\\' + match;\n },\n )}`;\n }\n\n return acc;\n }, '')\n : '';\n\n const regEx = new RegExp(`^\\\\B(${mentionedUsers})`, 'g');\n const mentionsMatchFunction: MatchFunction = (source) => regEx.exec(source);\n\n const mentionsReact: ReactNodeOutput = (node, output, { ...state }) => {\n /**removes the @ prefix of username */\n const userName = node.content[0]?.content?.substring(1);\n const onPress = (event: GestureResponderEvent) => {\n if (!preventPress && onPressParam) {\n onPressParam({\n additionalInfo: {\n user: mentioned_users?.find(\n (user: UserResponse<StreamChatGenerics>) => userName === user.name,\n ),\n },\n emitter: 'textMention',\n event,\n });\n }\n };\n\n const onLongPress = (event: GestureResponderEvent) => {\n if (!preventPress && onLongPressParam) {\n onLongPressParam({\n emitter: 'textMention',\n event,\n });\n }\n };\n\n return (\n <Text key={state.key} onLongPress={onLongPress} onPress={onPress} style={styles.mentions}>\n {Array.isArray(node.content)\n ? node.content.reduce((acc, current) => acc + current.content, '') || ''\n : output(node.content, state)}\n </Text>\n );\n };\n\n const listReact: ReactNodeOutput = (node, output, state) => (\n <ListOutput\n key={`list-${state.key}`}\n node={node}\n output={output}\n state={state}\n styles={styles}\n />\n );\n\n const customRules = {\n // do not render images, we will scrape them out of the message and show on attachment card component\n image: { match: () => null },\n link: { react: linkReact },\n list: { react: listReact },\n // Truncate long text content in the message overlay\n paragraph: messageTextNumberOfLines ? { react: paragraphTextReact } : {},\n // we have no react rendering support for reflinks\n reflink: { match: () => null },\n sublist: { react: listReact },\n ...(mentionedUsers\n ? {\n mentions: {\n match: mentionsMatchFunction,\n order: defaultRules.text.order - 0.5,\n parse: mentionsParseFunction,\n react: mentionsReact,\n },\n }\n : {}),\n };\n\n return (\n <Markdown\n key={`${JSON.stringify(mentioned_users)}-${onlyEmojis}-${\n messageOverlay ? JSON.stringify(markdownStyles) : undefined\n }-${JSON.stringify(colors)}`}\n onLink={onLink}\n rules={{\n ...customRules,\n ...markdownRules,\n }}\n styles={styles}\n >\n {markdownText}\n </Markdown>\n );\n};\n\nexport interface ListOutputProps {\n node: SingleASTNode;\n output: ReactOutput;\n state: State;\n styles?: Partial<MarkdownStyle>;\n}\n\n/**\n * For lists and sublists, the default behavior of the markdown library we use is\n * to always renumber any list, so all ordered lists start from 1.\n *\n * This custom rule overrides this behavior both for top level lists and sublists,\n * in order to start the numbering from the number of the first list item provided.\n */\nexport const ListOutput = ({ node, output, state, styles }: ListOutputProps) => {\n let isSublist = state.withinList;\n const parentTypes = ['text', 'paragraph', 'strong'];\n\n return (\n <View key={state.key} style={isSublist ? styles?.sublist : styles?.list}>\n {node.items.map((item: SingleASTNode, index: number) => {\n const indexAfterStart = node.start + index;\n\n if (item === null) {\n return (\n <ListRow key={index} style={styles?.listRow} testID='list-item'>\n <Bullet\n index={node.ordered && indexAfterStart}\n style={node.ordered ? styles?.listItemNumber : styles?.listItemBullet}\n />\n </ListRow>\n );\n }\n\n isSublist = item.length > 1 && item[1].type === 'list';\n const isSublistWithinText = parentTypes.includes((item[0] ?? {}).type) && isSublist;\n const style = isSublistWithinText ? { marginBottom: 0 } : {};\n\n return (\n <ListRow key={index} style={styles?.listRow} testID='list-item'>\n <Bullet\n index={node.ordered && indexAfterStart}\n style={node.ordered ? styles?.listItemNumber : styles?.listItemBullet}\n />\n <ListItem key={1} style={[styles?.listItemText, style]}>\n {output(item, state)}\n </ListItem>\n </ListRow>\n );\n })}\n </View>\n );\n};\n\ninterface BulletProps extends TextProps {\n index?: number;\n}\n\nconst Bullet = ({ index, style }: BulletProps) => (\n <Text key={0} style={style}>\n {index ? `${index}. ` : '\\u2022 '}\n </Text>\n);\n\nconst ListRow = ({ children, style }: PropsWithChildren<ViewProps>) => (\n <Text style={style}>{children}</Text>\n);\n\nconst ListItem = ({ children, style }: PropsWithChildren<TextProps>) => (\n <Text style={style}>{children}</Text>\n);\n"],"mappings":"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"}