stream-chat-react-native-core 5.16.0-beta.1 → 5.16.0-beta.2

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 (46) hide show
  1. package/lib/commonjs/components/Attachment/FileAttachmentGroup.js +1 -1
  2. package/lib/commonjs/components/Attachment/FileAttachmentGroup.js.map +1 -1
  3. package/lib/commonjs/components/Channel/Channel.js +1 -1
  4. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  5. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +4 -4
  6. package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
  7. package/lib/commonjs/components/MessageInput/MessageInput.js +1 -1
  8. package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
  9. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +38 -54
  10. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  11. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js +4 -4
  12. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  13. package/lib/commonjs/native.js.map +1 -1
  14. package/lib/commonjs/types/types.js.map +1 -1
  15. package/lib/commonjs/version.json +1 -1
  16. package/lib/module/components/Attachment/FileAttachmentGroup.js +1 -1
  17. package/lib/module/components/Attachment/FileAttachmentGroup.js.map +1 -1
  18. package/lib/module/components/Channel/Channel.js +1 -1
  19. package/lib/module/components/Channel/Channel.js.map +1 -1
  20. package/lib/module/components/MessageInput/FileUploadPreview.js +4 -4
  21. package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
  22. package/lib/module/components/MessageInput/MessageInput.js +1 -1
  23. package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
  24. package/lib/module/contexts/messageInputContext/MessageInputContext.js +38 -54
  25. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  26. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js +4 -4
  27. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  28. package/lib/module/native.js.map +1 -1
  29. package/lib/module/types/types.js.map +1 -1
  30. package/lib/module/version.json +1 -1
  31. package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +1 -1
  32. package/lib/typescript/native.d.ts +1 -1
  33. package/lib/typescript/types/types.d.ts +6 -4
  34. package/package.json +1 -1
  35. package/src/components/Attachment/FileAttachmentGroup.tsx +1 -1
  36. package/src/components/Channel/Channel.tsx +1 -1
  37. package/src/components/MessageInput/FileUploadPreview.tsx +3 -3
  38. package/src/components/MessageInput/MessageInput.tsx +2 -2
  39. package/src/components/MessageInput/__tests__/FileUploadPreview.test.js +1 -1
  40. package/src/contexts/messageInputContext/MessageInputContext.tsx +25 -32
  41. package/src/contexts/messageInputContext/__tests__/__snapshots__/sendMessage.test.tsx.snap +10 -12
  42. package/src/contexts/messageInputContext/__tests__/pickFile.test.tsx +2 -2
  43. package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +2 -2
  44. package/src/native.ts +1 -1
  45. package/src/types/types.ts +9 -4
  46. package/src/version.json +1 -1
@@ -178,7 +178,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
178
178
  setFileUploads(function (prevFileUploads) {
179
179
  return prevFileUploads.map(function (fileUpload) {
180
180
  return (0, _extends2["default"])({}, fileUpload, {
181
- paused: fileUpload.id === index ? false : true
181
+ paused: fileUpload.id !== index
182
182
  });
183
183
  });
184
184
  });
@@ -209,7 +209,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
209
209
  fileTextContainer = _useTheme2$theme$mess.fileTextContainer,
210
210
  flatList = _useTheme2$theme$mess.flatList;
211
211
  var renderItem = function renderItem(_ref2) {
212
- var _item$file$type;
212
+ var _item$file$mimeType;
213
213
  var index = _ref2.index,
214
214
  item = _ref2.item;
215
215
  var indicatorType = (0, _utils.getIndicatorTypeForFileState)(item.state, enableOfflineSupport);
@@ -228,7 +228,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
228
228
  lineNumber: 224,
229
229
  columnNumber: 9
230
230
  }
231
- }, (_item$file$type = item.file.type) != null && _item$file$type.startsWith('audio/') && (0, _native.isAudioPackageAvailable)() ? _react["default"].createElement(_reactNative.View, {
231
+ }, (_item$file$mimeType = item.file.mimeType) != null && _item$file$mimeType.startsWith('audio/') && (0, _native.isAudioPackageAvailable)() ? _react["default"].createElement(_reactNative.View, {
232
232
  style: [{
233
233
  marginBottom: item.state === _utils.FileState.UPLOADED ? 8 : 0
234
234
  }, audioAttachmentFileContainer],
@@ -295,7 +295,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
295
295
  columnNumber: 17
296
296
  }
297
297
  }, _react["default"].createElement(FileAttachmentIcon, {
298
- mimeType: item.file.type,
298
+ mimeType: item.file.mimeType,
299
299
  __self: _this,
300
300
  __source: {
301
301
  fileName: _jsxFileName,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_UploadProgressIndicator","_contexts","_MessageInputContext","_MessagesContext","_ThemeContext","_TranslationContext","_Close","_Warning","_native","_utils","_FileAttachment","_WritingDirectionAwareText","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","FILE_PREVIEW_HEIGHT","WARNING_ICON_SIZE","styles","StyleSheet","create","dismiss","borderRadius","height","position","right","top","width","fileContainer","borderWidth","flexDirection","justifyContent","marginBottom","paddingLeft","paddingRight","fileContentContainer","fileIcon","alignItems","alignSelf","filenameText","fontSize","fontWeight","paddingHorizontal","fileSizeText","fileTextContainer","flatList","maxHeight","overlay","marginLeft","marginRight","marginTop","unsupportedFile","unsupportedFileText","marginHorizontal","warningIconStyle","UnsupportedFileTypeOrFileSizeIndicator","_ref","indicatorType","item","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","accent_red","grey","grey_dark","messageInput","fileUploadPreview","_useTranslationContex","useTranslationContext","t","ProgressIndicatorTypes","NOT_SUPPORTED","createElement","View","style","__self","__source","fileName","lineNumber","columnNumber","Warning","pathFill","Text","color","WritingDirectionAwareText","file","duration","getFileSizeDisplayText","size","FileUploadPreviewWithContext","props","AudioAttachment","enableOfflineSupport","FileAttachmentIcon","fileUploads","removeFile","setFileUploads","uploadFile","flatListRef","useRef","_useState","useState","_useState2","_slicedToArray2","flatListWidth","setFlatListWidth","onLoad","index","prevFileUploads","map","fileUpload","_extends2","id","onProgress","currentTime","hasEnd","progress","onPlayPause","pausedStatus","paused","_useTheme2","_useTheme2$theme","_useTheme2$theme$colo","black","grey_gainsboro","grey_whisper","white","_useTheme2$theme$mess","audioAttachmentFileContainer","renderItem","_ref2","_item$file$type","getIndicatorTypeForFileState","state","lastIndexOfDot","name","lastIndexOf","Fragment","UploadProgressIndicator","action","newFile","type","startsWith","isAudioPackageAvailable","FileState","UPLOADED","length","backgroundColor","borderColor","testID","mimeType","numberOfLines","I18nManager","isRTL","writingDirection","slice","TouchableOpacity","onPress","Close","fileUploadsLength","useEffect","current","setTimeout","_flatListRef$current","scrollToEnd","FlatList","data","getItemLayout","_","offset","keyExtractor","onLayout","_ref3","nativeEvent","layout","ref","areEqual","prevProps","nextProps","nextFileUploads","every","prevFileUpload","MemoizedFileUploadPreview","React","memo","FileUploadPreview","_useChatContext","useChatContext","_useMessageInputConte","useMessageInputContext","_useMessagesContext","useMessagesContext","exports","displayName"],"sources":["FileUploadPreview.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { FlatList, I18nManager, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport { UploadProgressIndicator } from './UploadProgressIndicator';\n\nimport { ChatContextValue, useChatContext } from '../../contexts';\nimport {\n FileUpload,\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../contexts/translationContext/TranslationContext';\nimport { Close } from '../../icons/Close';\nimport { Warning } from '../../icons/Warning';\nimport { isAudioPackageAvailable } from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { FileState, getIndicatorTypeForFileState, ProgressIndicatorTypes } from '../../utils/utils';\nimport { getFileSizeDisplayText } from '../Attachment/FileAttachment';\nimport { WritingDirectionAwareText } from '../RTLComponents/WritingDirectionAwareText';\n\nconst FILE_PREVIEW_HEIGHT = 60;\nconst WARNING_ICON_SIZE = 16;\n\nconst styles = StyleSheet.create({\n dismiss: {\n borderRadius: 24,\n height: 24,\n position: 'absolute',\n right: 8,\n top: 8,\n width: 24,\n },\n fileContainer: {\n borderRadius: 12,\n borderWidth: 1,\n flexDirection: 'row',\n height: FILE_PREVIEW_HEIGHT,\n justifyContent: 'space-between',\n marginBottom: 8,\n paddingLeft: 8,\n paddingRight: 8,\n },\n fileContentContainer: { flexDirection: 'row' },\n fileIcon: {\n alignItems: 'center',\n alignSelf: 'center',\n justifyContent: 'center',\n },\n filenameText: {\n fontSize: 14,\n fontWeight: 'bold',\n paddingHorizontal: 10,\n },\n fileSizeText: {\n fontSize: 12,\n paddingHorizontal: 10,\n },\n fileTextContainer: {\n height: '100%',\n justifyContent: 'space-around',\n },\n flatList: { marginBottom: 12, maxHeight: FILE_PREVIEW_HEIGHT * 2.5 + 16 },\n overlay: {\n borderRadius: 12,\n marginLeft: 8,\n marginRight: 8,\n marginTop: 2,\n },\n unsupportedFile: {\n flexDirection: 'row',\n paddingLeft: 10,\n },\n unsupportedFileText: {\n fontSize: 12,\n marginHorizontal: 4,\n },\n warningIconStyle: {\n borderRadius: 24,\n marginTop: 2,\n },\n});\n\nconst UnsupportedFileTypeOrFileSizeIndicator = ({\n indicatorType,\n item,\n}: {\n indicatorType: typeof ProgressIndicatorTypes[keyof typeof ProgressIndicatorTypes];\n item: FileUpload;\n}) => {\n const {\n theme: {\n colors: { accent_red, grey, grey_dark },\n messageInput: {\n fileUploadPreview: { fileSizeText },\n },\n },\n } = useTheme();\n\n const { t } = useTranslationContext();\n\n return indicatorType === ProgressIndicatorTypes.NOT_SUPPORTED ? (\n <View style={styles.unsupportedFile}>\n <Warning\n height={WARNING_ICON_SIZE}\n pathFill={accent_red}\n style={styles.warningIconStyle}\n width={WARNING_ICON_SIZE}\n />\n <Text style={[styles.unsupportedFileText, { color: grey_dark }]}>\n {t('File type not supported')}\n </Text>\n </View>\n ) : (\n <WritingDirectionAwareText style={[styles.fileSizeText, { color: grey }, fileSizeText]}>\n {item.file.duration || getFileSizeDisplayText(item.file.size)}\n </WritingDirectionAwareText>\n );\n};\n\ntype FileUploadPreviewPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n MessageInputContextValue<StreamChatGenerics>,\n 'fileUploads' | 'removeFile' | 'uploadFile' | 'setFileUploads'\n> &\n Pick<MessagesContextValue<StreamChatGenerics>, 'AudioAttachment' | 'FileAttachmentIcon'> &\n Pick<ChatContextValue<StreamChatGenerics>, 'enableOfflineSupport'>;\n\nconst FileUploadPreviewWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: FileUploadPreviewPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n AudioAttachment,\n enableOfflineSupport,\n FileAttachmentIcon,\n fileUploads,\n removeFile,\n setFileUploads,\n uploadFile,\n } = props;\n\n const flatListRef = useRef<FlatList<FileUpload> | null>(null);\n const [flatListWidth, setFlatListWidth] = useState(0);\n\n // Handler triggered when an audio is loaded in the message input. The initial state is defined for the audio here and the duration is set.\n const onLoad = (index: string, duration: number) => {\n setFileUploads((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => ({\n ...fileUpload,\n duration: fileUpload.id === index ? duration : fileUpload.duration,\n })),\n );\n };\n\n // The handler which is triggered when the audio progresses/ the thumb is dragged in the progress control. The progressed duration is set here.\n const onProgress = (index: string, currentTime?: number, hasEnd?: boolean) => {\n setFileUploads((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => ({\n ...fileUpload,\n progress:\n fileUpload.id === index\n ? hasEnd\n ? 1\n : currentTime\n ? currentTime / (fileUpload.duration as number)\n : 0\n : fileUpload.progress,\n })),\n );\n };\n\n // The handler which controls or sets the paused/played state of the audio.\n const onPlayPause = (index: string, pausedStatus?: boolean) => {\n if (pausedStatus === false) {\n // If the status is false we set the audio with the index as playing and the others as paused.\n setFileUploads((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => ({\n ...fileUpload,\n paused: fileUpload.id === index ? false : true,\n })),\n );\n } else {\n // If the status is true we simply set all the audio's paused state as true.\n setFileUploads((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => ({\n ...fileUpload,\n paused: true,\n })),\n );\n }\n };\n\n const {\n theme: {\n colors: { black, grey_dark, grey_gainsboro, grey_whisper, white },\n messageInput: {\n fileUploadPreview: {\n audioAttachmentFileContainer,\n dismiss,\n fileContainer,\n fileContentContainer,\n filenameText,\n fileTextContainer,\n flatList,\n },\n },\n },\n } = useTheme();\n\n const renderItem = ({ index, item }: { index: number; item: FileUpload }) => {\n const indicatorType = getIndicatorTypeForFileState(item.state, enableOfflineSupport);\n\n const lastIndexOfDot = item.file.name.lastIndexOf('.');\n\n return (\n <>\n <UploadProgressIndicator\n action={() => {\n uploadFile({ newFile: item });\n }}\n style={styles.overlay}\n type={indicatorType}\n >\n {item.file.type?.startsWith('audio/') && isAudioPackageAvailable() ? (\n <View\n style={[\n { marginBottom: item.state === FileState.UPLOADED ? 8 : 0 },\n audioAttachmentFileContainer,\n ]}\n >\n <View\n style={[\n styles.fileContainer,\n index === fileUploads.length - 1\n ? {\n marginBottom: 0,\n }\n : {},\n {\n backgroundColor: white,\n borderColor: grey_whisper,\n width: -16,\n },\n fileContainer,\n ]}\n testID='audio-attachment-upload-preview'\n >\n <AudioAttachment\n item={item}\n onLoad={onLoad}\n onPlayPause={onPlayPause}\n onProgress={onProgress}\n testID='audio-attachment-upload-preview'\n />\n </View>\n </View>\n ) : (\n <View\n style={[\n styles.fileContainer,\n index === fileUploads.length - 1\n ? {\n marginBottom: 0,\n }\n : {},\n {\n borderColor: grey_whisper,\n width: flatListWidth - 16,\n },\n fileContainer,\n ]}\n >\n <View style={[styles.fileContentContainer, fileContentContainer]}>\n <View style={styles.fileIcon}>\n <FileAttachmentIcon mimeType={item.file.type} />\n </View>\n <View style={[styles.fileTextContainer, fileTextContainer]}>\n <Text\n numberOfLines={1}\n style={[\n styles.filenameText,\n {\n color: black,\n width:\n flatListWidth -\n 16 - // 16 = horizontal padding\n 40 - // 40 = file icon size\n 24 - // 24 = close icon size\n 24, // 24 = internal padding\n },\n I18nManager.isRTL ? { writingDirection: 'rtl' } : { writingDirection: 'ltr' },\n filenameText,\n ]}\n >\n {item.file.name.slice(0, 12) + '...' + item.file.name.slice(lastIndexOfDot)}\n </Text>\n {indicatorType !== null && (\n <UnsupportedFileTypeOrFileSizeIndicator\n indicatorType={indicatorType}\n item={item}\n />\n )}\n </View>\n </View>\n </View>\n )}\n <TouchableOpacity\n onPress={() => {\n removeFile(item.id);\n }}\n style={[styles.dismiss, { backgroundColor: grey_gainsboro }, dismiss]}\n testID='remove-file-upload-preview'\n >\n <Close pathFill={grey_dark} />\n </TouchableOpacity>\n </UploadProgressIndicator>\n </>\n );\n };\n\n const fileUploadsLength = fileUploads.length;\n\n useEffect(() => {\n if (fileUploadsLength && flatListRef.current) {\n setTimeout(() => flatListRef.current?.scrollToEnd(), 1);\n }\n }, [fileUploadsLength]);\n\n return fileUploadsLength ? (\n <FlatList\n data={fileUploads}\n getItemLayout={(_, index) => ({\n index,\n length: FILE_PREVIEW_HEIGHT + 8,\n offset: (FILE_PREVIEW_HEIGHT + 8) * index,\n })}\n keyExtractor={(item) => `${item.id}`}\n onLayout={({\n nativeEvent: {\n layout: { width },\n },\n }) => {\n setFlatListWidth(width);\n }}\n ref={flatListRef}\n renderItem={renderItem}\n style={[styles.flatList, flatList]}\n />\n ) : null;\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: FileUploadPreviewPropsWithContext<StreamChatGenerics>,\n nextProps: FileUploadPreviewPropsWithContext<StreamChatGenerics>,\n) => {\n const { fileUploads: prevFileUploads } = prevProps;\n const { fileUploads: nextFileUploads } = nextProps;\n\n return (\n prevFileUploads.length === nextFileUploads.length &&\n prevFileUploads.every(\n (prevFileUpload, index) =>\n prevFileUpload.state === nextFileUploads[index].state &&\n prevFileUpload.paused === nextFileUploads[index].paused &&\n prevFileUpload.progress === nextFileUploads[index].progress &&\n prevFileUpload.duration === nextFileUploads[index].duration,\n )\n );\n};\n\nconst MemoizedFileUploadPreview = React.memo(\n FileUploadPreviewWithContext,\n areEqual,\n) as typeof FileUploadPreviewWithContext;\n\nexport type FileUploadPreviewProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<FileUploadPreviewPropsWithContext<StreamChatGenerics>>;\n\n/**\n * FileUploadPreview\n * UI Component to preview the files set for upload\n */\nexport const FileUploadPreview = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: FileUploadPreviewProps<StreamChatGenerics>,\n) => {\n const { enableOfflineSupport } = useChatContext<StreamChatGenerics>();\n const { fileUploads, removeFile, setFileUploads, uploadFile } =\n useMessageInputContext<StreamChatGenerics>();\n const { AudioAttachment, FileAttachmentIcon } = useMessagesContext<StreamChatGenerics>();\n\n return (\n <MemoizedFileUploadPreview\n {...{\n AudioAttachment,\n FileAttachmentIcon,\n fileUploads,\n removeFile,\n setFileUploads,\n uploadFile,\n }}\n {...{ enableOfflineSupport }}\n {...props}\n />\n );\n};\n\nFileUploadPreview.displayName = 'FileUploadPreview{messageInput{fileUploadPreview}}';\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_UploadProgressIndicator","_contexts","_MessageInputContext","_MessagesContext","_ThemeContext","_TranslationContext","_Close","_Warning","_native","_utils","_FileAttachment","_WritingDirectionAwareText","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","FILE_PREVIEW_HEIGHT","WARNING_ICON_SIZE","styles","StyleSheet","create","dismiss","borderRadius","height","position","right","top","width","fileContainer","borderWidth","flexDirection","justifyContent","marginBottom","paddingLeft","paddingRight","fileContentContainer","fileIcon","alignItems","alignSelf","filenameText","fontSize","fontWeight","paddingHorizontal","fileSizeText","fileTextContainer","flatList","maxHeight","overlay","marginLeft","marginRight","marginTop","unsupportedFile","unsupportedFileText","marginHorizontal","warningIconStyle","UnsupportedFileTypeOrFileSizeIndicator","_ref","indicatorType","item","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","accent_red","grey","grey_dark","messageInput","fileUploadPreview","_useTranslationContex","useTranslationContext","t","ProgressIndicatorTypes","NOT_SUPPORTED","createElement","View","style","__self","__source","fileName","lineNumber","columnNumber","Warning","pathFill","Text","color","WritingDirectionAwareText","file","duration","getFileSizeDisplayText","size","FileUploadPreviewWithContext","props","AudioAttachment","enableOfflineSupport","FileAttachmentIcon","fileUploads","removeFile","setFileUploads","uploadFile","flatListRef","useRef","_useState","useState","_useState2","_slicedToArray2","flatListWidth","setFlatListWidth","onLoad","index","prevFileUploads","map","fileUpload","_extends2","id","onProgress","currentTime","hasEnd","progress","onPlayPause","pausedStatus","paused","_useTheme2","_useTheme2$theme","_useTheme2$theme$colo","black","grey_gainsboro","grey_whisper","white","_useTheme2$theme$mess","audioAttachmentFileContainer","renderItem","_ref2","_item$file$mimeType","getIndicatorTypeForFileState","state","lastIndexOfDot","name","lastIndexOf","Fragment","UploadProgressIndicator","action","newFile","type","mimeType","startsWith","isAudioPackageAvailable","FileState","UPLOADED","length","backgroundColor","borderColor","testID","numberOfLines","I18nManager","isRTL","writingDirection","slice","TouchableOpacity","onPress","Close","fileUploadsLength","useEffect","current","setTimeout","_flatListRef$current","scrollToEnd","FlatList","data","getItemLayout","_","offset","keyExtractor","onLayout","_ref3","nativeEvent","layout","ref","areEqual","prevProps","nextProps","nextFileUploads","every","prevFileUpload","MemoizedFileUploadPreview","React","memo","FileUploadPreview","_useChatContext","useChatContext","_useMessageInputConte","useMessageInputContext","_useMessagesContext","useMessagesContext","exports","displayName"],"sources":["FileUploadPreview.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { FlatList, I18nManager, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport { UploadProgressIndicator } from './UploadProgressIndicator';\n\nimport { ChatContextValue, useChatContext } from '../../contexts';\nimport {\n FileUpload,\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../contexts/translationContext/TranslationContext';\nimport { Close } from '../../icons/Close';\nimport { Warning } from '../../icons/Warning';\nimport { isAudioPackageAvailable } from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { FileState, getIndicatorTypeForFileState, ProgressIndicatorTypes } from '../../utils/utils';\nimport { getFileSizeDisplayText } from '../Attachment/FileAttachment';\nimport { WritingDirectionAwareText } from '../RTLComponents/WritingDirectionAwareText';\n\nconst FILE_PREVIEW_HEIGHT = 60;\nconst WARNING_ICON_SIZE = 16;\n\nconst styles = StyleSheet.create({\n dismiss: {\n borderRadius: 24,\n height: 24,\n position: 'absolute',\n right: 8,\n top: 8,\n width: 24,\n },\n fileContainer: {\n borderRadius: 12,\n borderWidth: 1,\n flexDirection: 'row',\n height: FILE_PREVIEW_HEIGHT,\n justifyContent: 'space-between',\n marginBottom: 8,\n paddingLeft: 8,\n paddingRight: 8,\n },\n fileContentContainer: { flexDirection: 'row' },\n fileIcon: {\n alignItems: 'center',\n alignSelf: 'center',\n justifyContent: 'center',\n },\n filenameText: {\n fontSize: 14,\n fontWeight: 'bold',\n paddingHorizontal: 10,\n },\n fileSizeText: {\n fontSize: 12,\n paddingHorizontal: 10,\n },\n fileTextContainer: {\n height: '100%',\n justifyContent: 'space-around',\n },\n flatList: { marginBottom: 12, maxHeight: FILE_PREVIEW_HEIGHT * 2.5 + 16 },\n overlay: {\n borderRadius: 12,\n marginLeft: 8,\n marginRight: 8,\n marginTop: 2,\n },\n unsupportedFile: {\n flexDirection: 'row',\n paddingLeft: 10,\n },\n unsupportedFileText: {\n fontSize: 12,\n marginHorizontal: 4,\n },\n warningIconStyle: {\n borderRadius: 24,\n marginTop: 2,\n },\n});\n\nconst UnsupportedFileTypeOrFileSizeIndicator = ({\n indicatorType,\n item,\n}: {\n indicatorType: typeof ProgressIndicatorTypes[keyof typeof ProgressIndicatorTypes];\n item: FileUpload;\n}) => {\n const {\n theme: {\n colors: { accent_red, grey, grey_dark },\n messageInput: {\n fileUploadPreview: { fileSizeText },\n },\n },\n } = useTheme();\n\n const { t } = useTranslationContext();\n\n return indicatorType === ProgressIndicatorTypes.NOT_SUPPORTED ? (\n <View style={styles.unsupportedFile}>\n <Warning\n height={WARNING_ICON_SIZE}\n pathFill={accent_red}\n style={styles.warningIconStyle}\n width={WARNING_ICON_SIZE}\n />\n <Text style={[styles.unsupportedFileText, { color: grey_dark }]}>\n {t('File type not supported')}\n </Text>\n </View>\n ) : (\n <WritingDirectionAwareText style={[styles.fileSizeText, { color: grey }, fileSizeText]}>\n {item.file.duration || getFileSizeDisplayText(item.file.size)}\n </WritingDirectionAwareText>\n );\n};\n\ntype FileUploadPreviewPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n MessageInputContextValue<StreamChatGenerics>,\n 'fileUploads' | 'removeFile' | 'uploadFile' | 'setFileUploads'\n> &\n Pick<MessagesContextValue<StreamChatGenerics>, 'AudioAttachment' | 'FileAttachmentIcon'> &\n Pick<ChatContextValue<StreamChatGenerics>, 'enableOfflineSupport'>;\n\nconst FileUploadPreviewWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: FileUploadPreviewPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n AudioAttachment,\n enableOfflineSupport,\n FileAttachmentIcon,\n fileUploads,\n removeFile,\n setFileUploads,\n uploadFile,\n } = props;\n\n const flatListRef = useRef<FlatList<FileUpload> | null>(null);\n const [flatListWidth, setFlatListWidth] = useState(0);\n\n // Handler triggered when an audio is loaded in the message input. The initial state is defined for the audio here and the duration is set.\n const onLoad = (index: string, duration: number) => {\n setFileUploads((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => ({\n ...fileUpload,\n duration: fileUpload.id === index ? duration : fileUpload.duration,\n })),\n );\n };\n\n // The handler which is triggered when the audio progresses/ the thumb is dragged in the progress control. The progressed duration is set here.\n const onProgress = (index: string, currentTime?: number, hasEnd?: boolean) => {\n setFileUploads((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => ({\n ...fileUpload,\n progress:\n fileUpload.id === index\n ? hasEnd\n ? 1\n : currentTime\n ? currentTime / (fileUpload.duration as number)\n : 0\n : fileUpload.progress,\n })),\n );\n };\n\n // The handler which controls or sets the paused/played state of the audio.\n const onPlayPause = (index: string, pausedStatus?: boolean) => {\n if (pausedStatus === false) {\n // If the status is false we set the audio with the index as playing and the others as paused.\n setFileUploads((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => ({\n ...fileUpload,\n paused: fileUpload.id !== index,\n })),\n );\n } else {\n // If the status is true we simply set all the audio's paused state as true.\n setFileUploads((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => ({\n ...fileUpload,\n paused: true,\n })),\n );\n }\n };\n\n const {\n theme: {\n colors: { black, grey_dark, grey_gainsboro, grey_whisper, white },\n messageInput: {\n fileUploadPreview: {\n audioAttachmentFileContainer,\n dismiss,\n fileContainer,\n fileContentContainer,\n filenameText,\n fileTextContainer,\n flatList,\n },\n },\n },\n } = useTheme();\n\n const renderItem = ({ index, item }: { index: number; item: FileUpload }) => {\n const indicatorType = getIndicatorTypeForFileState(item.state, enableOfflineSupport);\n\n const lastIndexOfDot = item.file.name.lastIndexOf('.');\n\n return (\n <>\n <UploadProgressIndicator\n action={() => {\n uploadFile({ newFile: item });\n }}\n style={styles.overlay}\n type={indicatorType}\n >\n {item.file.mimeType?.startsWith('audio/') && isAudioPackageAvailable() ? (\n <View\n style={[\n { marginBottom: item.state === FileState.UPLOADED ? 8 : 0 },\n audioAttachmentFileContainer,\n ]}\n >\n <View\n style={[\n styles.fileContainer,\n index === fileUploads.length - 1\n ? {\n marginBottom: 0,\n }\n : {},\n {\n backgroundColor: white,\n borderColor: grey_whisper,\n width: -16,\n },\n fileContainer,\n ]}\n testID='audio-attachment-upload-preview'\n >\n <AudioAttachment\n item={item}\n onLoad={onLoad}\n onPlayPause={onPlayPause}\n onProgress={onProgress}\n testID='audio-attachment-upload-preview'\n />\n </View>\n </View>\n ) : (\n <View\n style={[\n styles.fileContainer,\n index === fileUploads.length - 1\n ? {\n marginBottom: 0,\n }\n : {},\n {\n borderColor: grey_whisper,\n width: flatListWidth - 16,\n },\n fileContainer,\n ]}\n >\n <View style={[styles.fileContentContainer, fileContentContainer]}>\n <View style={styles.fileIcon}>\n <FileAttachmentIcon mimeType={item.file.mimeType} />\n </View>\n <View style={[styles.fileTextContainer, fileTextContainer]}>\n <Text\n numberOfLines={1}\n style={[\n styles.filenameText,\n {\n color: black,\n width:\n flatListWidth -\n 16 - // 16 = horizontal padding\n 40 - // 40 = file icon size\n 24 - // 24 = close icon size\n 24, // 24 = internal padding\n },\n I18nManager.isRTL ? { writingDirection: 'rtl' } : { writingDirection: 'ltr' },\n filenameText,\n ]}\n >\n {item.file.name.slice(0, 12) + '...' + item.file.name.slice(lastIndexOfDot)}\n </Text>\n {indicatorType !== null && (\n <UnsupportedFileTypeOrFileSizeIndicator\n indicatorType={indicatorType}\n item={item}\n />\n )}\n </View>\n </View>\n </View>\n )}\n <TouchableOpacity\n onPress={() => {\n removeFile(item.id);\n }}\n style={[styles.dismiss, { backgroundColor: grey_gainsboro }, dismiss]}\n testID='remove-file-upload-preview'\n >\n <Close pathFill={grey_dark} />\n </TouchableOpacity>\n </UploadProgressIndicator>\n </>\n );\n };\n\n const fileUploadsLength = fileUploads.length;\n\n useEffect(() => {\n if (fileUploadsLength && flatListRef.current) {\n setTimeout(() => flatListRef.current?.scrollToEnd(), 1);\n }\n }, [fileUploadsLength]);\n\n return fileUploadsLength ? (\n <FlatList\n data={fileUploads}\n getItemLayout={(_, index) => ({\n index,\n length: FILE_PREVIEW_HEIGHT + 8,\n offset: (FILE_PREVIEW_HEIGHT + 8) * index,\n })}\n keyExtractor={(item) => `${item.id}`}\n onLayout={({\n nativeEvent: {\n layout: { width },\n },\n }) => {\n setFlatListWidth(width);\n }}\n ref={flatListRef}\n renderItem={renderItem}\n style={[styles.flatList, flatList]}\n />\n ) : null;\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: FileUploadPreviewPropsWithContext<StreamChatGenerics>,\n nextProps: FileUploadPreviewPropsWithContext<StreamChatGenerics>,\n) => {\n const { fileUploads: prevFileUploads } = prevProps;\n const { fileUploads: nextFileUploads } = nextProps;\n\n return (\n prevFileUploads.length === nextFileUploads.length &&\n prevFileUploads.every(\n (prevFileUpload, index) =>\n prevFileUpload.state === nextFileUploads[index].state &&\n prevFileUpload.paused === nextFileUploads[index].paused &&\n prevFileUpload.progress === nextFileUploads[index].progress &&\n prevFileUpload.duration === nextFileUploads[index].duration,\n )\n );\n};\n\nconst MemoizedFileUploadPreview = React.memo(\n FileUploadPreviewWithContext,\n areEqual,\n) as typeof FileUploadPreviewWithContext;\n\nexport type FileUploadPreviewProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<FileUploadPreviewPropsWithContext<StreamChatGenerics>>;\n\n/**\n * FileUploadPreview\n * UI Component to preview the files set for upload\n */\nexport const FileUploadPreview = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: FileUploadPreviewProps<StreamChatGenerics>,\n) => {\n const { enableOfflineSupport } = useChatContext<StreamChatGenerics>();\n const { fileUploads, removeFile, setFileUploads, uploadFile } =\n useMessageInputContext<StreamChatGenerics>();\n const { AudioAttachment, FileAttachmentIcon } = useMessagesContext<StreamChatGenerics>();\n\n return (\n <MemoizedFileUploadPreview\n {...{\n AudioAttachment,\n FileAttachmentIcon,\n fileUploads,\n removeFile,\n setFileUploads,\n uploadFile,\n }}\n {...{ enableOfflineSupport }}\n {...props}\n />\n );\n};\n\nFileUploadPreview.displayName = 'FileUploadPreview{messageInput{fileUploadPreview}}';\n"],"mappings":"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"}
@@ -310,9 +310,9 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
310
310
  setSelectedFiles(fileUploads.map(function (fileUpload) {
311
311
  return {
312
312
  duration: fileUpload.file.duration,
313
+ mimeType: fileUpload.file.mimeType,
313
314
  name: fileUpload.file.name,
314
315
  size: fileUpload.file.size,
315
- type: fileUpload.file.type,
316
316
  uri: fileUpload.file.uri
317
317
  };
318
318
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useCountdown2","_contexts","_AttachmentPickerContext","_ChannelContext","_MessageInputContext","_MessagesContext","_OwnCapabilitiesContext","_SuggestionsContext","_ThemeContext","_ThreadContext","_TranslationContext","_AttachmentSelectionBar","_AutoCompleteInput","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","from","test","arr","len","arr2","styles","StyleSheet","create","attachmentSeparator","borderBottomWidth","marginBottom","autoCompleteInputContainer","alignItems","flexDirection","paddingLeft","paddingRight","composerContainer","container","borderTopWidth","padding","inputBoxContainer","borderRadius","borderWidth","flex","optionsContainer","paddingBottom","replyContainer","paddingHorizontal","sendButtonContainer","suggestionsListContainer","elevation","left","position","right","shadowOffset","height","width","shadowOpacity","MessageInputWithContext","props","additionalTextInputProps","asyncIds","asyncUploads","AutoCompleteSuggestionList","closeAttachmentPicker","cooldownEndsAt","CooldownTimer","disabled","editing","FileUploadPreview","fileUploads","giphyActive","ImageUploadPreview","imageUploads","Input","inputBoxRef","InputButtons","InputEditingStateHeader","InputGiphySearch","InputReplyStateHeader","isOnline","isValidMessage","maxNumberOfFiles","members","mentionedUsers","numberOfUploads","quotedMessage","removeFile","removeImage","Reply","resetInput","SendButton","sending","sendMessageAsync","ShowThreadMessageInChannelButton","suggestions","thread","threadList","triggerType","uploadNewFile","uploadNewImage","watchers","_useState","useState","_useState2","_slicedToArray2","setHeight","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","border","grey_whisper","white","white_smoke","_useTheme$theme$messa","messageInput","attachmentSelectionBar","suggestionListContainer","_useAttachmentPickerC","useAttachmentPickerContext","attachmentPickerBottomSheetHeight","attachmentSelectionBarHeight","bottomInset","selectedFiles","selectedImages","selectedPicker","setMaxNumberOfFiles","setSelectedFiles","setSelectedImages","_useCountdown","useCountdown","cooldownRemainingSeconds","seconds","useEffect","_useState3","_useState4","hasResetImages","setHasResetImages","_useState5","_useState6","hasResetFiles","setHasResetFiles","selectedImagesLength","imageUploadsLength","selectedFilesLength","fileUploadsLength","imagesForInput","forEach","image","id","file","MEGA_BYTES_TO_BYTES","MAX_FILE_SIZE_TO_UPLOAD_IN_MB","uploadImagesHandler","imageToUpload","find","selectedImage","uploadedImage","imageUpload","uri","url","Number","fileSize","Alert","alert","filter","removeImagesHandler","imagesToRemove","fileToUpload","selectedFile","uploadedFile","fileUpload","size","filesToRemove","updatedSelectedImages","map","source","Boolean","updatedSelectedFiles","duration","type","editingExists","current","focus","asyncIdsString","join","asyncUploadsString","values","_ref","state","keys","getMembers","result","member","user","push","getUsers","users","concat","_toConsumableArray2","getWatchers","uniqueUsers","_iterator","_step","usersArray","apply","additionalTextInputContainerProps","_extends2","editable","undefined","createElement","Fragment","View","onLayout","_ref2","newHeight","nativeEvent","layout","style","backgroundColor","borderColor","__self","__source","fileName","lineNumber","columnNumber","paddingVertical","quoted_message","borderBottomColor","marginHorizontal","AutoCompleteInput","cooldownActive","bottom","active","data","onSelect","queryText","AttachmentSelectionBar","areEqual","prevProps","nextProps","prevAdditionalTextInputProps","prevAsyncUploads","prevDisabled","prevEditing","prevFileUploads","prevGiphyActive","prevImageUploads","prevIsOnline","prevIsValidMessage","prevMentionedUsers","prevQuotedMessage","prevSending","prevShowMoreOptions","showMoreOptions","prevSuggestions","prevT","t","prevThread","prevThreadList","nextAdditionalTextInputProps","nextAsyncUploads","nextDisabled","nextEditing","nextFileUploads","nextGiphyActive","nextImageUploads","nextIsOnline","nextIsValidMessage","nextMentionedUsers","nextQuotedMessage","nextSending","nextShowMoreOptions","nextSuggestions","nextT","nextThread","nextThreadList","tEqual","additionalTextInputPropsEven","disabledEqual","editingEqual","imageUploadsEqual","giphyActiveEqual","quotedMessageEqual","sendingEqual","showMoreOptionsEqual","isOnlineEqual","isValidMessageEqual","asyncUploadsEqual","every","fileUploadsEqual","mentionedUsersEqual","suggestionsEqual","_ref3","index","threadEqual","text","reply_count","threadListEqual","MemoizedMessageInput","React","memo","MessageInput","_useChatContext","useChatContext","ownCapabilities","useOwnCapabilitiesContext","_useChannelContext","useChannelContext","_useChannelContext$di","_useMessageInputConte","useMessageInputContext","clearEditingState","clearQuotedMessageState","SendMessageDisallowedIndicator","setGiphyActive","setShowMoreOptions","_useMessagesContext","useMessagesContext","_useSuggestionsContex","useSuggestionsContext","AutoCompleteSuggestionHeader","AutoCompleteSuggestionItem","_useThreadContext","useThreadContext","_useTranslationContex","useTranslationContext","sendMessage","exports","displayName"],"sources":["MessageInput.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { Alert, StyleSheet, View } from 'react-native';\n\nimport type { UserResponse } from 'stream-chat';\n\nimport { useCountdown } from './hooks/useCountdown';\n\nimport { ChatContextValue, useChatContext } from '../../contexts';\nimport { useAttachmentPickerContext } from '../../contexts/attachmentPickerContext/AttachmentPickerContext';\nimport {\n ChannelContextValue,\n useChannelContext,\n} from '../../contexts/channelContext/ChannelContext';\nimport {\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useOwnCapabilitiesContext } from '../../contexts/ownCapabilitiesContext/OwnCapabilitiesContext';\nimport {\n SuggestionsContextValue,\n useSuggestionsContext,\n} from '../../contexts/suggestionsContext/SuggestionsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { ThreadContextValue, useThreadContext } from '../../contexts/threadContext/ThreadContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\n\nimport type { Asset, DefaultStreamChatGenerics } from '../../types/types';\nimport { AttachmentSelectionBar } from '../AttachmentPicker/components/AttachmentSelectionBar';\nimport { AutoCompleteInput } from '../AutoCompleteInput/AutoCompleteInput';\n\nconst styles = StyleSheet.create({\n attachmentSeparator: {\n borderBottomWidth: 1,\n marginBottom: 10,\n },\n autoCompleteInputContainer: {\n alignItems: 'center',\n flexDirection: 'row',\n paddingLeft: 16,\n paddingRight: 16,\n },\n composerContainer: {\n alignItems: 'flex-end',\n flexDirection: 'row',\n },\n container: {\n borderTopWidth: 1,\n padding: 10,\n },\n inputBoxContainer: {\n borderRadius: 20,\n borderWidth: 1,\n flex: 1,\n },\n optionsContainer: {\n flexDirection: 'row',\n paddingBottom: 10,\n paddingRight: 10,\n },\n replyContainer: { paddingBottom: 12, paddingHorizontal: 8 },\n sendButtonContainer: { paddingBottom: 10, paddingLeft: 10 },\n suggestionsListContainer: {\n borderRadius: 10,\n elevation: 3,\n left: 8,\n position: 'absolute',\n right: 8,\n shadowOffset: { height: 1, width: 0 },\n shadowOpacity: 0.15,\n },\n});\n\ntype MessageInputPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChatContextValue<StreamChatGenerics>, 'isOnline'> &\n Pick<ChannelContextValue<StreamChatGenerics>, 'disabled' | 'members' | 'watchers'> &\n Pick<\n MessageInputContextValue<StreamChatGenerics>,\n | 'additionalTextInputProps'\n | 'asyncIds'\n | 'asyncUploads'\n | 'cooldownEndsAt'\n | 'CooldownTimer'\n | 'clearEditingState'\n | 'clearQuotedMessageState'\n | 'closeAttachmentPicker'\n | 'editing'\n | 'FileUploadPreview'\n | 'fileUploads'\n | 'giphyActive'\n | 'ImageUploadPreview'\n | 'imageUploads'\n | 'Input'\n | 'inputBoxRef'\n | 'InputButtons'\n | 'InputEditingStateHeader'\n | 'InputGiphySearch'\n | 'InputReplyStateHeader'\n | 'isValidMessage'\n | 'maxNumberOfFiles'\n | 'mentionedUsers'\n | 'numberOfUploads'\n | 'quotedMessage'\n | 'resetInput'\n | 'SendButton'\n | 'sending'\n | 'sendMessageAsync'\n | 'setShowMoreOptions'\n | 'setGiphyActive'\n | 'showMoreOptions'\n | 'ShowThreadMessageInChannelButton'\n | 'removeFile'\n | 'removeImage'\n | 'uploadNewFile'\n | 'uploadNewImage'\n > &\n Pick<MessagesContextValue<StreamChatGenerics>, 'Reply'> &\n Pick<\n SuggestionsContextValue<StreamChatGenerics>,\n | 'AutoCompleteSuggestionHeader'\n | 'AutoCompleteSuggestionItem'\n | 'AutoCompleteSuggestionList'\n | 'suggestions'\n | 'triggerType'\n > &\n Pick<ThreadContextValue<StreamChatGenerics>, 'thread'> &\n Pick<TranslationContextValue, 't'> & {\n threadList?: boolean;\n };\n\nconst MessageInputWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageInputPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTextInputProps,\n asyncIds,\n asyncUploads,\n AutoCompleteSuggestionList,\n closeAttachmentPicker,\n cooldownEndsAt,\n CooldownTimer,\n disabled,\n editing,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n ImageUploadPreview,\n imageUploads,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isOnline,\n isValidMessage,\n maxNumberOfFiles,\n members,\n mentionedUsers,\n numberOfUploads,\n quotedMessage,\n removeFile,\n removeImage,\n Reply,\n resetInput,\n SendButton,\n sending,\n sendMessageAsync,\n ShowThreadMessageInChannelButton,\n suggestions,\n thread,\n threadList,\n triggerType,\n uploadNewFile,\n uploadNewImage,\n watchers,\n } = props;\n\n const [height, setHeight] = useState(0);\n\n const {\n theme: {\n colors: { border, grey_whisper, white, white_smoke },\n messageInput: {\n attachmentSelectionBar,\n autoCompleteInputContainer,\n composerContainer,\n container,\n inputBoxContainer,\n optionsContainer,\n replyContainer,\n sendButtonContainer,\n suggestionsListContainer: { container: suggestionListContainer },\n },\n },\n } = useTheme();\n\n const {\n attachmentPickerBottomSheetHeight,\n attachmentSelectionBarHeight,\n bottomInset,\n selectedFiles,\n selectedImages,\n selectedPicker,\n setMaxNumberOfFiles,\n setSelectedFiles,\n setSelectedImages,\n } = useAttachmentPickerContext();\n\n const { seconds: cooldownRemainingSeconds } = useCountdown(cooldownEndsAt);\n\n /**\n * Mounting and un-mounting logic are un-related in following useEffect.\n * While mounting we want to pass maxNumberOfFiles (which is prop on Channel component)\n * to AttachmentPicker (on OverlayProvider)\n *\n * While un-mounting, we want to close the picker e.g., while navigating away.\n */\n useEffect(() => {\n setMaxNumberOfFiles(maxNumberOfFiles ?? 10);\n\n return closeAttachmentPicker;\n }, []);\n\n const [hasResetImages, setHasResetImages] = useState(false);\n const [hasResetFiles, setHasResetFiles] = useState(false);\n const selectedImagesLength = hasResetImages ? selectedImages.length : 0;\n const imageUploadsLength = hasResetImages ? imageUploads.length : 0;\n const selectedFilesLength = hasResetFiles ? selectedFiles.length : 0;\n const fileUploadsLength = hasResetFiles ? fileUploads.length : 0;\n const imagesForInput = (!!thread && !!threadList) || (!thread && !threadList);\n\n useEffect(() => {\n setSelectedImages([]);\n if (imageUploads.length) {\n imageUploads.forEach((image) => removeImage(image.id));\n }\n return () => setSelectedImages([]);\n }, []);\n\n useEffect(() => {\n setSelectedFiles([]);\n if (fileUploads.length) {\n fileUploads.forEach((file) => removeFile(file.id));\n }\n return () => setSelectedFiles([]);\n }, []);\n\n useEffect(() => {\n if (hasResetImages === false && imageUploadsLength === 0 && selectedImagesLength === 0) {\n setHasResetImages(true);\n }\n }, [imageUploadsLength, selectedImagesLength]);\n\n useEffect(() => {\n if (hasResetFiles === false && fileUploadsLength === 0 && selectedFilesLength === 0) {\n setHasResetFiles(true);\n }\n }, [fileUploadsLength, selectedFilesLength]);\n\n useEffect(() => {\n if (imagesForInput === false && imageUploads.length) {\n imageUploads.forEach((image) => removeImage(image.id));\n }\n }, [imagesForInput]);\n\n const MEGA_BYTES_TO_BYTES = 1024 * 1024;\n const MAX_FILE_SIZE_TO_UPLOAD_IN_MB = 100;\n\n const uploadImagesHandler = () => {\n const imageToUpload = selectedImages.find((selectedImage) => {\n const uploadedImage = imageUploads.find(\n (imageUpload) =>\n imageUpload.file.uri === selectedImage.uri || imageUpload.url === selectedImage.uri,\n );\n return !uploadedImage;\n });\n // Check if the file size of the image exceeds the threshold of 100MB\n if (\n imageToUpload &&\n Number(imageToUpload.fileSize) / MEGA_BYTES_TO_BYTES > MAX_FILE_SIZE_TO_UPLOAD_IN_MB\n ) {\n Alert.alert(\n `Maximum file size upload limit reached, please upload an image below ${MAX_FILE_SIZE_TO_UPLOAD_IN_MB}MB.`,\n );\n setSelectedImages(\n selectedImages.filter((selectedImage) => selectedImage.uri !== imageToUpload.uri),\n );\n } else {\n if (imageToUpload) uploadNewImage(imageToUpload);\n }\n };\n\n const removeImagesHandler = () => {\n const imagesToRemove = imageUploads.filter(\n (imageUpload) =>\n !selectedImages.find(\n (selectedImage) =>\n selectedImage.uri === imageUpload.file.uri || selectedImage.uri === imageUpload.url,\n ),\n );\n imagesToRemove.forEach((image) => removeImage(image.id));\n };\n\n useEffect(() => {\n if (imagesForInput) {\n if (selectedImagesLength > imageUploadsLength) {\n /** User selected an image in bottom sheet attachment picker */\n uploadImagesHandler();\n } else {\n /** User de-selected an image in bottom sheet attachment picker */\n removeImagesHandler();\n }\n }\n }, [selectedImagesLength]);\n\n useEffect(() => {\n if (selectedFilesLength > fileUploadsLength) {\n /** User selected a video in bottom sheet attachment picker */\n const fileToUpload = selectedFiles.find((selectedFile) => {\n const uploadedFile = fileUploads.find(\n (fileUpload) =>\n fileUpload.file.uri === selectedFile.uri || fileUpload.url === selectedFile.uri,\n );\n return !uploadedFile;\n });\n // Check if the file size exceeds the threshold of 100MB\n if (\n fileToUpload &&\n Number(fileToUpload.size) / MEGA_BYTES_TO_BYTES > MAX_FILE_SIZE_TO_UPLOAD_IN_MB\n ) {\n Alert.alert(\n `Maximum file size upload limit reached, please upload a file below ${MAX_FILE_SIZE_TO_UPLOAD_IN_MB}MB.`,\n );\n setSelectedFiles(\n selectedFiles.filter((selectedFile) => selectedFile.uri !== fileToUpload.uri),\n );\n } else {\n if (fileToUpload) uploadNewFile(fileToUpload);\n }\n } else {\n /** User de-selected a video in bottom sheet attachment picker */\n const filesToRemove = fileUploads.filter(\n (fileUpload) =>\n !selectedFiles.find(\n (selectedFile) =>\n selectedFile.uri === fileUpload.file.uri || selectedFile.uri === fileUpload.url,\n ),\n );\n filesToRemove.forEach((file) => removeFile(file.id));\n }\n }, [selectedFilesLength]);\n\n useEffect(() => {\n if (imagesForInput) {\n if (imageUploadsLength < selectedImagesLength) {\n /** User removed some image from seleted images within ImageUploadPreview. */\n const updatedSelectedImages = selectedImages.filter((selectedImage) => {\n const uploadedImage = imageUploads.find(\n (imageUpload) =>\n imageUpload.file.uri === selectedImage.uri || imageUpload.url === selectedImage.uri,\n );\n return uploadedImage;\n });\n setSelectedImages(updatedSelectedImages);\n } else if (imageUploadsLength > selectedImagesLength) {\n /**\n * User is editing some message which contains image attachments OR\n * image attachment is added from custom image picker (other than the default bottomsheet image picker)\n * using `uploadNewImage` function from `MessageInputContext`.\n **/\n setSelectedImages(\n imageUploads\n .map((imageUpload) => ({\n height: imageUpload.file.height,\n source: imageUpload.file.source,\n uri: imageUpload.url || imageUpload.file.uri,\n width: imageUpload.file.width,\n }))\n .filter(Boolean) as Asset[],\n );\n }\n }\n }, [imageUploadsLength]);\n\n useEffect(() => {\n if (fileUploadsLength < selectedFilesLength) {\n /** User removed some video from seleted files within ImageUploadPreview. */\n const updatedSelectedFiles = selectedFiles.filter((selectedFile) => {\n const uploadedFile = fileUploads.find(\n (fileUpload) =>\n fileUpload.file.uri === selectedFile.uri || fileUpload.url === selectedFile.uri,\n );\n return uploadedFile;\n });\n setSelectedFiles(updatedSelectedFiles);\n } else if (fileUploadsLength > selectedFilesLength) {\n /**\n * User is editing some message which contains video attachments OR\n * video attachment is added from custom image picker (other than the default bottomsheet image picker)\n * using `uploadNewFile` function from `MessageInputContext`.\n **/\n setSelectedFiles(\n fileUploads.map((fileUpload) => ({\n duration: fileUpload.file.duration,\n name: fileUpload.file.name,\n size: fileUpload.file.size,\n type: fileUpload.file.type,\n uri: fileUpload.file.uri,\n })),\n );\n }\n }, [fileUploadsLength]);\n\n const editingExists = !!editing;\n useEffect(() => {\n if (editing && inputBoxRef.current) {\n inputBoxRef.current.focus();\n }\n\n /**\n * Make sure to test `initialValue` functionality, if you are modifying following condition.\n *\n * We have the following condition, to make sure - when user comes out of \"editing message\" state,\n * we wipe out all the state around message input such as text, mentioned users, image uploads etc.\n * But it also means, this condition will be fired up on first render, which may result in clearing\n * the initial value set on input box, through the prop - `initialValue`.\n * This prop generally gets used for the case of draft message functionality.\n */\n if (\n !editing &&\n (giphyActive ||\n fileUploads.length > 0 ||\n mentionedUsers.length > 0 ||\n imageUploads.length > 0 ||\n numberOfUploads > 0)\n ) {\n resetInput();\n }\n }, [editingExists]);\n\n const asyncIdsString = asyncIds.join();\n const asyncUploadsString = Object.values(asyncUploads)\n .map(({ state, url }) => `${state}${url}`)\n .join();\n useEffect(() => {\n if (Object.keys(asyncUploads).length) {\n /**\n * When successful image upload response occurs after hitting send,\n * send a follow up message with the image\n */\n sending.current = true;\n asyncIds.forEach((id) => sendMessageAsync(id));\n sending.current = false;\n }\n }, [asyncIdsString, asyncUploadsString, sendMessageAsync]);\n\n const getMembers = () => {\n const result: UserResponse<StreamChatGenerics>[] = [];\n if (members && Object.values(members).length) {\n Object.values(members).forEach((member) => {\n if (member.user) {\n result.push(member.user);\n }\n });\n }\n\n return result;\n };\n\n const getUsers = () => {\n const users = [...getMembers(), ...getWatchers()];\n\n // make sure we don't list users twice\n const uniqueUsers: { [key: string]: UserResponse<StreamChatGenerics> } = {};\n for (const user of users) {\n if (user && !uniqueUsers[user.id]) {\n uniqueUsers[user.id] = user;\n }\n }\n const usersArray = Object.values(uniqueUsers);\n\n return usersArray;\n };\n\n const getWatchers = () => {\n const result: UserResponse<StreamChatGenerics>[] = [];\n if (watchers && Object.values(watchers).length) {\n result.push(...Object.values(watchers));\n }\n\n return result;\n };\n\n const additionalTextInputContainerProps = {\n editable: disabled ? false : undefined,\n ...additionalTextInputProps,\n };\n\n return (\n <>\n <View\n onLayout={({\n nativeEvent: {\n layout: { height: newHeight },\n },\n }) => setHeight(newHeight)}\n style={[styles.container, { backgroundColor: white, borderColor: border }, container]}\n >\n {editing && <InputEditingStateHeader />}\n {quotedMessage && <InputReplyStateHeader />}\n <View style={[styles.composerContainer, composerContainer]}>\n {Input ? (\n <Input\n additionalTextInputProps={additionalTextInputContainerProps}\n getUsers={getUsers}\n />\n ) : (\n <>\n <View style={[styles.optionsContainer, optionsContainer]}>\n {InputButtons && <InputButtons />}\n </View>\n <View\n style={[\n styles.inputBoxContainer,\n {\n borderColor: grey_whisper,\n paddingVertical: giphyActive ? 8 : 12,\n },\n inputBoxContainer,\n ]}\n >\n {((typeof editing !== 'boolean' && editing?.quoted_message) || quotedMessage) && (\n <View style={[styles.replyContainer, replyContainer]}>\n <Reply />\n </View>\n )}\n {imageUploads.length ? <ImageUploadPreview /> : null}\n {imageUploads.length && fileUploads.length ? (\n <View\n style={[\n styles.attachmentSeparator,\n {\n borderBottomColor: grey_whisper,\n marginHorizontal: giphyActive ? 8 : 12,\n },\n ]}\n />\n ) : null}\n {fileUploads.length ? <FileUploadPreview /> : null}\n {giphyActive ? (\n <InputGiphySearch disabled={!isOnline} />\n ) : (\n <View style={[styles.autoCompleteInputContainer, autoCompleteInputContainer]}>\n <AutoCompleteInput<StreamChatGenerics>\n additionalTextInputProps={additionalTextInputProps}\n cooldownActive={!!cooldownRemainingSeconds}\n />\n </View>\n )}\n </View>\n <View style={[styles.sendButtonContainer, sendButtonContainer]}>\n {cooldownRemainingSeconds ? (\n <CooldownTimer seconds={cooldownRemainingSeconds} />\n ) : (\n <SendButton\n disabled={\n disabled || sending.current || !isValidMessage() || (giphyActive && !isOnline)\n }\n />\n )}\n </View>\n </>\n )}\n </View>\n <ShowThreadMessageInChannelButton threadList={threadList} />\n </View>\n\n {triggerType && suggestions ? (\n <View\n style={[\n suggestionListContainer,\n styles.suggestionsListContainer,\n { backgroundColor: white, bottom: height },\n ]}\n >\n <AutoCompleteSuggestionList\n active={!!suggestions}\n data={suggestions.data}\n onSelect={suggestions.onSelect}\n queryText={suggestions.queryText}\n triggerType={triggerType}\n />\n </View>\n ) : null}\n {selectedPicker && (\n <View\n style={[\n {\n backgroundColor: white_smoke,\n height:\n (attachmentPickerBottomSheetHeight\n ? attachmentPickerBottomSheetHeight + (attachmentSelectionBarHeight ?? 52)\n : 360) - bottomInset,\n },\n attachmentSelectionBar,\n ]}\n >\n <AttachmentSelectionBar />\n </View>\n )}\n </>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: MessageInputPropsWithContext<StreamChatGenerics>,\n nextProps: MessageInputPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTextInputProps: prevAdditionalTextInputProps,\n asyncUploads: prevAsyncUploads,\n disabled: prevDisabled,\n editing: prevEditing,\n fileUploads: prevFileUploads,\n giphyActive: prevGiphyActive,\n imageUploads: prevImageUploads,\n isOnline: prevIsOnline,\n isValidMessage: prevIsValidMessage,\n mentionedUsers: prevMentionedUsers,\n quotedMessage: prevQuotedMessage,\n sending: prevSending,\n showMoreOptions: prevShowMoreOptions,\n suggestions: prevSuggestions,\n t: prevT,\n thread: prevThread,\n threadList: prevThreadList,\n } = prevProps;\n const {\n additionalTextInputProps: nextAdditionalTextInputProps,\n asyncUploads: nextAsyncUploads,\n disabled: nextDisabled,\n editing: nextEditing,\n fileUploads: nextFileUploads,\n giphyActive: nextGiphyActive,\n imageUploads: nextImageUploads,\n isOnline: nextIsOnline,\n isValidMessage: nextIsValidMessage,\n mentionedUsers: nextMentionedUsers,\n quotedMessage: nextQuotedMessage,\n sending: nextSending,\n showMoreOptions: nextShowMoreOptions,\n suggestions: nextSuggestions,\n t: nextT,\n thread: nextThread,\n threadList: nextThreadList,\n } = nextProps;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const additionalTextInputPropsEven =\n prevAdditionalTextInputProps === nextAdditionalTextInputProps;\n if (!additionalTextInputPropsEven) return false;\n\n const disabledEqual = prevDisabled === nextDisabled;\n if (!disabledEqual) return false;\n\n const editingEqual = !!prevEditing === !!nextEditing;\n if (!editingEqual) return false;\n\n const imageUploadsEqual = prevImageUploads.length === nextImageUploads.length;\n if (!imageUploadsEqual) return false;\n\n const giphyActiveEqual = prevGiphyActive === nextGiphyActive;\n if (!giphyActiveEqual) return false;\n\n const quotedMessageEqual =\n !!prevQuotedMessage &&\n !!nextQuotedMessage &&\n typeof prevQuotedMessage !== 'boolean' &&\n typeof nextQuotedMessage !== 'boolean'\n ? prevQuotedMessage.id === nextQuotedMessage.id\n : !!prevQuotedMessage === !!nextQuotedMessage;\n if (!quotedMessageEqual) return false;\n\n const sendingEqual = prevSending.current === nextSending.current;\n if (!sendingEqual) return false;\n\n const showMoreOptionsEqual = prevShowMoreOptions === nextShowMoreOptions;\n if (!showMoreOptionsEqual) return false;\n\n const isOnlineEqual = prevIsOnline === nextIsOnline;\n if (!isOnlineEqual) return false;\n\n const isValidMessageEqual = prevIsValidMessage() === nextIsValidMessage();\n if (!isValidMessageEqual) return false;\n\n const asyncUploadsEqual = Object.keys(prevAsyncUploads).every(\n (key) =>\n prevAsyncUploads[key].state === nextAsyncUploads[key].state &&\n prevAsyncUploads[key].url === nextAsyncUploads[key].url,\n );\n if (!asyncUploadsEqual) return false;\n\n const fileUploadsEqual = prevFileUploads.length === nextFileUploads.length;\n if (!fileUploadsEqual) return false;\n\n const mentionedUsersEqual = prevMentionedUsers.length === nextMentionedUsers.length;\n if (!mentionedUsersEqual) return false;\n\n const suggestionsEqual =\n !!prevSuggestions?.data && !!nextSuggestions?.data\n ? prevSuggestions.data.length === nextSuggestions.data.length &&\n prevSuggestions.data.every(({ name }, index) => name === nextSuggestions.data[index].name)\n : !!prevSuggestions === !!nextSuggestions;\n if (!suggestionsEqual) return false;\n\n const threadEqual =\n prevThread?.id === nextThread?.id &&\n prevThread?.text === nextThread?.text &&\n prevThread?.reply_count === nextThread?.reply_count;\n if (!threadEqual) return false;\n\n const threadListEqual = prevThreadList === nextThreadList;\n if (!threadListEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageInput = React.memo(\n MessageInputWithContext,\n areEqual,\n) as typeof MessageInputWithContext;\n\nexport type MessageInputProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<MessageInputPropsWithContext<StreamChatGenerics>>;\n\n/**\n * UI Component for message input\n * It's a consumer of\n * [Channel Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/channel-context/),\n * [Chat Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/chat-context/),\n * [MessageInput Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/message-input-context/),\n * [Suggestions Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/suggestions-context/), and\n * [Translation Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/translation-context/)\n */\nexport const MessageInput = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageInputProps<StreamChatGenerics>,\n) => {\n const { isOnline } = useChatContext();\n const ownCapabilities = useOwnCapabilitiesContext();\n\n const { disabled = false, members, watchers } = useChannelContext<StreamChatGenerics>();\n\n const {\n additionalTextInputProps,\n asyncIds,\n asyncUploads,\n clearEditingState,\n clearQuotedMessageState,\n closeAttachmentPicker,\n cooldownEndsAt,\n CooldownTimer,\n editing,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n ImageUploadPreview,\n imageUploads,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isValidMessage,\n maxNumberOfFiles,\n mentionedUsers,\n numberOfUploads,\n quotedMessage,\n removeFile,\n removeImage,\n resetInput,\n SendButton,\n sending,\n sendMessageAsync,\n SendMessageDisallowedIndicator,\n setGiphyActive,\n setShowMoreOptions,\n showMoreOptions,\n ShowThreadMessageInChannelButton,\n uploadNewFile,\n uploadNewImage,\n } = useMessageInputContext<StreamChatGenerics>();\n\n const { Reply } = useMessagesContext<StreamChatGenerics>();\n\n const {\n AutoCompleteSuggestionHeader,\n AutoCompleteSuggestionItem,\n AutoCompleteSuggestionList,\n suggestions,\n triggerType,\n } = useSuggestionsContext<StreamChatGenerics>();\n\n const { thread } = useThreadContext<StreamChatGenerics>();\n\n const { t } = useTranslationContext();\n\n if (!ownCapabilities.sendMessage && SendMessageDisallowedIndicator) {\n return <SendMessageDisallowedIndicator />;\n }\n\n return (\n <MemoizedMessageInput\n {...{\n additionalTextInputProps,\n asyncIds,\n asyncUploads,\n AutoCompleteSuggestionHeader,\n AutoCompleteSuggestionItem,\n AutoCompleteSuggestionList,\n clearEditingState,\n clearQuotedMessageState,\n closeAttachmentPicker,\n cooldownEndsAt,\n CooldownTimer,\n disabled,\n editing,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n ImageUploadPreview,\n imageUploads,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isOnline,\n isValidMessage,\n maxNumberOfFiles,\n members,\n mentionedUsers,\n numberOfUploads,\n quotedMessage,\n removeFile,\n removeImage,\n Reply,\n resetInput,\n SendButton,\n sending,\n sendMessageAsync,\n setGiphyActive,\n setShowMoreOptions,\n showMoreOptions,\n ShowThreadMessageInChannelButton,\n suggestions,\n t,\n thread,\n triggerType,\n uploadNewFile,\n uploadNewImage,\n watchers,\n }}\n {...props}\n />\n );\n};\n\nMessageInput.displayName = 'MessageInput{messageInput}';\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useCountdown2","_contexts","_AttachmentPickerContext","_ChannelContext","_MessageInputContext","_MessagesContext","_OwnCapabilitiesContext","_SuggestionsContext","_ThemeContext","_ThreadContext","_TranslationContext","_AttachmentSelectionBar","_AutoCompleteInput","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","from","test","arr","len","arr2","styles","StyleSheet","create","attachmentSeparator","borderBottomWidth","marginBottom","autoCompleteInputContainer","alignItems","flexDirection","paddingLeft","paddingRight","composerContainer","container","borderTopWidth","padding","inputBoxContainer","borderRadius","borderWidth","flex","optionsContainer","paddingBottom","replyContainer","paddingHorizontal","sendButtonContainer","suggestionsListContainer","elevation","left","position","right","shadowOffset","height","width","shadowOpacity","MessageInputWithContext","props","additionalTextInputProps","asyncIds","asyncUploads","AutoCompleteSuggestionList","closeAttachmentPicker","cooldownEndsAt","CooldownTimer","disabled","editing","FileUploadPreview","fileUploads","giphyActive","ImageUploadPreview","imageUploads","Input","inputBoxRef","InputButtons","InputEditingStateHeader","InputGiphySearch","InputReplyStateHeader","isOnline","isValidMessage","maxNumberOfFiles","members","mentionedUsers","numberOfUploads","quotedMessage","removeFile","removeImage","Reply","resetInput","SendButton","sending","sendMessageAsync","ShowThreadMessageInChannelButton","suggestions","thread","threadList","triggerType","uploadNewFile","uploadNewImage","watchers","_useState","useState","_useState2","_slicedToArray2","setHeight","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","border","grey_whisper","white","white_smoke","_useTheme$theme$messa","messageInput","attachmentSelectionBar","suggestionListContainer","_useAttachmentPickerC","useAttachmentPickerContext","attachmentPickerBottomSheetHeight","attachmentSelectionBarHeight","bottomInset","selectedFiles","selectedImages","selectedPicker","setMaxNumberOfFiles","setSelectedFiles","setSelectedImages","_useCountdown","useCountdown","cooldownRemainingSeconds","seconds","useEffect","_useState3","_useState4","hasResetImages","setHasResetImages","_useState5","_useState6","hasResetFiles","setHasResetFiles","selectedImagesLength","imageUploadsLength","selectedFilesLength","fileUploadsLength","imagesForInput","forEach","image","id","file","MEGA_BYTES_TO_BYTES","MAX_FILE_SIZE_TO_UPLOAD_IN_MB","uploadImagesHandler","imageToUpload","find","selectedImage","uploadedImage","imageUpload","uri","url","Number","fileSize","Alert","alert","filter","removeImagesHandler","imagesToRemove","fileToUpload","selectedFile","uploadedFile","fileUpload","size","filesToRemove","updatedSelectedImages","map","source","Boolean","updatedSelectedFiles","duration","mimeType","editingExists","current","focus","asyncIdsString","join","asyncUploadsString","values","_ref","state","keys","getMembers","result","member","user","push","getUsers","users","concat","_toConsumableArray2","getWatchers","uniqueUsers","_iterator","_step","usersArray","apply","additionalTextInputContainerProps","_extends2","editable","undefined","createElement","Fragment","View","onLayout","_ref2","newHeight","nativeEvent","layout","style","backgroundColor","borderColor","__self","__source","fileName","lineNumber","columnNumber","paddingVertical","quoted_message","borderBottomColor","marginHorizontal","AutoCompleteInput","cooldownActive","bottom","active","data","onSelect","queryText","AttachmentSelectionBar","areEqual","prevProps","nextProps","prevAdditionalTextInputProps","prevAsyncUploads","prevDisabled","prevEditing","prevFileUploads","prevGiphyActive","prevImageUploads","prevIsOnline","prevIsValidMessage","prevMentionedUsers","prevQuotedMessage","prevSending","prevShowMoreOptions","showMoreOptions","prevSuggestions","prevT","t","prevThread","prevThreadList","nextAdditionalTextInputProps","nextAsyncUploads","nextDisabled","nextEditing","nextFileUploads","nextGiphyActive","nextImageUploads","nextIsOnline","nextIsValidMessage","nextMentionedUsers","nextQuotedMessage","nextSending","nextShowMoreOptions","nextSuggestions","nextT","nextThread","nextThreadList","tEqual","additionalTextInputPropsEven","disabledEqual","editingEqual","imageUploadsEqual","giphyActiveEqual","quotedMessageEqual","sendingEqual","showMoreOptionsEqual","isOnlineEqual","isValidMessageEqual","asyncUploadsEqual","every","fileUploadsEqual","mentionedUsersEqual","suggestionsEqual","_ref3","index","threadEqual","text","reply_count","threadListEqual","MemoizedMessageInput","React","memo","MessageInput","_useChatContext","useChatContext","ownCapabilities","useOwnCapabilitiesContext","_useChannelContext","useChannelContext","_useChannelContext$di","_useMessageInputConte","useMessageInputContext","clearEditingState","clearQuotedMessageState","SendMessageDisallowedIndicator","setGiphyActive","setShowMoreOptions","_useMessagesContext","useMessagesContext","_useSuggestionsContex","useSuggestionsContext","AutoCompleteSuggestionHeader","AutoCompleteSuggestionItem","_useThreadContext","useThreadContext","_useTranslationContex","useTranslationContext","sendMessage","exports","displayName"],"sources":["MessageInput.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { Alert, StyleSheet, View } from 'react-native';\n\nimport type { UserResponse } from 'stream-chat';\n\nimport { useCountdown } from './hooks/useCountdown';\n\nimport { ChatContextValue, useChatContext } from '../../contexts';\nimport { useAttachmentPickerContext } from '../../contexts/attachmentPickerContext/AttachmentPickerContext';\nimport {\n ChannelContextValue,\n useChannelContext,\n} from '../../contexts/channelContext/ChannelContext';\nimport {\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useOwnCapabilitiesContext } from '../../contexts/ownCapabilitiesContext/OwnCapabilitiesContext';\nimport {\n SuggestionsContextValue,\n useSuggestionsContext,\n} from '../../contexts/suggestionsContext/SuggestionsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { ThreadContextValue, useThreadContext } from '../../contexts/threadContext/ThreadContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\n\nimport type { Asset, DefaultStreamChatGenerics } from '../../types/types';\nimport { AttachmentSelectionBar } from '../AttachmentPicker/components/AttachmentSelectionBar';\nimport { AutoCompleteInput } from '../AutoCompleteInput/AutoCompleteInput';\n\nconst styles = StyleSheet.create({\n attachmentSeparator: {\n borderBottomWidth: 1,\n marginBottom: 10,\n },\n autoCompleteInputContainer: {\n alignItems: 'center',\n flexDirection: 'row',\n paddingLeft: 16,\n paddingRight: 16,\n },\n composerContainer: {\n alignItems: 'flex-end',\n flexDirection: 'row',\n },\n container: {\n borderTopWidth: 1,\n padding: 10,\n },\n inputBoxContainer: {\n borderRadius: 20,\n borderWidth: 1,\n flex: 1,\n },\n optionsContainer: {\n flexDirection: 'row',\n paddingBottom: 10,\n paddingRight: 10,\n },\n replyContainer: { paddingBottom: 12, paddingHorizontal: 8 },\n sendButtonContainer: { paddingBottom: 10, paddingLeft: 10 },\n suggestionsListContainer: {\n borderRadius: 10,\n elevation: 3,\n left: 8,\n position: 'absolute',\n right: 8,\n shadowOffset: { height: 1, width: 0 },\n shadowOpacity: 0.15,\n },\n});\n\ntype MessageInputPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChatContextValue<StreamChatGenerics>, 'isOnline'> &\n Pick<ChannelContextValue<StreamChatGenerics>, 'disabled' | 'members' | 'watchers'> &\n Pick<\n MessageInputContextValue<StreamChatGenerics>,\n | 'additionalTextInputProps'\n | 'asyncIds'\n | 'asyncUploads'\n | 'cooldownEndsAt'\n | 'CooldownTimer'\n | 'clearEditingState'\n | 'clearQuotedMessageState'\n | 'closeAttachmentPicker'\n | 'editing'\n | 'FileUploadPreview'\n | 'fileUploads'\n | 'giphyActive'\n | 'ImageUploadPreview'\n | 'imageUploads'\n | 'Input'\n | 'inputBoxRef'\n | 'InputButtons'\n | 'InputEditingStateHeader'\n | 'InputGiphySearch'\n | 'InputReplyStateHeader'\n | 'isValidMessage'\n | 'maxNumberOfFiles'\n | 'mentionedUsers'\n | 'numberOfUploads'\n | 'quotedMessage'\n | 'resetInput'\n | 'SendButton'\n | 'sending'\n | 'sendMessageAsync'\n | 'setShowMoreOptions'\n | 'setGiphyActive'\n | 'showMoreOptions'\n | 'ShowThreadMessageInChannelButton'\n | 'removeFile'\n | 'removeImage'\n | 'uploadNewFile'\n | 'uploadNewImage'\n > &\n Pick<MessagesContextValue<StreamChatGenerics>, 'Reply'> &\n Pick<\n SuggestionsContextValue<StreamChatGenerics>,\n | 'AutoCompleteSuggestionHeader'\n | 'AutoCompleteSuggestionItem'\n | 'AutoCompleteSuggestionList'\n | 'suggestions'\n | 'triggerType'\n > &\n Pick<ThreadContextValue<StreamChatGenerics>, 'thread'> &\n Pick<TranslationContextValue, 't'> & {\n threadList?: boolean;\n };\n\nconst MessageInputWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageInputPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTextInputProps,\n asyncIds,\n asyncUploads,\n AutoCompleteSuggestionList,\n closeAttachmentPicker,\n cooldownEndsAt,\n CooldownTimer,\n disabled,\n editing,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n ImageUploadPreview,\n imageUploads,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isOnline,\n isValidMessage,\n maxNumberOfFiles,\n members,\n mentionedUsers,\n numberOfUploads,\n quotedMessage,\n removeFile,\n removeImage,\n Reply,\n resetInput,\n SendButton,\n sending,\n sendMessageAsync,\n ShowThreadMessageInChannelButton,\n suggestions,\n thread,\n threadList,\n triggerType,\n uploadNewFile,\n uploadNewImage,\n watchers,\n } = props;\n\n const [height, setHeight] = useState(0);\n\n const {\n theme: {\n colors: { border, grey_whisper, white, white_smoke },\n messageInput: {\n attachmentSelectionBar,\n autoCompleteInputContainer,\n composerContainer,\n container,\n inputBoxContainer,\n optionsContainer,\n replyContainer,\n sendButtonContainer,\n suggestionsListContainer: { container: suggestionListContainer },\n },\n },\n } = useTheme();\n\n const {\n attachmentPickerBottomSheetHeight,\n attachmentSelectionBarHeight,\n bottomInset,\n selectedFiles,\n selectedImages,\n selectedPicker,\n setMaxNumberOfFiles,\n setSelectedFiles,\n setSelectedImages,\n } = useAttachmentPickerContext();\n\n const { seconds: cooldownRemainingSeconds } = useCountdown(cooldownEndsAt);\n\n /**\n * Mounting and un-mounting logic are un-related in following useEffect.\n * While mounting we want to pass maxNumberOfFiles (which is prop on Channel component)\n * to AttachmentPicker (on OverlayProvider)\n *\n * While un-mounting, we want to close the picker e.g., while navigating away.\n */\n useEffect(() => {\n setMaxNumberOfFiles(maxNumberOfFiles ?? 10);\n\n return closeAttachmentPicker;\n }, []);\n\n const [hasResetImages, setHasResetImages] = useState(false);\n const [hasResetFiles, setHasResetFiles] = useState(false);\n const selectedImagesLength = hasResetImages ? selectedImages.length : 0;\n const imageUploadsLength = hasResetImages ? imageUploads.length : 0;\n const selectedFilesLength = hasResetFiles ? selectedFiles.length : 0;\n const fileUploadsLength = hasResetFiles ? fileUploads.length : 0;\n const imagesForInput = (!!thread && !!threadList) || (!thread && !threadList);\n\n useEffect(() => {\n setSelectedImages([]);\n if (imageUploads.length) {\n imageUploads.forEach((image) => removeImage(image.id));\n }\n return () => setSelectedImages([]);\n }, []);\n\n useEffect(() => {\n setSelectedFiles([]);\n if (fileUploads.length) {\n fileUploads.forEach((file) => removeFile(file.id));\n }\n return () => setSelectedFiles([]);\n }, []);\n\n useEffect(() => {\n if (hasResetImages === false && imageUploadsLength === 0 && selectedImagesLength === 0) {\n setHasResetImages(true);\n }\n }, [imageUploadsLength, selectedImagesLength]);\n\n useEffect(() => {\n if (hasResetFiles === false && fileUploadsLength === 0 && selectedFilesLength === 0) {\n setHasResetFiles(true);\n }\n }, [fileUploadsLength, selectedFilesLength]);\n\n useEffect(() => {\n if (imagesForInput === false && imageUploads.length) {\n imageUploads.forEach((image) => removeImage(image.id));\n }\n }, [imagesForInput]);\n\n const MEGA_BYTES_TO_BYTES = 1024 * 1024;\n const MAX_FILE_SIZE_TO_UPLOAD_IN_MB = 100;\n\n const uploadImagesHandler = () => {\n const imageToUpload = selectedImages.find((selectedImage) => {\n const uploadedImage = imageUploads.find(\n (imageUpload) =>\n imageUpload.file.uri === selectedImage.uri || imageUpload.url === selectedImage.uri,\n );\n return !uploadedImage;\n });\n // Check if the file size of the image exceeds the threshold of 100MB\n if (\n imageToUpload &&\n Number(imageToUpload.fileSize) / MEGA_BYTES_TO_BYTES > MAX_FILE_SIZE_TO_UPLOAD_IN_MB\n ) {\n Alert.alert(\n `Maximum file size upload limit reached, please upload an image below ${MAX_FILE_SIZE_TO_UPLOAD_IN_MB}MB.`,\n );\n setSelectedImages(\n selectedImages.filter((selectedImage) => selectedImage.uri !== imageToUpload.uri),\n );\n } else {\n if (imageToUpload) uploadNewImage(imageToUpload);\n }\n };\n\n const removeImagesHandler = () => {\n const imagesToRemove = imageUploads.filter(\n (imageUpload) =>\n !selectedImages.find(\n (selectedImage) =>\n selectedImage.uri === imageUpload.file.uri || selectedImage.uri === imageUpload.url,\n ),\n );\n imagesToRemove.forEach((image) => removeImage(image.id));\n };\n\n useEffect(() => {\n if (imagesForInput) {\n if (selectedImagesLength > imageUploadsLength) {\n /** User selected an image in bottom sheet attachment picker */\n uploadImagesHandler();\n } else {\n /** User de-selected an image in bottom sheet attachment picker */\n removeImagesHandler();\n }\n }\n }, [selectedImagesLength]);\n\n useEffect(() => {\n if (selectedFilesLength > fileUploadsLength) {\n /** User selected a video in bottom sheet attachment picker */\n const fileToUpload = selectedFiles.find((selectedFile) => {\n const uploadedFile = fileUploads.find(\n (fileUpload) =>\n fileUpload.file.uri === selectedFile.uri || fileUpload.url === selectedFile.uri,\n );\n return !uploadedFile;\n });\n // Check if the file size exceeds the threshold of 100MB\n if (\n fileToUpload &&\n Number(fileToUpload.size) / MEGA_BYTES_TO_BYTES > MAX_FILE_SIZE_TO_UPLOAD_IN_MB\n ) {\n Alert.alert(\n `Maximum file size upload limit reached, please upload a file below ${MAX_FILE_SIZE_TO_UPLOAD_IN_MB}MB.`,\n );\n setSelectedFiles(\n selectedFiles.filter((selectedFile) => selectedFile.uri !== fileToUpload.uri),\n );\n } else {\n if (fileToUpload) uploadNewFile(fileToUpload);\n }\n } else {\n /** User de-selected a video in bottom sheet attachment picker */\n const filesToRemove = fileUploads.filter(\n (fileUpload) =>\n !selectedFiles.find(\n (selectedFile) =>\n selectedFile.uri === fileUpload.file.uri || selectedFile.uri === fileUpload.url,\n ),\n );\n filesToRemove.forEach((file) => removeFile(file.id));\n }\n }, [selectedFilesLength]);\n\n useEffect(() => {\n if (imagesForInput) {\n if (imageUploadsLength < selectedImagesLength) {\n /** User removed some image from seleted images within ImageUploadPreview. */\n const updatedSelectedImages = selectedImages.filter((selectedImage) => {\n const uploadedImage = imageUploads.find(\n (imageUpload) =>\n imageUpload.file.uri === selectedImage.uri || imageUpload.url === selectedImage.uri,\n );\n return uploadedImage;\n });\n setSelectedImages(updatedSelectedImages);\n } else if (imageUploadsLength > selectedImagesLength) {\n /**\n * User is editing some message which contains image attachments OR\n * image attachment is added from custom image picker (other than the default bottomsheet image picker)\n * using `uploadNewImage` function from `MessageInputContext`.\n **/\n setSelectedImages(\n imageUploads\n .map((imageUpload) => ({\n height: imageUpload.file.height,\n source: imageUpload.file.source,\n uri: imageUpload.url || imageUpload.file.uri,\n width: imageUpload.file.width,\n }))\n .filter(Boolean) as Asset[],\n );\n }\n }\n }, [imageUploadsLength]);\n\n useEffect(() => {\n if (fileUploadsLength < selectedFilesLength) {\n /** User removed some video from seleted files within ImageUploadPreview. */\n const updatedSelectedFiles = selectedFiles.filter((selectedFile) => {\n const uploadedFile = fileUploads.find(\n (fileUpload) =>\n fileUpload.file.uri === selectedFile.uri || fileUpload.url === selectedFile.uri,\n );\n return uploadedFile;\n });\n setSelectedFiles(updatedSelectedFiles);\n } else if (fileUploadsLength > selectedFilesLength) {\n /**\n * User is editing some message which contains video attachments OR\n * video attachment is added from custom image picker (other than the default bottom-sheet image picker)\n * using `uploadNewFile` function from `MessageInputContext`.\n **/\n setSelectedFiles(\n fileUploads.map((fileUpload) => ({\n duration: fileUpload.file.duration,\n mimeType: fileUpload.file.mimeType,\n name: fileUpload.file.name,\n size: fileUpload.file.size,\n uri: fileUpload.file.uri,\n })),\n );\n }\n }, [fileUploadsLength]);\n\n const editingExists = !!editing;\n useEffect(() => {\n if (editing && inputBoxRef.current) {\n inputBoxRef.current.focus();\n }\n\n /**\n * Make sure to test `initialValue` functionality, if you are modifying following condition.\n *\n * We have the following condition, to make sure - when user comes out of \"editing message\" state,\n * we wipe out all the state around message input such as text, mentioned users, image uploads etc.\n * But it also means, this condition will be fired up on first render, which may result in clearing\n * the initial value set on input box, through the prop - `initialValue`.\n * This prop generally gets used for the case of draft message functionality.\n */\n if (\n !editing &&\n (giphyActive ||\n fileUploads.length > 0 ||\n mentionedUsers.length > 0 ||\n imageUploads.length > 0 ||\n numberOfUploads > 0)\n ) {\n resetInput();\n }\n }, [editingExists]);\n\n const asyncIdsString = asyncIds.join();\n const asyncUploadsString = Object.values(asyncUploads)\n .map(({ state, url }) => `${state}${url}`)\n .join();\n useEffect(() => {\n if (Object.keys(asyncUploads).length) {\n /**\n * When successful image upload response occurs after hitting send,\n * send a follow up message with the image\n */\n sending.current = true;\n asyncIds.forEach((id) => sendMessageAsync(id));\n sending.current = false;\n }\n }, [asyncIdsString, asyncUploadsString, sendMessageAsync]);\n\n const getMembers = () => {\n const result: UserResponse<StreamChatGenerics>[] = [];\n if (members && Object.values(members).length) {\n Object.values(members).forEach((member) => {\n if (member.user) {\n result.push(member.user);\n }\n });\n }\n\n return result;\n };\n\n const getUsers = () => {\n const users = [...getMembers(), ...getWatchers()];\n\n // make sure we don't list users twice\n const uniqueUsers: { [key: string]: UserResponse<StreamChatGenerics> } = {};\n for (const user of users) {\n if (user && !uniqueUsers[user.id]) {\n uniqueUsers[user.id] = user;\n }\n }\n const usersArray = Object.values(uniqueUsers);\n\n return usersArray;\n };\n\n const getWatchers = () => {\n const result: UserResponse<StreamChatGenerics>[] = [];\n if (watchers && Object.values(watchers).length) {\n result.push(...Object.values(watchers));\n }\n\n return result;\n };\n\n const additionalTextInputContainerProps = {\n editable: disabled ? false : undefined,\n ...additionalTextInputProps,\n };\n\n return (\n <>\n <View\n onLayout={({\n nativeEvent: {\n layout: { height: newHeight },\n },\n }) => setHeight(newHeight)}\n style={[styles.container, { backgroundColor: white, borderColor: border }, container]}\n >\n {editing && <InputEditingStateHeader />}\n {quotedMessage && <InputReplyStateHeader />}\n <View style={[styles.composerContainer, composerContainer]}>\n {Input ? (\n <Input\n additionalTextInputProps={additionalTextInputContainerProps}\n getUsers={getUsers}\n />\n ) : (\n <>\n <View style={[styles.optionsContainer, optionsContainer]}>\n {InputButtons && <InputButtons />}\n </View>\n <View\n style={[\n styles.inputBoxContainer,\n {\n borderColor: grey_whisper,\n paddingVertical: giphyActive ? 8 : 12,\n },\n inputBoxContainer,\n ]}\n >\n {((typeof editing !== 'boolean' && editing?.quoted_message) || quotedMessage) && (\n <View style={[styles.replyContainer, replyContainer]}>\n <Reply />\n </View>\n )}\n {imageUploads.length ? <ImageUploadPreview /> : null}\n {imageUploads.length && fileUploads.length ? (\n <View\n style={[\n styles.attachmentSeparator,\n {\n borderBottomColor: grey_whisper,\n marginHorizontal: giphyActive ? 8 : 12,\n },\n ]}\n />\n ) : null}\n {fileUploads.length ? <FileUploadPreview /> : null}\n {giphyActive ? (\n <InputGiphySearch disabled={!isOnline} />\n ) : (\n <View style={[styles.autoCompleteInputContainer, autoCompleteInputContainer]}>\n <AutoCompleteInput<StreamChatGenerics>\n additionalTextInputProps={additionalTextInputProps}\n cooldownActive={!!cooldownRemainingSeconds}\n />\n </View>\n )}\n </View>\n <View style={[styles.sendButtonContainer, sendButtonContainer]}>\n {cooldownRemainingSeconds ? (\n <CooldownTimer seconds={cooldownRemainingSeconds} />\n ) : (\n <SendButton\n disabled={\n disabled || sending.current || !isValidMessage() || (giphyActive && !isOnline)\n }\n />\n )}\n </View>\n </>\n )}\n </View>\n <ShowThreadMessageInChannelButton threadList={threadList} />\n </View>\n\n {triggerType && suggestions ? (\n <View\n style={[\n suggestionListContainer,\n styles.suggestionsListContainer,\n { backgroundColor: white, bottom: height },\n ]}\n >\n <AutoCompleteSuggestionList\n active={!!suggestions}\n data={suggestions.data}\n onSelect={suggestions.onSelect}\n queryText={suggestions.queryText}\n triggerType={triggerType}\n />\n </View>\n ) : null}\n {selectedPicker && (\n <View\n style={[\n {\n backgroundColor: white_smoke,\n height:\n (attachmentPickerBottomSheetHeight\n ? attachmentPickerBottomSheetHeight + (attachmentSelectionBarHeight ?? 52)\n : 360) - bottomInset,\n },\n attachmentSelectionBar,\n ]}\n >\n <AttachmentSelectionBar />\n </View>\n )}\n </>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: MessageInputPropsWithContext<StreamChatGenerics>,\n nextProps: MessageInputPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTextInputProps: prevAdditionalTextInputProps,\n asyncUploads: prevAsyncUploads,\n disabled: prevDisabled,\n editing: prevEditing,\n fileUploads: prevFileUploads,\n giphyActive: prevGiphyActive,\n imageUploads: prevImageUploads,\n isOnline: prevIsOnline,\n isValidMessage: prevIsValidMessage,\n mentionedUsers: prevMentionedUsers,\n quotedMessage: prevQuotedMessage,\n sending: prevSending,\n showMoreOptions: prevShowMoreOptions,\n suggestions: prevSuggestions,\n t: prevT,\n thread: prevThread,\n threadList: prevThreadList,\n } = prevProps;\n const {\n additionalTextInputProps: nextAdditionalTextInputProps,\n asyncUploads: nextAsyncUploads,\n disabled: nextDisabled,\n editing: nextEditing,\n fileUploads: nextFileUploads,\n giphyActive: nextGiphyActive,\n imageUploads: nextImageUploads,\n isOnline: nextIsOnline,\n isValidMessage: nextIsValidMessage,\n mentionedUsers: nextMentionedUsers,\n quotedMessage: nextQuotedMessage,\n sending: nextSending,\n showMoreOptions: nextShowMoreOptions,\n suggestions: nextSuggestions,\n t: nextT,\n thread: nextThread,\n threadList: nextThreadList,\n } = nextProps;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const additionalTextInputPropsEven =\n prevAdditionalTextInputProps === nextAdditionalTextInputProps;\n if (!additionalTextInputPropsEven) return false;\n\n const disabledEqual = prevDisabled === nextDisabled;\n if (!disabledEqual) return false;\n\n const editingEqual = !!prevEditing === !!nextEditing;\n if (!editingEqual) return false;\n\n const imageUploadsEqual = prevImageUploads.length === nextImageUploads.length;\n if (!imageUploadsEqual) return false;\n\n const giphyActiveEqual = prevGiphyActive === nextGiphyActive;\n if (!giphyActiveEqual) return false;\n\n const quotedMessageEqual =\n !!prevQuotedMessage &&\n !!nextQuotedMessage &&\n typeof prevQuotedMessage !== 'boolean' &&\n typeof nextQuotedMessage !== 'boolean'\n ? prevQuotedMessage.id === nextQuotedMessage.id\n : !!prevQuotedMessage === !!nextQuotedMessage;\n if (!quotedMessageEqual) return false;\n\n const sendingEqual = prevSending.current === nextSending.current;\n if (!sendingEqual) return false;\n\n const showMoreOptionsEqual = prevShowMoreOptions === nextShowMoreOptions;\n if (!showMoreOptionsEqual) return false;\n\n const isOnlineEqual = prevIsOnline === nextIsOnline;\n if (!isOnlineEqual) return false;\n\n const isValidMessageEqual = prevIsValidMessage() === nextIsValidMessage();\n if (!isValidMessageEqual) return false;\n\n const asyncUploadsEqual = Object.keys(prevAsyncUploads).every(\n (key) =>\n prevAsyncUploads[key].state === nextAsyncUploads[key].state &&\n prevAsyncUploads[key].url === nextAsyncUploads[key].url,\n );\n if (!asyncUploadsEqual) return false;\n\n const fileUploadsEqual = prevFileUploads.length === nextFileUploads.length;\n if (!fileUploadsEqual) return false;\n\n const mentionedUsersEqual = prevMentionedUsers.length === nextMentionedUsers.length;\n if (!mentionedUsersEqual) return false;\n\n const suggestionsEqual =\n !!prevSuggestions?.data && !!nextSuggestions?.data\n ? prevSuggestions.data.length === nextSuggestions.data.length &&\n prevSuggestions.data.every(({ name }, index) => name === nextSuggestions.data[index].name)\n : !!prevSuggestions === !!nextSuggestions;\n if (!suggestionsEqual) return false;\n\n const threadEqual =\n prevThread?.id === nextThread?.id &&\n prevThread?.text === nextThread?.text &&\n prevThread?.reply_count === nextThread?.reply_count;\n if (!threadEqual) return false;\n\n const threadListEqual = prevThreadList === nextThreadList;\n if (!threadListEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageInput = React.memo(\n MessageInputWithContext,\n areEqual,\n) as typeof MessageInputWithContext;\n\nexport type MessageInputProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<MessageInputPropsWithContext<StreamChatGenerics>>;\n\n/**\n * UI Component for message input\n * It's a consumer of\n * [Channel Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/channel-context/),\n * [Chat Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/chat-context/),\n * [MessageInput Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/message-input-context/),\n * [Suggestions Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/suggestions-context/), and\n * [Translation Context](https://getstream.io/chat/docs/sdk/reactnative/contexts/translation-context/)\n */\nexport const MessageInput = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: MessageInputProps<StreamChatGenerics>,\n) => {\n const { isOnline } = useChatContext();\n const ownCapabilities = useOwnCapabilitiesContext();\n\n const { disabled = false, members, watchers } = useChannelContext<StreamChatGenerics>();\n\n const {\n additionalTextInputProps,\n asyncIds,\n asyncUploads,\n clearEditingState,\n clearQuotedMessageState,\n closeAttachmentPicker,\n cooldownEndsAt,\n CooldownTimer,\n editing,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n ImageUploadPreview,\n imageUploads,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isValidMessage,\n maxNumberOfFiles,\n mentionedUsers,\n numberOfUploads,\n quotedMessage,\n removeFile,\n removeImage,\n resetInput,\n SendButton,\n sending,\n sendMessageAsync,\n SendMessageDisallowedIndicator,\n setGiphyActive,\n setShowMoreOptions,\n showMoreOptions,\n ShowThreadMessageInChannelButton,\n uploadNewFile,\n uploadNewImage,\n } = useMessageInputContext<StreamChatGenerics>();\n\n const { Reply } = useMessagesContext<StreamChatGenerics>();\n\n const {\n AutoCompleteSuggestionHeader,\n AutoCompleteSuggestionItem,\n AutoCompleteSuggestionList,\n suggestions,\n triggerType,\n } = useSuggestionsContext<StreamChatGenerics>();\n\n const { thread } = useThreadContext<StreamChatGenerics>();\n\n const { t } = useTranslationContext();\n\n if (!ownCapabilities.sendMessage && SendMessageDisallowedIndicator) {\n return <SendMessageDisallowedIndicator />;\n }\n\n return (\n <MemoizedMessageInput\n {...{\n additionalTextInputProps,\n asyncIds,\n asyncUploads,\n AutoCompleteSuggestionHeader,\n AutoCompleteSuggestionItem,\n AutoCompleteSuggestionList,\n clearEditingState,\n clearQuotedMessageState,\n closeAttachmentPicker,\n cooldownEndsAt,\n CooldownTimer,\n disabled,\n editing,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n ImageUploadPreview,\n imageUploads,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isOnline,\n isValidMessage,\n maxNumberOfFiles,\n members,\n mentionedUsers,\n numberOfUploads,\n quotedMessage,\n removeFile,\n removeImage,\n Reply,\n resetInput,\n SendButton,\n sending,\n sendMessageAsync,\n setGiphyActive,\n setShowMoreOptions,\n showMoreOptions,\n ShowThreadMessageInChannelButton,\n suggestions,\n t,\n thread,\n triggerType,\n uploadNewFile,\n uploadNewImage,\n watchers,\n }}\n {...props}\n />\n );\n};\n\nMessageInput.displayName = 'MessageInput{messageInput}';\n"],"mappings":"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"}