stream-chat-react-native-core 5.22.0-beta.9 → 5.22.1-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/lib/commonjs/components/Attachment/AudioAttachment.js +12 -12
  2. package/lib/commonjs/components/Attachment/AudioAttachment.js.map +1 -1
  3. package/lib/commonjs/components/Channel/Channel.js +65 -46
  4. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  5. package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js +2 -0
  6. package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
  7. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js +2 -2
  8. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  9. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +19 -19
  10. package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
  11. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +13 -13
  12. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
  13. package/lib/commonjs/contexts/channelContext/ChannelContext.js +2 -2
  14. package/lib/commonjs/contexts/channelContext/ChannelContext.js.map +1 -1
  15. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +61 -40
  16. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  17. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +2 -2
  18. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  19. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  20. package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
  21. package/lib/commonjs/i18n/en.json +1 -1
  22. package/lib/commonjs/i18n/fr.json +48 -48
  23. package/lib/commonjs/i18n/hi.json +48 -48
  24. package/lib/commonjs/i18n/it.json +48 -48
  25. package/lib/commonjs/i18n/nl.json +48 -48
  26. package/lib/commonjs/i18n/ru.json +48 -48
  27. package/lib/commonjs/i18n/tr.json +48 -48
  28. package/lib/commonjs/types/types.js.map +1 -1
  29. package/lib/commonjs/utils/compressImage.js +37 -0
  30. package/lib/commonjs/utils/compressImage.js.map +1 -0
  31. package/lib/commonjs/version.json +1 -1
  32. package/lib/module/components/Attachment/AudioAttachment.js +12 -12
  33. package/lib/module/components/Attachment/AudioAttachment.js.map +1 -1
  34. package/lib/module/components/Channel/Channel.js +65 -46
  35. package/lib/module/components/Channel/Channel.js.map +1 -1
  36. package/lib/module/components/Channel/hooks/useCreateChannelContext.js +2 -0
  37. package/lib/module/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
  38. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js +2 -2
  39. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  40. package/lib/module/components/MessageInput/FileUploadPreview.js +19 -19
  41. package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
  42. package/lib/module/components/MessageInput/ImageUploadPreview.js +13 -13
  43. package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
  44. package/lib/module/contexts/channelContext/ChannelContext.js +2 -2
  45. package/lib/module/contexts/channelContext/ChannelContext.js.map +1 -1
  46. package/lib/module/contexts/messageInputContext/MessageInputContext.js +61 -40
  47. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  48. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +2 -2
  49. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  50. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  51. package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
  52. package/lib/module/i18n/en.json +1 -1
  53. package/lib/module/i18n/fr.json +48 -48
  54. package/lib/module/i18n/hi.json +48 -48
  55. package/lib/module/i18n/it.json +48 -48
  56. package/lib/module/i18n/nl.json +48 -48
  57. package/lib/module/i18n/ru.json +48 -48
  58. package/lib/module/i18n/tr.json +48 -48
  59. package/lib/module/types/types.js.map +1 -1
  60. package/lib/module/utils/compressImage.js +37 -0
  61. package/lib/module/utils/compressImage.js.map +1 -0
  62. package/lib/module/version.json +1 -1
  63. package/lib/typescript/components/Attachment/AudioAttachment.d.ts +1 -1
  64. package/lib/typescript/components/Channel/hooks/useCreateChannelContext.d.ts +1 -1
  65. package/lib/typescript/components/Message/hooks/useMessageActionHandlers.d.ts +1 -1
  66. package/lib/typescript/components/Message/hooks/useMessageActions.d.ts +1 -1
  67. package/lib/typescript/contexts/channelContext/ChannelContext.d.ts +5 -0
  68. package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +3 -23
  69. package/lib/typescript/contexts/messageInputContext/hooks/useMessageDetailsForState.d.ts +2 -2
  70. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +2 -2
  71. package/lib/typescript/i18n/en.json +1 -1
  72. package/lib/typescript/i18n/fr.json +48 -48
  73. package/lib/typescript/i18n/hi.json +48 -48
  74. package/lib/typescript/i18n/it.json +48 -48
  75. package/lib/typescript/i18n/nl.json +48 -48
  76. package/lib/typescript/i18n/ru.json +48 -48
  77. package/lib/typescript/i18n/tr.json +48 -48
  78. package/lib/typescript/types/types.d.ts +20 -0
  79. package/lib/typescript/utils/compressImage.d.ts +8 -0
  80. package/package.json +2 -2
  81. package/src/components/Attachment/AudioAttachment.tsx +2 -1
  82. package/src/components/Channel/Channel.tsx +32 -8
  83. package/src/components/Channel/hooks/useCreateChannelContext.ts +2 -0
  84. package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +2 -9
  85. package/src/components/MessageInput/FileUploadPreview.tsx +1 -2
  86. package/src/components/MessageInput/ImageUploadPreview.tsx +1 -2
  87. package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewExpo.test.tsx +1 -1
  88. package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewNative.test.tsx +1 -1
  89. package/src/contexts/channelContext/ChannelContext.tsx +5 -0
  90. package/src/contexts/messageInputContext/MessageInputContext.tsx +80 -68
  91. package/src/contexts/messageInputContext/__tests__/__snapshots__/sendMessage.test.tsx.snap +3 -3
  92. package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +2 -2
  93. package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +2 -2
  94. package/src/contexts/messagesContext/MessagesContext.tsx +2 -2
  95. package/src/i18n/en.json +1 -1
  96. package/src/i18n/fr.json +48 -48
  97. package/src/i18n/hi.json +48 -48
  98. package/src/i18n/it.json +48 -48
  99. package/src/i18n/nl.json +48 -48
  100. package/src/i18n/ru.json +48 -48
  101. package/src/i18n/tr.json +48 -48
  102. package/src/types/types.ts +23 -0
  103. package/src/utils/compressImage.ts +32 -0
  104. package/src/version.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_uniq","_interopRequireDefault","_mimeTypes","_streamChat","_useCreateMessageInputContext","_useMessageDetailsForState","_useCooldown2","_native","_removeReservedFields","_utils","_AttachmentPickerContext","_ChannelContext","_ChatContext","_OwnCapabilitiesContext","_ThreadContext","_TranslationContext","_defaultBaseContextValue","_getDisplayName","_isTestEnvironment","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof3","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","MessageInputContext","React","createContext","DEFAULT_BASE_CONTEXT_VALUE","exports","MessageInputProvider","_ref","_getFileUploadConfig","_getFileUploadConfig2","_getImageUploadConfig","_getImageUploadConfig2","children","_useAttachmentPickerC","useAttachmentPickerContext","closePicker","openPicker","selectedPicker","setSelectedPicker","_useChatContext","useChatContext","appSettings","client","enableOfflineSupport","getFileUploadConfig","_appSettings$app","fileConfig","app","file_upload_config","undefined","blockedFileExtensionTypes","blocked_file_extensions","blockedFileMimeTypes","blocked_mime_types","getImageUploadConfig","_appSettings$app2","imageConfig","image_upload_config","blockedImageExtensionTypes","blockedImageMimeTypes","channelCapabities","useOwnCapabilitiesContext","_useChannelContext","useChannelContext","channel","giphyEnabled","_useThreadContext","useThreadContext","thread","_useTranslationContex","useTranslationContext","t","inputBoxRef","useRef","sending","_useState","useState","_useState2","_slicedToArray2","asyncIds","setAsyncIds","_useState3","_useState4","asyncUploads","setAsyncUploads","_useState5","_useState6","giphyActive","setGiphyActive","_useState7","_useState8","sendThreadMessageInChannel","setSendThreadMessageInChannel","editing","hasFilePicker","hasImagePicker","initialValue","_useMessageDetailsFor","useMessageDetailsForState","fileUploads","imageUploads","mentionedUsers","numberOfUploads","setFileUploads","setImageUploads","setMentionedUsers","setNumberOfUploads","setShowMoreOptions","setText","showMoreOptions","text","_useCooldown","useCooldown","cooldownEndsAt","endsAt","startCooldown","start","threadId","id","useEffect","appendText","newText","prevText","isValidMessage","trim","imagesAndFiles","concat","_toConsumableArray2","_iterator","_step","file","state","FileState","NOT_SUPPORTED","_iterator2","_step2","UPLOAD_FAILED","UPLOADING","onChange","current","sendTypingEvents","logChatPromiseExecution","keystroke","onChangeText","openCommandsPicker","focus","openMentionsPicker","openAttachmentPicker","Keyboard","dismiss","pickFile","closeAttachmentPicker","toggleAttachmentPicker","onSelectItem","item","prevMentionedUsers","_ref2","_asyncToGenerator2","_regenerator","mark","_callee","result","MEGA_BYTES_TO_BYTES","MAX_FILE_SIZE_TO_UPLOAD_IN_MB","totalFileSize","wrap","_callee$","_context","prev","pickDocument","console","log","abrupt","maxNumberOfFiles","Alert","alert","sent","cancelled","assets","reduce","acc","asset","Number","size","forEach","uploadNewFile","stop","apply","arguments","removeFile","some","prevFileUploads","filter","prevNumberOfUploads","removeImage","image","prevImageUploads","resetInput","pendingAttachments","mapImageUploadToAttachment","mime_type","lookup","fallback","image_url","url","original_height","height","original_width","width","originalFile","type","mapFileUploadToAttachment","_file$file$mimeType","_file$file$mimeType2","_file$file$mimeType3","mimeType","startsWith","asset_url","uri","duration","file_size","title","thumb_url","sendMessage","_ref3","_callee3","attachments","_loop","_iterator3","_step3","_image","_ret","_iterator4","_step4","_file3","updatedMessage","updateMessagePromise","_callee3$","_context3","sendLinks","match","urlRegex","clear","_callee2","_callee2$","_context2","v","push","sendImageAsync","prevAsyncIds","UPLOADED","FINISHED","delegateYield","t0","_typeof2","isEditingBoolean","_extends2","mentioned_users","quoted_message","clearEditingState","editMessage","removeReservedFields","then","uniq","parent_id","quoted_message_id","quotedMessage","show_in_channel","clearQuotedMessageState","_error","setQuotedMessageState","sendMessageAsync","splice","indexOf","prevAsyncUploads","setInputBoxRef","ref","setInputRef","getTriggerSettings","triggerSettings","autoCompleteTriggerSettings","onMentionSelectItem","ACITriggerSettings","updateMessage","_ref4","_callee4","_callee4$","_context4","regexCondition","getUploadSetStateAction","fileState","extraData","prevUploads","map","prevUpload","handleFileOrImageUploadError","error","isImageError","Error","message","uploadFile","_ref6","_callee5","_ref5","newFile","response","_callee5$","_context5","doDocUploadRequest","sendFile","_x","uploadImage","_ref8","_callee6","_ref7","newImage","_ref9","_file$name","compressedUri","filename","contentType","newImageUploads","_callee6$","_context6","source","compressImageQuality","compressImage","replace","doImageUploadRequest","sendImage","res","includes","keys","_x2","_ref10","_callee7","isBlockedFileExtension","isBlockedFileMimeType","_callee7$","_context7","generateRandomId","fileExtensionType","_file$name2","_file$name3","paused","progress","Promise","all","_x3","uploadNewImage","_ref11","_callee8","isBlockedImageMimeType","isBlockedImageExtension","imageState","_callee8$","_context8","_image$uri","imageExtensionType","_image$uri2","_x4","messageInputContext","useCreateMessageInputContext","openFilePicker","createElement","Provider","__self","__source","fileName","lineNumber","columnNumber","useMessageInputContext","contextValue","useContext","isTestEnvironment","withMessageInputContext","Component","WithMessageInputContextComponent","props","displayName","getDisplayName"],"sources":["MessageInputContext.tsx"],"sourcesContent":["import type { LegacyRef } from 'react';\nimport React, { PropsWithChildren, useContext, useEffect, useRef, useState } from 'react';\nimport type { TextInput, TextInputProps } from 'react-native';\nimport { Alert, Keyboard } from 'react-native';\n\nimport uniq from 'lodash/uniq';\nimport { lookup } from 'mime-types';\nimport {\n Attachment,\n logChatPromiseExecution,\n SendFileAPIResponse,\n StreamChat,\n Message as StreamMessage,\n UserFilters,\n UserOptions,\n UserResponse,\n UserSort,\n} from 'stream-chat';\n\nimport { useCreateMessageInputContext } from './hooks/useCreateMessageInputContext';\nimport { isEditingBoolean, useMessageDetailsForState } from './hooks/useMessageDetailsForState';\n\nimport type { AttachButtonProps } from '../../components/MessageInput/AttachButton';\nimport type { CommandsButtonProps } from '../../components/MessageInput/CommandsButton';\nimport type { InputEditingStateHeaderProps } from '../../components/MessageInput/components/InputEditingStateHeader';\nimport type { InputGiphySearchProps } from '../../components/MessageInput/components/InputGiphySearch';\nimport type { InputReplyStateHeaderProps } from '../../components/MessageInput/components/InputReplyStateHeader';\nimport type { CooldownTimerProps } from '../../components/MessageInput/CooldownTimer';\nimport type { FileUploadPreviewProps } from '../../components/MessageInput/FileUploadPreview';\nimport { useCooldown } from '../../components/MessageInput/hooks/useCooldown';\nimport type { ImageUploadPreviewProps } from '../../components/MessageInput/ImageUploadPreview';\nimport type { InputButtonsProps } from '../../components/MessageInput/InputButtons';\nimport type { MessageInputProps } from '../../components/MessageInput/MessageInput';\nimport type { MoreOptionsButtonProps } from '../../components/MessageInput/MoreOptionsButton';\nimport type { SendButtonProps } from '../../components/MessageInput/SendButton';\nimport type { UploadProgressIndicatorProps } from '../../components/MessageInput/UploadProgressIndicator';\nimport type { MessageType } from '../../components/MessageList/hooks/useMessageList';\nimport { compressImage, pickDocument } from '../../native';\nimport type { Asset, DefaultStreamChatGenerics, File, UnknownType } from '../../types/types';\nimport { removeReservedFields } from '../../utils/removeReservedFields';\nimport {\n ACITriggerSettings,\n ACITriggerSettingsParams,\n FileState,\n FileStateValue,\n generateRandomId,\n TriggerSettings,\n urlRegex,\n} from '../../utils/utils';\nimport { useAttachmentPickerContext } from '../attachmentPickerContext/AttachmentPickerContext';\nimport { ChannelContextValue, useChannelContext } from '../channelContext/ChannelContext';\nimport { useChatContext } from '../chatContext/ChatContext';\nimport { useOwnCapabilitiesContext } from '../ownCapabilitiesContext/OwnCapabilitiesContext';\nimport { useThreadContext } from '../threadContext/ThreadContext';\nimport { useTranslationContext } from '../translationContext/TranslationContext';\nimport { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';\n\nimport { getDisplayName } from '../utils/getDisplayName';\nimport { isTestEnvironment } from '../utils/isTestEnvironment';\n\nexport type FileUpload = {\n file: File;\n id: string;\n state: FileStateValue;\n duration?: number;\n paused?: boolean;\n progress?: number;\n thumb_url?: string;\n url?: string;\n};\n\nexport type ImageUpload = {\n file: Partial<Asset> & {\n name?: string;\n };\n id: string;\n state: FileStateValue;\n height?: number;\n url?: string;\n width?: number;\n};\n\nexport type MentionAllAppUsersQuery<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n filters?: UserFilters<StreamChatGenerics>;\n options?: UserOptions;\n sort?: UserSort<StreamChatGenerics>;\n};\n\nexport type LocalMessageInputContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n appendText: (newText: string) => void;\n asyncIds: string[];\n asyncUploads: {\n [key: string]: {\n state: string;\n url: string;\n };\n };\n closeAttachmentPicker: () => void;\n /** The time at which the active cooldown will end */\n cooldownEndsAt: Date;\n /**\n * An array of file objects which are set for upload. It has the following structure:\n *\n * ```json\n * [\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_1\",\n * \"state\": \"uploading\" // or \"finished\",\n * \"url\": \"https://url1.com\",\n * },\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_2\",\n * \"state\": \"uploading\" // or \"finished\",\n * \"url\": \"https://url1.com\",\n * },\n * ]\n * ```\n *\n */\n fileUploads: FileUpload[];\n giphyActive: boolean;\n /**\n * An array of image objects which are set for upload. It has the following structure:\n *\n * ```json\n * [\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_1\",\n * \"state\": \"uploading\" // or \"finished\",\n * },\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_2\",\n * \"state\": \"uploading\" // or \"finished\",\n * },\n * ]\n * ```\n *\n */\n imageUploads: ImageUpload[];\n inputBoxRef: React.MutableRefObject<TextInput | null>;\n isValidMessage: () => boolean;\n mentionedUsers: string[];\n numberOfUploads: number;\n onChange: (newText: string) => void;\n onSelectItem: (item: UserResponse<StreamChatGenerics>) => void;\n openAttachmentPicker: () => void;\n openCommandsPicker: () => void;\n openFilePicker: () => void;\n openMentionsPicker: () => void;\n pickFile: () => Promise<void>;\n /**\n * Function for removing a file from the upload preview\n *\n * @param id string ID of file in `fileUploads` object in state of MessageInput\n */\n removeFile: (id: string) => void;\n /**\n * Function for removing an image from the upload preview\n *\n * @param id string ID of image in `imageUploads` object in state of MessageInput\n */\n removeImage: (id: string) => void;\n resetInput: (pendingAttachments?: Attachment<StreamChatGenerics>[]) => void;\n selectedPicker: string | undefined;\n sending: React.MutableRefObject<boolean>;\n sendMessage: () => Promise<void>;\n sendMessageAsync: (id: string) => void;\n sendThreadMessageInChannel: boolean;\n setAsyncIds: React.Dispatch<React.SetStateAction<string[]>>;\n setAsyncUploads: React.Dispatch<\n React.SetStateAction<{\n [key: string]: {\n state: string;\n url: string;\n };\n }>\n >;\n setFileUploads: React.Dispatch<React.SetStateAction<FileUpload[]>>;\n setGiphyActive: React.Dispatch<React.SetStateAction<boolean>>;\n setImageUploads: React.Dispatch<React.SetStateAction<ImageUpload[]>>;\n /**\n * Ref callback to set reference on input box\n */\n setInputBoxRef: LegacyRef<TextInput> | undefined;\n setMentionedUsers: React.Dispatch<React.SetStateAction<string[]>>;\n setNumberOfUploads: React.Dispatch<React.SetStateAction<number>>;\n setSendThreadMessageInChannel: React.Dispatch<React.SetStateAction<boolean>>;\n setShowMoreOptions: React.Dispatch<React.SetStateAction<boolean>>;\n setText: React.Dispatch<React.SetStateAction<string>>;\n showMoreOptions: boolean;\n /**\n * Text value of the TextInput\n */\n text: string;\n toggleAttachmentPicker: () => void;\n /**\n * Mapping of input triggers to the outputs to be displayed by the AutoCompleteInput\n */\n triggerSettings: TriggerSettings<StreamChatGenerics>;\n updateMessage: () => Promise<void>;\n /** Function for attempting to upload a file */\n uploadFile: ({ newFile }: { newFile: FileUpload }) => Promise<void>;\n /** Function for attempting to upload an image */\n uploadImage: ({ newImage }: { newImage: ImageUpload }) => Promise<void>;\n uploadNewFile: (file: File) => Promise<void>;\n uploadNewImage: (image: Partial<Asset>) => Promise<void>;\n};\n\nexport type InputMessageInputContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /**\n * Custom UI component for attach button.\n *\n * Defaults to and accepts same props as: [AttachButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/attach-button/)\n */\n AttachButton: React.ComponentType<AttachButtonProps<StreamChatGenerics>>;\n\n clearEditingState: () => void;\n clearQuotedMessageState: () => void;\n /**\n * Custom UI component for commands button.\n *\n * Defaults to and accepts same props as: [CommandsButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/commands-button/)\n */\n CommandsButton: React.ComponentType<CommandsButtonProps<StreamChatGenerics>>;\n /**\n * Custom UI component to display the remaining cooldown a user will have to wait before\n * being allowed to send another message. This component is displayed in place of the\n * send button for the MessageInput component.\n *\n * **default** [CooldownTimer](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/CooldownTimer.tsx)\n */\n CooldownTimer: React.ComponentType<CooldownTimerProps>;\n editing: boolean | MessageType<StreamChatGenerics>;\n editMessage: StreamChat<StreamChatGenerics>['updateMessage'];\n\n /**\n * Custom UI component for FileUploadPreview.\n * Defaults to and accepts same props as: https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/FileUploadPreview.tsx\n */\n FileUploadPreview: React.ComponentType<FileUploadPreviewProps<StreamChatGenerics>>;\n\n /** When false, CommandsButton will be hidden */\n hasCommands: boolean;\n /** When false, FileSelectorIcon will be hidden */\n hasFilePicker: boolean;\n /** When false, ImageSelectorIcon will be hidden */\n hasImagePicker: boolean;\n /**\n * Custom UI component for ImageUploadPreview.\n * Defaults to and accepts same props as: https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/ImageUploadPreview.tsx\n */\n ImageUploadPreview: React.ComponentType<ImageUploadPreviewProps<StreamChatGenerics>>;\n InputEditingStateHeader: React.ComponentType<InputEditingStateHeaderProps<StreamChatGenerics>>;\n InputGiphySearch: React.ComponentType<InputGiphySearchProps<StreamChatGenerics>>;\n InputReplyStateHeader: React.ComponentType<InputReplyStateHeaderProps<StreamChatGenerics>>;\n /** Limit on allowed number of files to attach at a time. */\n maxNumberOfFiles: number;\n /**\n * Custom UI component for more options button.\n *\n * Defaults to and accepts same props as: [MoreOptionsButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/more-options-button/)\n */\n MoreOptionsButton: React.ComponentType<MoreOptionsButtonProps<StreamChatGenerics>>;\n /** Limit on the number of lines in the text input before scrolling */\n numberOfLines: number;\n quotedMessage: boolean | MessageType<StreamChatGenerics>;\n /**\n * Custom UI component for send button.\n *\n * Defaults to and accepts same props as: [SendButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/send-button/)\n */\n SendButton: React.ComponentType<SendButtonProps<StreamChatGenerics>>;\n sendImageAsync: boolean;\n sendMessage: (message: Partial<StreamMessage<StreamChatGenerics>>) => Promise<void>;\n setQuotedMessageState: (message: MessageType<StreamChatGenerics>) => void;\n /**\n * Custom UI component to render checkbox with text (\"Also send to channel\") in Thread's input box.\n * When ticked, message will also be sent in parent channel.\n */\n ShowThreadMessageInChannelButton: React.ComponentType<{\n threadList?: boolean;\n }>;\n /**\n * Custom UI component to render upload progress indicator on attachment preview.\n *\n * **Default** [UploadProgressIndicator](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/UploadProgressIndicator.tsx)\n */\n UploadProgressIndicator: React.ComponentType<UploadProgressIndicatorProps>;\n /**\n * Additional props for underlying TextInput component. These props will be forwarded as it is to TextInput component.\n *\n * @see See https://reactnative.dev/docs/textinput#reference\n */\n additionalTextInputProps?: TextInputProps;\n /** Max number of suggestions to display in autocomplete list. Defaults to 10. */\n autoCompleteSuggestionsLimit?: number;\n /**\n * Mapping of input triggers to the outputs to be displayed by the AutoCompleteInput\n */\n autoCompleteTriggerSettings?: (\n settings: ACITriggerSettingsParams<StreamChatGenerics>,\n ) => TriggerSettings<StreamChatGenerics>;\n /**\n * Compress image with quality (from 0 to 1, where 1 is best quality).\n * On iOS, values larger than 0.8 don't produce a noticeable quality increase in most images,\n * while a value of 0.8 will reduce the file size by about half or less compared to a value of 1.\n * Image picker defaults to 0.8 for iOS and 1 for Android\n */\n compressImageQuality?: number;\n /**\n * Override file upload request\n *\n * @param file File object - { uri: '', name: '' }\n * @param channel Current channel object\n *\n * @overrideType Function\n */\n doDocUploadRequest?: (\n file: File,\n channel: ChannelContextValue<StreamChatGenerics>['channel'],\n ) => Promise<SendFileAPIResponse>;\n /**\n * Override image upload request\n *\n * @param file File object - { uri: '' }\n * @param channel Current channel object\n *\n * @overrideType Function\n */\n doImageUploadRequest?: (\n file: {\n name?: string;\n uri?: string;\n },\n channel: ChannelContextValue<StreamChatGenerics>['channel'],\n ) => Promise<SendFileAPIResponse>;\n\n /** Initial value to set on input */\n initialValue?: string;\n /**\n * Custom UI component for AutoCompleteInput.\n * Has access to all of [MessageInputContext](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/contexts/messageInputContext/MessageInputContext.tsx)\n */\n Input?: React.ComponentType<\n Omit<MessageInputProps<StreamChatGenerics>, 'Input'> &\n InputButtonsProps<StreamChatGenerics> & {\n getUsers: () => UserResponse<StreamChatGenerics>[];\n }\n >;\n /**\n * Custom UI component to override buttons on left side of input box\n * Defaults to [InputButtons](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/InputButtons.tsx),\n * which contain following components/buttons:\n *\n * - AttachButton\n * - CommandsButtom\n *\n * You have access to following prop functions:\n *\n * - closeAttachmentPicker\n * - openAttachmentPicker\n * - openCommandsPicker\n * - toggleAttachmentPicker\n */\n InputButtons?: React.ComponentType<InputButtonsProps<StreamChatGenerics>>;\n maxMessageLength?: number;\n mentionAllAppUsersEnabled?: boolean;\n /** Object containing filters/sort/options overrides for an @mention user query */\n mentionAllAppUsersQuery?: MentionAllAppUsersQuery<StreamChatGenerics>;\n /**\n * Callback that is called when the text input's text changes. Changed text is passed as a single string argument to the callback handler.\n */\n onChangeText?: (newText: string) => void;\n SendMessageDisallowedIndicator?: React.ComponentType;\n /**\n * ref for input setter function\n *\n * @param ref [Ref object](https://reactjs.org/docs/refs-and-the-dom.html) for underling `TextInput` component.\n *\n * @overrideType Function\n */\n setInputRef?: (ref: TextInput | null) => void;\n};\n\nexport type MessageInputContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = LocalMessageInputContext<StreamChatGenerics> &\n Omit<InputMessageInputContextValue<StreamChatGenerics>, 'sendMessage'>;\n\nexport const MessageInputContext = React.createContext(\n DEFAULT_BASE_CONTEXT_VALUE as MessageInputContextValue,\n);\n\nexport const MessageInputProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n children,\n value,\n}: PropsWithChildren<{\n value: InputMessageInputContextValue<StreamChatGenerics>;\n}>) => {\n const { closePicker, openPicker, selectedPicker, setSelectedPicker } =\n useAttachmentPickerContext();\n const { appSettings, client, enableOfflineSupport } = useChatContext<StreamChatGenerics>();\n\n const getFileUploadConfig = () => {\n const fileConfig = appSettings?.app?.file_upload_config;\n if (fileConfig !== null || fileConfig !== undefined) {\n return fileConfig;\n } else {\n return {};\n }\n };\n\n const blockedFileExtensionTypes = getFileUploadConfig()?.blocked_file_extensions;\n const blockedFileMimeTypes = getFileUploadConfig()?.blocked_mime_types;\n\n const getImageUploadConfig = () => {\n const imageConfig = appSettings?.app?.image_upload_config;\n if (imageConfig !== null || imageConfig !== undefined) {\n return imageConfig;\n }\n return {};\n };\n\n const blockedImageExtensionTypes = getImageUploadConfig()?.blocked_file_extensions;\n const blockedImageMimeTypes = getImageUploadConfig()?.blocked_mime_types;\n\n const channelCapabities = useOwnCapabilitiesContext();\n\n const { channel, giphyEnabled } = useChannelContext<StreamChatGenerics>();\n const { thread } = useThreadContext<StreamChatGenerics>();\n const { t } = useTranslationContext();\n const inputBoxRef = useRef<TextInput | null>(null);\n const sending = useRef(false);\n\n const [asyncIds, setAsyncIds] = useState<string[]>([]);\n const [asyncUploads, setAsyncUploads] = useState<{\n [key: string]: {\n state: string;\n url: string;\n };\n }>({});\n const [giphyActive, setGiphyActive] = useState(false);\n const [sendThreadMessageInChannel, setSendThreadMessageInChannel] = useState(false);\n const { editing, hasFilePicker, hasImagePicker, initialValue } = value;\n const {\n fileUploads,\n imageUploads,\n mentionedUsers,\n numberOfUploads,\n setFileUploads,\n setImageUploads,\n setMentionedUsers,\n setNumberOfUploads,\n setShowMoreOptions,\n setText,\n showMoreOptions,\n text,\n } = useMessageDetailsForState<StreamChatGenerics>(editing, initialValue);\n const { endsAt: cooldownEndsAt, start: startCooldown } = useCooldown<StreamChatGenerics>();\n\n const threadId = thread?.id;\n useEffect(() => {\n setSendThreadMessageInChannel(false);\n }, [threadId]);\n\n const appendText = (newText: string) => {\n setText((prevText) => `${prevText}${newText}`);\n };\n\n /** Checks if the message is valid or not. Accordingly we can enable/disable send button */\n const isValidMessage = () => {\n if (text && text.trim()) {\n return true;\n }\n\n const imagesAndFiles = [...imageUploads, ...fileUploads];\n if (imagesAndFiles.length === 0) return false;\n\n if (enableOfflineSupport) {\n // Allow only if none of the attachments have unsupported status\n for (const file of imagesAndFiles) {\n if (file.state === FileState.NOT_SUPPORTED) {\n return false;\n }\n }\n\n return true;\n }\n\n for (const file of imagesAndFiles) {\n if (!file || file.state === FileState.UPLOAD_FAILED) {\n continue;\n }\n if (file.state === FileState.UPLOADING) {\n // TODO: show error to user that they should wait until image is uploaded\n return false;\n }\n\n return true;\n }\n\n return false;\n };\n\n const onChange = (newText: string) => {\n if (sending.current) {\n return;\n }\n setText(newText);\n\n if (newText && channel && channelCapabities.sendTypingEvents) {\n logChatPromiseExecution(channel.keystroke(thread?.id), 'start typing event');\n }\n\n if (value.onChangeText) {\n value.onChangeText(newText);\n }\n };\n\n const openCommandsPicker = () => {\n appendText('/');\n if (inputBoxRef.current) {\n inputBoxRef.current.focus();\n }\n };\n\n const openMentionsPicker = () => {\n appendText('@');\n if (inputBoxRef.current) {\n inputBoxRef.current.focus();\n }\n };\n\n const openAttachmentPicker = () => {\n if (hasImagePicker) {\n Keyboard.dismiss();\n setSelectedPicker('images');\n openPicker();\n } else if (hasFilePicker) {\n pickFile();\n }\n };\n\n const closeAttachmentPicker = () => {\n setSelectedPicker(undefined);\n closePicker();\n };\n\n const toggleAttachmentPicker = () => {\n if (selectedPicker) {\n closeAttachmentPicker();\n } else {\n openAttachmentPicker();\n }\n };\n\n const onSelectItem = (item: UserResponse<StreamChatGenerics>) => {\n setMentionedUsers((prevMentionedUsers) => [...prevMentionedUsers, item.id]);\n };\n\n const pickFile = async () => {\n if (pickDocument === null) {\n console.log(\n 'The file picker is not installed. Check our Getting Started documentation to install it.',\n );\n return;\n }\n\n if (numberOfUploads >= value.maxNumberOfFiles) {\n Alert.alert('Maximum number of files reached');\n return;\n }\n\n const result = await pickDocument({\n maxNumberOfFiles: value.maxNumberOfFiles - numberOfUploads,\n });\n\n const MEGA_BYTES_TO_BYTES = 1024 * 1024;\n const MAX_FILE_SIZE_TO_UPLOAD_IN_MB = 100;\n\n if (!result.cancelled && result.assets) {\n const totalFileSize = result.assets.reduce((acc, asset) => acc + Number(asset.size), 0);\n if (totalFileSize / MEGA_BYTES_TO_BYTES > MAX_FILE_SIZE_TO_UPLOAD_IN_MB) {\n Alert.alert(\n t(\n `Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.`,\n { MAX_FILE_SIZE_TO_UPLOAD_IN_MB },\n ),\n );\n } else {\n result.assets.forEach((asset) => {\n /**\n * TODO: The current tight coupling of images to the image\n * picker does not allow images picked from the file picker\n * to be rendered in a preview via the uploadNewImage call.\n * This should be updated alongside allowing image a file\n * uploads together.\n */\n uploadNewFile(asset);\n });\n }\n }\n };\n\n const removeFile = (id: string) => {\n if (fileUploads.some((file) => file.id === id)) {\n setFileUploads((prevFileUploads) => prevFileUploads.filter((file) => file.id !== id));\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n }\n };\n\n const removeImage = (id: string) => {\n if (imageUploads.some((image) => image.id === id)) {\n setImageUploads((prevImageUploads) => prevImageUploads.filter((image) => image.id !== id));\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n }\n };\n\n const resetInput = (pendingAttachments: Attachment<StreamChatGenerics>[] = []) => {\n setFileUploads([]);\n setGiphyActive(false);\n setShowMoreOptions(true);\n setImageUploads([]);\n setMentionedUsers([]);\n setNumberOfUploads(\n (prevNumberOfUploads) => prevNumberOfUploads - (pendingAttachments?.length || 0),\n );\n setText('');\n };\n\n const mapImageUploadToAttachment = (image: ImageUpload) => {\n const mime_type: string | boolean = lookup(image.file.name as string);\n return {\n fallback: image.file.name,\n image_url: image.url,\n mime_type: mime_type ? mime_type : undefined,\n original_height: image.height,\n original_width: image.width,\n originalFile: image.file,\n type: 'image',\n } as Attachment;\n };\n\n const mapFileUploadToAttachment = (file: FileUpload) => {\n if (file.file.mimeType?.startsWith('image/')) {\n return {\n fallback: file.file.name,\n image_url: file.url,\n mime_type: file.file.mimeType,\n originalFile: file.file,\n type: 'image',\n };\n } else if (file.file.mimeType?.startsWith('audio/')) {\n return {\n asset_url: file.url || file.file.uri,\n duration: file.file.duration,\n file_size: file.file.size,\n mime_type: file.file.mimeType,\n originalFile: file.file,\n title: file.file.name,\n type: 'audio',\n };\n } else if (file.file.mimeType?.startsWith('video/')) {\n return {\n asset_url: file.url || file.file.uri,\n duration: file.file.duration,\n file_size: file.file.size,\n mime_type: file.file.mimeType,\n originalFile: file.file,\n thumb_url: file.thumb_url,\n title: file.file.name,\n type: 'video',\n };\n } else {\n return {\n asset_url: file.url || file.file.uri,\n file_size: file.file.size,\n mime_type: file.file.mimeType,\n originalFile: file.file,\n title: file.file.name,\n type: 'file',\n };\n }\n };\n\n // TODO: Figure out why this is async, as it doesn't await any promise.\n // eslint-disable-next-line require-await\n const sendMessage = async () => {\n if (sending.current) {\n return;\n }\n\n if (!channelCapabities.sendLinks && !!text.match(urlRegex)) {\n Alert.alert(t('Links are disabled'), t('Sending links is not allowed in this conversation'));\n\n return;\n }\n\n sending.current = true;\n\n startCooldown();\n\n const prevText = giphyEnabled && giphyActive ? `/giphy ${text}` : text;\n setText('');\n if (inputBoxRef.current) {\n inputBoxRef.current.clear();\n }\n\n const attachments = [] as Attachment<StreamChatGenerics>[];\n for (const image of imageUploads) {\n if (enableOfflineSupport) {\n if (image.state === FileState.NOT_SUPPORTED) {\n return;\n }\n attachments.push(mapImageUploadToAttachment(image));\n continue;\n }\n\n if ((!image || image.state === FileState.UPLOAD_FAILED) && !enableOfflineSupport) {\n continue;\n }\n\n if (image.state === FileState.UPLOADING) {\n // TODO: show error to user that they should wait until image is uploaded\n if (value.sendImageAsync) {\n /**\n * If user hit send before image uploaded, push ID into a queue to later\n * be matched with the successful CDN response\n */\n setAsyncIds((prevAsyncIds) => [...prevAsyncIds, image.id]);\n } else {\n sending.current = false;\n return setText(prevText);\n }\n }\n\n // To get the mime type of the image from the file name and send it as an response for an image\n if (image.state === FileState.UPLOADED || image.state === FileState.FINISHED) {\n attachments.push(mapImageUploadToAttachment(image));\n }\n }\n\n for (const file of fileUploads) {\n if (enableOfflineSupport) {\n if (file.state === FileState.NOT_SUPPORTED) {\n return;\n }\n attachments.push(mapFileUploadToAttachment(file));\n continue;\n }\n\n if (!file || file.state === FileState.UPLOAD_FAILED) {\n continue;\n }\n\n if (file.state === FileState.UPLOADING) {\n // TODO: show error to user that they should wait until image is uploaded\n sending.current = false;\n return;\n }\n\n if (file.state === FileState.UPLOADED || file.state === FileState.FINISHED) {\n attachments.push(mapFileUploadToAttachment(file));\n }\n }\n\n // Disallow sending message if its empty.\n if (!prevText && attachments.length === 0) {\n sending.current = false;\n return;\n }\n\n if (value.editing && !isEditingBoolean(value.editing)) {\n const updatedMessage = {\n ...value.editing,\n attachments,\n mentioned_users: mentionedUsers,\n quoted_message: undefined,\n text: prevText,\n } as Parameters<StreamChat<StreamChatGenerics>['updateMessage']>[0];\n\n // TODO: Remove this line and show an error when submit fails\n value.clearEditingState();\n\n const updateMessagePromise = value\n .editMessage(\n // @ts-ignore\n removeReservedFields(updatedMessage),\n )\n .then(value.clearEditingState);\n resetInput(attachments);\n logChatPromiseExecution(updateMessagePromise, 'update message');\n\n sending.current = false;\n } else {\n try {\n value.sendMessage({\n attachments,\n mentioned_users: uniq(mentionedUsers),\n /** Parent message id - in case of thread */\n parent_id: thread?.id,\n quoted_message_id:\n typeof value.quotedMessage === 'boolean' ? undefined : value.quotedMessage.id,\n show_in_channel: sendThreadMessageInChannel || undefined,\n text: prevText,\n } as unknown as StreamMessage<StreamChatGenerics>);\n\n value.clearQuotedMessageState();\n sending.current = false;\n resetInput(attachments);\n } catch (_error) {\n sending.current = false;\n if (value.quotedMessage && typeof value.quotedMessage !== 'boolean') {\n value.setQuotedMessageState(value.quotedMessage);\n }\n setText(prevText.slice(giphyEnabled && giphyActive ? 7 : 0)); // 7 because of '/giphy ' length\n console.log('Failed to send message');\n }\n }\n };\n\n const sendMessageAsync = (id: string) => {\n const image = asyncUploads[id];\n if (!image || image.state === FileState.UPLOAD_FAILED) {\n return;\n }\n\n if (image.state === FileState.UPLOADED || image.state === FileState.FINISHED) {\n const attachments = [\n {\n image_url: image.url,\n type: 'image',\n },\n ] as StreamMessage<StreamChatGenerics>['attachments'];\n\n startCooldown();\n try {\n value.sendMessage({\n attachments,\n mentioned_users: [],\n parent_id: thread?.id,\n quoted_message_id:\n typeof value.quotedMessage === 'boolean' ? undefined : value.quotedMessage.id,\n show_in_channel: sendThreadMessageInChannel || undefined,\n text: '',\n } as unknown as Partial<StreamMessage<StreamChatGenerics>>);\n\n setAsyncIds((prevAsyncIds) => prevAsyncIds.splice(prevAsyncIds.indexOf(id), 1));\n setAsyncUploads((prevAsyncUploads) => {\n delete prevAsyncUploads[id];\n return prevAsyncUploads;\n });\n\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n } catch (_error) {\n console.log('Failed');\n }\n }\n };\n\n const setInputBoxRef = (ref: TextInput | null) => {\n inputBoxRef.current = ref;\n if (value.setInputRef) {\n value.setInputRef(ref);\n }\n };\n\n const getTriggerSettings = () => {\n let triggerSettings: TriggerSettings<StreamChatGenerics> = {};\n if (channel) {\n if (value.autoCompleteTriggerSettings) {\n triggerSettings = value.autoCompleteTriggerSettings({\n channel,\n client,\n onMentionSelectItem: onSelectItem,\n });\n } else {\n triggerSettings = ACITriggerSettings<StreamChatGenerics>({\n channel,\n client,\n onMentionSelectItem: onSelectItem,\n });\n }\n }\n return triggerSettings;\n };\n\n const triggerSettings = getTriggerSettings();\n\n const updateMessage = async () => {\n try {\n if (!isEditingBoolean(value.editing)) {\n await client.updateMessage({\n ...value.editing,\n quoted_message: undefined,\n text: giphyEnabled && giphyActive ? `/giphy ${text}` : text,\n } as Parameters<StreamChat<StreamChatGenerics>['updateMessage']>[0]);\n }\n\n resetInput();\n value.clearEditingState();\n } catch (error) {\n console.log(error);\n }\n };\n\n const regexCondition = /File (extension \\.\\w{2,4}|type \\S+) is not supported/;\n\n const getUploadSetStateAction =\n <UploadType extends ImageUpload | FileUpload>(\n id: string,\n fileState: FileStateValue,\n extraData: Partial<UploadType> = {},\n ): React.SetStateAction<UploadType[]> =>\n (prevUploads: UploadType[]) =>\n prevUploads.map((prevUpload) => {\n if (prevUpload.id === id) {\n return {\n ...prevUpload,\n ...extraData,\n state: fileState,\n };\n }\n return prevUpload;\n });\n\n const handleFileOrImageUploadError = (error: unknown, isImageError: boolean, id: string) => {\n if (isImageError) {\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n if (error instanceof Error) {\n if (regexCondition.test(error.message)) {\n return setImageUploads(getUploadSetStateAction(id, FileState.NOT_SUPPORTED));\n }\n\n return setImageUploads(getUploadSetStateAction(id, FileState.UPLOAD_FAILED));\n }\n } else {\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n\n if (error instanceof Error) {\n if (regexCondition.test(error.message)) {\n return setFileUploads(getUploadSetStateAction(id, FileState.NOT_SUPPORTED));\n }\n return setFileUploads(getUploadSetStateAction(id, FileState.UPLOAD_FAILED));\n }\n }\n };\n\n const uploadFile = async ({ newFile }: { newFile: FileUpload }) => {\n const { file, id } = newFile;\n\n setFileUploads(getUploadSetStateAction(id, FileState.UPLOADING));\n\n let response: Partial<SendFileAPIResponse> = {};\n try {\n if (value.doDocUploadRequest) {\n response = await value.doDocUploadRequest(file, channel);\n } else if (channel && file.uri) {\n response = await channel.sendFile(file.uri, file.name, file.mimeType);\n }\n const extraData: Partial<FileUpload> = { thumb_url: response.thumb_url, url: response.file };\n setFileUploads(getUploadSetStateAction(id, FileState.UPLOADED, extraData));\n } catch (error: unknown) {\n handleFileOrImageUploadError(error, false, id);\n }\n };\n\n const uploadImage = async ({ newImage }: { newImage: ImageUpload }) => {\n const { file, id } = newImage || {};\n\n if (!file) {\n return;\n }\n\n let response = {} as SendFileAPIResponse;\n\n try {\n const uri = file.uri || '';\n /**\n * We skip compression if:\n * - the file is from the camera as that should already be compressed\n * - the file has no height/width value to maintain for compression\n * - the compressImageQuality number is not present or is 1 (meaning no compression)\n */\n const compressedUri = await (file.source === 'camera' ||\n !file.height ||\n !file.width ||\n typeof value.compressImageQuality !== 'number' ||\n value.compressImageQuality === 1\n ? uri\n : compressImage({\n compressImageQuality: value.compressImageQuality,\n height: file.height,\n uri,\n width: file.width,\n }));\n const filename = file.name ?? uri.replace(/^(file:\\/\\/|content:\\/\\/)/, '');\n const contentType = lookup(filename) || 'multipart/form-data';\n if (value.doImageUploadRequest) {\n response = await value.doImageUploadRequest(file, channel);\n } else if (compressedUri && channel) {\n if (value.sendImageAsync) {\n channel.sendImage(compressedUri, filename, contentType).then((res) => {\n if (asyncIds.includes(id)) {\n // Evaluates to true if user hit send before image successfully uploaded\n setAsyncUploads((prevAsyncUploads) => {\n prevAsyncUploads[id] = {\n ...prevAsyncUploads[id],\n state: FileState.UPLOADED,\n url: res.file,\n };\n return prevAsyncUploads;\n });\n } else {\n const newImageUploads = getUploadSetStateAction<ImageUpload>(id, FileState.UPLOADED, {\n url: res.file,\n });\n setImageUploads(newImageUploads);\n }\n });\n } else {\n response = await channel.sendImage(compressedUri, filename, contentType);\n }\n }\n\n if (Object.keys(response).length) {\n const newImageUploads = getUploadSetStateAction<ImageUpload>(id, FileState.UPLOADED, {\n height: file.height,\n url: response.file,\n width: file.width,\n });\n setImageUploads(newImageUploads);\n }\n } catch (error) {\n handleFileOrImageUploadError(error, true, id);\n }\n };\n\n const uploadNewFile = async (file: File) => {\n const id: string = generateRandomId();\n\n const isBlockedFileExtension: boolean | undefined = blockedFileExtensionTypes?.some(\n (fileExtensionType: string) => file.name?.includes(fileExtensionType),\n );\n const isBlockedFileMimeType: boolean | undefined = blockedFileMimeTypes?.some(\n (mimeType: string) => file.name?.includes(mimeType),\n );\n\n const fileState =\n isBlockedFileExtension || isBlockedFileMimeType\n ? FileState.NOT_SUPPORTED\n : FileState.UPLOADING;\n\n const newFile: FileUpload = {\n duration: 0,\n file,\n id: file.id || id,\n paused: true,\n progress: 0,\n state: fileState,\n };\n\n await Promise.all([\n setFileUploads((prevFileUploads) => prevFileUploads.concat([newFile])),\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads + 1),\n ]);\n\n if (!isBlockedFileExtension) {\n uploadFile({ newFile });\n }\n };\n\n const uploadNewImage = async (image: Partial<Asset>) => {\n const id = generateRandomId();\n\n const isBlockedImageMimeType = blockedImageMimeTypes?.some((mimeType: string) =>\n image.uri?.includes(mimeType),\n );\n\n const isBlockedImageExtension = blockedImageExtensionTypes?.some((imageExtensionType: string) =>\n image.uri?.includes(imageExtensionType),\n );\n\n const imageState =\n isBlockedImageExtension || isBlockedImageMimeType\n ? FileState.NOT_SUPPORTED\n : FileState.UPLOADING;\n\n const newImage: ImageUpload = {\n file: image,\n height: image.height,\n id,\n state: imageState,\n url: image.uri,\n width: image.width,\n };\n\n await Promise.all([\n setImageUploads((prevImageUploads) => prevImageUploads.concat([newImage])),\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads + 1),\n ]);\n\n if (!isBlockedImageExtension) {\n uploadImage({ newImage });\n }\n };\n\n const messageInputContext = useCreateMessageInputContext({\n appendText,\n asyncIds,\n asyncUploads,\n closeAttachmentPicker,\n cooldownEndsAt,\n fileUploads,\n giphyActive,\n imageUploads,\n inputBoxRef,\n isValidMessage,\n mentionedUsers,\n numberOfUploads,\n onChange,\n onSelectItem,\n openAttachmentPicker,\n openCommandsPicker,\n openFilePicker: pickFile,\n openMentionsPicker,\n pickFile,\n removeFile,\n removeImage,\n resetInput,\n selectedPicker,\n sending,\n sendMessageAsync,\n sendThreadMessageInChannel,\n setAsyncIds,\n setAsyncUploads,\n setFileUploads,\n setGiphyActive,\n setImageUploads,\n setInputBoxRef,\n setMentionedUsers,\n setNumberOfUploads,\n setSendThreadMessageInChannel,\n setShowMoreOptions,\n setText,\n showMoreOptions,\n text,\n thread,\n toggleAttachmentPicker,\n triggerSettings,\n updateMessage,\n uploadFile,\n uploadImage,\n uploadNewFile,\n uploadNewImage,\n ...value,\n sendMessage, // overriding the originally passed in sendMessage\n });\n\n return (\n <MessageInputContext.Provider\n value={messageInputContext as unknown as MessageInputContextValue}\n >\n {children}\n </MessageInputContext.Provider>\n );\n};\n\nexport const useMessageInputContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => {\n const contextValue = useContext(\n MessageInputContext,\n ) as unknown as MessageInputContextValue<StreamChatGenerics>;\n\n if (contextValue === DEFAULT_BASE_CONTEXT_VALUE && !isTestEnvironment()) {\n throw new Error(\n `The useMessageInputContext hook was called outside of the MessageInputContext provider. Make sure you have configured Channel component correctly - https://getstream.io/chat/docs/sdk/reactnative/basics/hello_stream_chat/#channel`,\n );\n }\n\n return contextValue;\n};\n\n/**\n * Typescript currently does not support partial inference so if MessageInputContext\n * typing is desired while using the HOC withMessageInputContext the Props for the\n * wrapped component must be provided as the first generic.\n */\nexport const withMessageInputContext = <\n P extends UnknownType,\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n Component: React.ComponentType<P>,\n): React.FC<Omit<P, keyof MessageInputContextValue<StreamChatGenerics>>> => {\n const WithMessageInputContextComponent = (\n props: Omit<P, keyof MessageInputContextValue<StreamChatGenerics>>,\n ) => {\n const messageInputContext = useMessageInputContext<StreamChatGenerics>();\n\n return <Component {...(props as P)} {...messageInputContext} />;\n };\n WithMessageInputContextComponent.displayName = `WithMessageInputContext${getDisplayName(\n Component,\n )}`;\n return WithMessageInputContextComponent;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_uniq","_interopRequireDefault","_mimeTypes","_streamChat","_useCreateMessageInputContext","_useMessageDetailsForState","_useCooldown2","_native","_compressImage","_removeReservedFields","_utils","_AttachmentPickerContext","_ChannelContext","_ChatContext","_OwnCapabilitiesContext","_ThreadContext","_TranslationContext","_defaultBaseContextValue","_getDisplayName","_isTestEnvironment","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof3","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","MessageInputContext","React","createContext","DEFAULT_BASE_CONTEXT_VALUE","exports","MessageInputProvider","_ref","_getFileUploadConfig","_getFileUploadConfig2","_getImageUploadConfig","_getImageUploadConfig2","children","_useAttachmentPickerC","useAttachmentPickerContext","closePicker","openPicker","selectedPicker","setSelectedPicker","_useChatContext","useChatContext","appSettings","client","enableOfflineSupport","getFileUploadConfig","_appSettings$app","fileConfig","app","file_upload_config","undefined","blockedFileExtensionTypes","blocked_file_extensions","blockedFileMimeTypes","blocked_mime_types","getImageUploadConfig","_appSettings$app2","imageConfig","image_upload_config","blockedImageExtensionTypes","blockedImageMimeTypes","channelCapabities","useOwnCapabilitiesContext","_useChannelContext","useChannelContext","channel","giphyEnabled","uploadAbortControllerRef","_useThreadContext","useThreadContext","thread","_useTranslationContex","useTranslationContext","t","inputBoxRef","useRef","sending","_useState","useState","_useState2","_slicedToArray2","asyncIds","setAsyncIds","_useState3","_useState4","asyncUploads","setAsyncUploads","_useState5","_useState6","giphyActive","setGiphyActive","_useState7","_useState8","sendThreadMessageInChannel","setSendThreadMessageInChannel","editing","hasFilePicker","hasImagePicker","initialValue","_useMessageDetailsFor","useMessageDetailsForState","fileUploads","imageUploads","mentionedUsers","numberOfUploads","setFileUploads","setImageUploads","setMentionedUsers","setNumberOfUploads","setShowMoreOptions","setText","showMoreOptions","text","_useCooldown","useCooldown","cooldownEndsAt","endsAt","startCooldown","start","threadId","id","useEffect","appendText","newText","prevText","isValidMessage","trim","imagesAndFiles","concat","_toConsumableArray2","_iterator","_step","file","state","FileState","NOT_SUPPORTED","_iterator2","_step2","UPLOAD_FAILED","UPLOADING","onChange","current","sendTypingEvents","logChatPromiseExecution","keystroke","onChangeText","openCommandsPicker","focus","openMentionsPicker","openAttachmentPicker","Keyboard","dismiss","pickFile","closeAttachmentPicker","toggleAttachmentPicker","onSelectItem","item","prevMentionedUsers","_ref2","_asyncToGenerator2","_regenerator","mark","_callee","result","MEGA_BYTES_TO_BYTES","MAX_FILE_SIZE_TO_UPLOAD_IN_MB","totalFileSize","wrap","_callee$","_context","prev","pickDocument","console","log","abrupt","maxNumberOfFiles","Alert","alert","sent","cancelled","assets","reduce","acc","asset","Number","size","forEach","uploadNewFile","stop","apply","arguments","removeFile","some","prevFileUploads","filter","prevNumberOfUploads","removeImage","image","prevImageUploads","resetInput","pendingAttachments","mapImageUploadToAttachment","mime_type","lookup","fallback","image_url","url","original_height","height","original_width","width","originalImage","type","mapFileUploadToAttachment","_file$file$mimeType","_file$file$mimeType2","_file$file$mimeType3","mimeType","startsWith","originalFile","asset_url","uri","duration","file_size","title","thumb_url","sendMessage","_ref3","_callee3","attachments","_loop","_iterator3","_step3","_image","_ret","_iterator4","_step4","_file3","updatedMessage","updateMessagePromise","_callee3$","_context3","sendLinks","match","urlRegex","clear","_callee2","_callee2$","_context2","v","push","sendImageAsync","prevAsyncIds","UPLOADED","FINISHED","delegateYield","t0","_typeof2","isEditingBoolean","_extends2","mentioned_users","quoted_message","clearEditingState","editMessage","removeReservedFields","then","uniq","parent_id","quoted_message_id","quotedMessage","show_in_channel","clearQuotedMessageState","_error","setQuotedMessageState","sendMessageAsync","splice","indexOf","prevAsyncUploads","setInputBoxRef","ref","setInputRef","getTriggerSettings","triggerSettings","autoCompleteTriggerSettings","onMentionSelectItem","ACITriggerSettings","updateMessage","_ref4","_callee4","_callee4$","_context4","regexCondition","getUploadSetStateAction","fileState","extraData","prevUploads","map","prevUpload","handleFileOrImageUploadError","error","isImageError","Error","message","uploadFile","_ref6","_callee5","_ref5","newFile","response","_callee5$","_context5","doDocUploadRequest","createAbortControllerForNextRequest","sendFile","_x","uploadImage","_ref8","_callee6","_ref7","_file$name","newImage","_ref9","filename","compressedUri","contentType","newImageUploads","_callee6$","_context6","replace","compressedImageURI","compressImageQuality","doImageUploadRequest","sendImage","res","includes","keys","_x2","_ref10","_callee7","isBlockedFileExtension","isBlockedFileMimeType","_callee7$","_context7","generateRandomId","fileExtensionType","_file$name2","_file$name3","paused","progress","Promise","all","_x3","uploadNewImage","_ref11","_callee8","isBlockedImageMimeType","isBlockedImageExtension","imageState","_callee8$","_context8","_image$uri","imageExtensionType","_image$uri2","_x4","messageInputContext","useCreateMessageInputContext","openFilePicker","createElement","Provider","__self","__source","fileName","lineNumber","columnNumber","useMessageInputContext","contextValue","useContext","isTestEnvironment","withMessageInputContext","Component","WithMessageInputContextComponent","props","displayName","getDisplayName"],"sources":["MessageInputContext.tsx"],"sourcesContent":["import type { LegacyRef } from 'react';\nimport React, { PropsWithChildren, useContext, useEffect, useRef, useState } from 'react';\nimport type { TextInput, TextInputProps } from 'react-native';\nimport { Alert, Keyboard } from 'react-native';\n\nimport uniq from 'lodash/uniq';\nimport { lookup } from 'mime-types';\nimport {\n Attachment,\n logChatPromiseExecution,\n SendFileAPIResponse,\n StreamChat,\n Message as StreamMessage,\n UserFilters,\n UserOptions,\n UserResponse,\n UserSort,\n} from 'stream-chat';\n\nimport { useCreateMessageInputContext } from './hooks/useCreateMessageInputContext';\nimport { isEditingBoolean, useMessageDetailsForState } from './hooks/useMessageDetailsForState';\n\nimport type { AttachButtonProps } from '../../components/MessageInput/AttachButton';\nimport type { CommandsButtonProps } from '../../components/MessageInput/CommandsButton';\nimport type { InputEditingStateHeaderProps } from '../../components/MessageInput/components/InputEditingStateHeader';\nimport type { InputGiphySearchProps } from '../../components/MessageInput/components/InputGiphySearch';\nimport type { InputReplyStateHeaderProps } from '../../components/MessageInput/components/InputReplyStateHeader';\nimport type { CooldownTimerProps } from '../../components/MessageInput/CooldownTimer';\nimport type { FileUploadPreviewProps } from '../../components/MessageInput/FileUploadPreview';\nimport { useCooldown } from '../../components/MessageInput/hooks/useCooldown';\nimport type { ImageUploadPreviewProps } from '../../components/MessageInput/ImageUploadPreview';\nimport type { InputButtonsProps } from '../../components/MessageInput/InputButtons';\nimport type { MessageInputProps } from '../../components/MessageInput/MessageInput';\nimport type { MoreOptionsButtonProps } from '../../components/MessageInput/MoreOptionsButton';\nimport type { SendButtonProps } from '../../components/MessageInput/SendButton';\nimport type { UploadProgressIndicatorProps } from '../../components/MessageInput/UploadProgressIndicator';\nimport type { MessageType } from '../../components/MessageList/hooks/useMessageList';\nimport { pickDocument } from '../../native';\nimport type {\n Asset,\n DefaultStreamChatGenerics,\n File,\n FileUpload,\n ImageUpload,\n UnknownType,\n} from '../../types/types';\nimport { compressedImageURI } from '../../utils/compressImage';\nimport { removeReservedFields } from '../../utils/removeReservedFields';\nimport {\n ACITriggerSettings,\n ACITriggerSettingsParams,\n FileState,\n FileStateValue,\n generateRandomId,\n TriggerSettings,\n urlRegex,\n} from '../../utils/utils';\nimport { useAttachmentPickerContext } from '../attachmentPickerContext/AttachmentPickerContext';\nimport { ChannelContextValue, useChannelContext } from '../channelContext/ChannelContext';\nimport { useChatContext } from '../chatContext/ChatContext';\nimport { useOwnCapabilitiesContext } from '../ownCapabilitiesContext/OwnCapabilitiesContext';\nimport { useThreadContext } from '../threadContext/ThreadContext';\nimport { useTranslationContext } from '../translationContext/TranslationContext';\nimport { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';\n\nimport { getDisplayName } from '../utils/getDisplayName';\nimport { isTestEnvironment } from '../utils/isTestEnvironment';\n\nexport type MentionAllAppUsersQuery<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n filters?: UserFilters<StreamChatGenerics>;\n options?: UserOptions;\n sort?: UserSort<StreamChatGenerics>;\n};\n\nexport type LocalMessageInputContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n appendText: (newText: string) => void;\n asyncIds: string[];\n asyncUploads: {\n [key: string]: {\n state: string;\n url: string;\n };\n };\n closeAttachmentPicker: () => void;\n /** The time at which the active cooldown will end */\n cooldownEndsAt: Date;\n /**\n * An array of file objects which are set for upload. It has the following structure:\n *\n * ```json\n * [\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_1\",\n * \"state\": \"uploading\" // or \"finished\",\n * \"url\": \"https://url1.com\",\n * },\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_2\",\n * \"state\": \"uploading\" // or \"finished\",\n * \"url\": \"https://url1.com\",\n * },\n * ]\n * ```\n *\n */\n fileUploads: FileUpload[];\n giphyActive: boolean;\n /**\n * An array of image objects which are set for upload. It has the following structure:\n *\n * ```json\n * [\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_1\",\n * \"state\": \"uploading\" // or \"finished\",\n * },\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_2\",\n * \"state\": \"uploading\" // or \"finished\",\n * },\n * ]\n * ```\n *\n */\n imageUploads: ImageUpload[];\n inputBoxRef: React.MutableRefObject<TextInput | null>;\n isValidMessage: () => boolean;\n mentionedUsers: string[];\n numberOfUploads: number;\n onChange: (newText: string) => void;\n onSelectItem: (item: UserResponse<StreamChatGenerics>) => void;\n openAttachmentPicker: () => void;\n openCommandsPicker: () => void;\n openFilePicker: () => void;\n openMentionsPicker: () => void;\n pickFile: () => Promise<void>;\n /**\n * Function for removing a file from the upload preview\n *\n * @param id string ID of file in `fileUploads` object in state of MessageInput\n */\n removeFile: (id: string) => void;\n /**\n * Function for removing an image from the upload preview\n *\n * @param id string ID of image in `imageUploads` object in state of MessageInput\n */\n removeImage: (id: string) => void;\n resetInput: (pendingAttachments?: Attachment<StreamChatGenerics>[]) => void;\n selectedPicker: string | undefined;\n sending: React.MutableRefObject<boolean>;\n sendMessage: () => Promise<void>;\n sendMessageAsync: (id: string) => void;\n sendThreadMessageInChannel: boolean;\n setAsyncIds: React.Dispatch<React.SetStateAction<string[]>>;\n setAsyncUploads: React.Dispatch<\n React.SetStateAction<{\n [key: string]: {\n state: string;\n url: string;\n };\n }>\n >;\n setFileUploads: React.Dispatch<React.SetStateAction<FileUpload[]>>;\n setGiphyActive: React.Dispatch<React.SetStateAction<boolean>>;\n setImageUploads: React.Dispatch<React.SetStateAction<ImageUpload[]>>;\n /**\n * Ref callback to set reference on input box\n */\n setInputBoxRef: LegacyRef<TextInput> | undefined;\n setMentionedUsers: React.Dispatch<React.SetStateAction<string[]>>;\n setNumberOfUploads: React.Dispatch<React.SetStateAction<number>>;\n setSendThreadMessageInChannel: React.Dispatch<React.SetStateAction<boolean>>;\n setShowMoreOptions: React.Dispatch<React.SetStateAction<boolean>>;\n setText: React.Dispatch<React.SetStateAction<string>>;\n showMoreOptions: boolean;\n /**\n * Text value of the TextInput\n */\n text: string;\n toggleAttachmentPicker: () => void;\n /**\n * Mapping of input triggers to the outputs to be displayed by the AutoCompleteInput\n */\n triggerSettings: TriggerSettings<StreamChatGenerics>;\n updateMessage: () => Promise<void>;\n /** Function for attempting to upload a file */\n uploadFile: ({ newFile }: { newFile: FileUpload }) => Promise<void>;\n /** Function for attempting to upload an image */\n uploadImage: ({ newImage }: { newImage: ImageUpload }) => Promise<void>;\n uploadNewFile: (file: File) => Promise<void>;\n uploadNewImage: (image: Partial<Asset>) => Promise<void>;\n};\n\nexport type InputMessageInputContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /**\n * Custom UI component for attach button.\n *\n * Defaults to and accepts same props as: [AttachButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/attach-button/)\n */\n AttachButton: React.ComponentType<AttachButtonProps<StreamChatGenerics>>;\n\n clearEditingState: () => void;\n clearQuotedMessageState: () => void;\n /**\n * Custom UI component for commands button.\n *\n * Defaults to and accepts same props as: [CommandsButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/commands-button/)\n */\n CommandsButton: React.ComponentType<CommandsButtonProps<StreamChatGenerics>>;\n /**\n * Custom UI component to display the remaining cooldown a user will have to wait before\n * being allowed to send another message. This component is displayed in place of the\n * send button for the MessageInput component.\n *\n * **default** [CooldownTimer](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/CooldownTimer.tsx)\n */\n CooldownTimer: React.ComponentType<CooldownTimerProps>;\n editing: boolean | MessageType<StreamChatGenerics>;\n editMessage: StreamChat<StreamChatGenerics>['updateMessage'];\n\n /**\n * Custom UI component for FileUploadPreview.\n * Defaults to and accepts same props as: https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/FileUploadPreview.tsx\n */\n FileUploadPreview: React.ComponentType<FileUploadPreviewProps<StreamChatGenerics>>;\n\n /** When false, CommandsButton will be hidden */\n hasCommands: boolean;\n /** When false, FileSelectorIcon will be hidden */\n hasFilePicker: boolean;\n /** When false, ImageSelectorIcon will be hidden */\n hasImagePicker: boolean;\n /**\n * Custom UI component for ImageUploadPreview.\n * Defaults to and accepts same props as: https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/ImageUploadPreview.tsx\n */\n ImageUploadPreview: React.ComponentType<ImageUploadPreviewProps<StreamChatGenerics>>;\n InputEditingStateHeader: React.ComponentType<InputEditingStateHeaderProps<StreamChatGenerics>>;\n InputGiphySearch: React.ComponentType<InputGiphySearchProps<StreamChatGenerics>>;\n InputReplyStateHeader: React.ComponentType<InputReplyStateHeaderProps<StreamChatGenerics>>;\n /** Limit on allowed number of files to attach at a time. */\n maxNumberOfFiles: number;\n /**\n * Custom UI component for more options button.\n *\n * Defaults to and accepts same props as: [MoreOptionsButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/more-options-button/)\n */\n MoreOptionsButton: React.ComponentType<MoreOptionsButtonProps<StreamChatGenerics>>;\n /** Limit on the number of lines in the text input before scrolling */\n numberOfLines: number;\n quotedMessage: boolean | MessageType<StreamChatGenerics>;\n /**\n * Custom UI component for send button.\n *\n * Defaults to and accepts same props as: [SendButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/send-button/)\n */\n SendButton: React.ComponentType<SendButtonProps<StreamChatGenerics>>;\n sendImageAsync: boolean;\n sendMessage: (message: Partial<StreamMessage<StreamChatGenerics>>) => Promise<void>;\n setQuotedMessageState: (message: MessageType<StreamChatGenerics>) => void;\n /**\n * Custom UI component to render checkbox with text (\"Also send to channel\") in Thread's input box.\n * When ticked, message will also be sent in parent channel.\n */\n ShowThreadMessageInChannelButton: React.ComponentType<{\n threadList?: boolean;\n }>;\n /**\n * Custom UI component to render upload progress indicator on attachment preview.\n *\n * **Default** [UploadProgressIndicator](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/UploadProgressIndicator.tsx)\n */\n UploadProgressIndicator: React.ComponentType<UploadProgressIndicatorProps>;\n /**\n * Additional props for underlying TextInput component. These props will be forwarded as it is to TextInput component.\n *\n * @see See https://reactnative.dev/docs/textinput#reference\n */\n additionalTextInputProps?: TextInputProps;\n /** Max number of suggestions to display in autocomplete list. Defaults to 10. */\n autoCompleteSuggestionsLimit?: number;\n /**\n * Mapping of input triggers to the outputs to be displayed by the AutoCompleteInput\n */\n autoCompleteTriggerSettings?: (\n settings: ACITriggerSettingsParams<StreamChatGenerics>,\n ) => TriggerSettings<StreamChatGenerics>;\n /**\n * Compress image with quality (from 0 to 1, where 1 is best quality).\n * On iOS, values larger than 0.8 don't produce a noticeable quality increase in most images,\n * while a value of 0.8 will reduce the file size by about half or less compared to a value of 1.\n * Image picker defaults to 0.8 for iOS and 1 for Android\n */\n compressImageQuality?: number;\n /**\n * Override file upload request\n *\n * @param file File object - { uri: '', name: '' }\n * @param channel Current channel object\n *\n * @overrideType Function\n */\n doDocUploadRequest?: (\n file: File,\n channel: ChannelContextValue<StreamChatGenerics>['channel'],\n ) => Promise<SendFileAPIResponse>;\n /**\n * Override image upload request\n *\n * @param file File object - { uri: '' }\n * @param channel Current channel object\n *\n * @overrideType Function\n */\n doImageUploadRequest?: (\n file: {\n name?: string;\n uri?: string;\n },\n channel: ChannelContextValue<StreamChatGenerics>['channel'],\n ) => Promise<SendFileAPIResponse>;\n\n /** Initial value to set on input */\n initialValue?: string;\n /**\n * Custom UI component for AutoCompleteInput.\n * Has access to all of [MessageInputContext](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/contexts/messageInputContext/MessageInputContext.tsx)\n */\n Input?: React.ComponentType<\n Omit<MessageInputProps<StreamChatGenerics>, 'Input'> &\n InputButtonsProps<StreamChatGenerics> & {\n getUsers: () => UserResponse<StreamChatGenerics>[];\n }\n >;\n /**\n * Custom UI component to override buttons on left side of input box\n * Defaults to [InputButtons](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/InputButtons.tsx),\n * which contain following components/buttons:\n *\n * - AttachButton\n * - CommandsButtom\n *\n * You have access to following prop functions:\n *\n * - closeAttachmentPicker\n * - openAttachmentPicker\n * - openCommandsPicker\n * - toggleAttachmentPicker\n */\n InputButtons?: React.ComponentType<InputButtonsProps<StreamChatGenerics>>;\n maxMessageLength?: number;\n mentionAllAppUsersEnabled?: boolean;\n /** Object containing filters/sort/options overrides for an @mention user query */\n mentionAllAppUsersQuery?: MentionAllAppUsersQuery<StreamChatGenerics>;\n /**\n * Callback that is called when the text input's text changes. Changed text is passed as a single string argument to the callback handler.\n */\n onChangeText?: (newText: string) => void;\n SendMessageDisallowedIndicator?: React.ComponentType;\n /**\n * ref for input setter function\n *\n * @param ref [Ref object](https://reactjs.org/docs/refs-and-the-dom.html) for underling `TextInput` component.\n *\n * @overrideType Function\n */\n setInputRef?: (ref: TextInput | null) => void;\n};\n\nexport type MessageInputContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = LocalMessageInputContext<StreamChatGenerics> &\n Omit<InputMessageInputContextValue<StreamChatGenerics>, 'sendMessage'>;\n\nexport const MessageInputContext = React.createContext(\n DEFAULT_BASE_CONTEXT_VALUE as MessageInputContextValue,\n);\n\nexport const MessageInputProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n children,\n value,\n}: PropsWithChildren<{\n value: InputMessageInputContextValue<StreamChatGenerics>;\n}>) => {\n const { closePicker, openPicker, selectedPicker, setSelectedPicker } =\n useAttachmentPickerContext();\n const { appSettings, client, enableOfflineSupport } = useChatContext<StreamChatGenerics>();\n\n const getFileUploadConfig = () => {\n const fileConfig = appSettings?.app?.file_upload_config;\n if (fileConfig !== null || fileConfig !== undefined) {\n return fileConfig;\n } else {\n return {};\n }\n };\n\n const blockedFileExtensionTypes = getFileUploadConfig()?.blocked_file_extensions;\n const blockedFileMimeTypes = getFileUploadConfig()?.blocked_mime_types;\n\n const getImageUploadConfig = () => {\n const imageConfig = appSettings?.app?.image_upload_config;\n if (imageConfig !== null || imageConfig !== undefined) {\n return imageConfig;\n }\n return {};\n };\n\n const blockedImageExtensionTypes = getImageUploadConfig()?.blocked_file_extensions;\n const blockedImageMimeTypes = getImageUploadConfig()?.blocked_mime_types;\n\n const channelCapabities = useOwnCapabilitiesContext();\n\n const { channel, giphyEnabled, uploadAbortControllerRef } =\n useChannelContext<StreamChatGenerics>();\n const { thread } = useThreadContext<StreamChatGenerics>();\n const { t } = useTranslationContext();\n const inputBoxRef = useRef<TextInput | null>(null);\n const sending = useRef(false);\n\n const [asyncIds, setAsyncIds] = useState<string[]>([]);\n const [asyncUploads, setAsyncUploads] = useState<{\n [key: string]: {\n state: string;\n url: string;\n };\n }>({});\n const [giphyActive, setGiphyActive] = useState(false);\n const [sendThreadMessageInChannel, setSendThreadMessageInChannel] = useState(false);\n const { editing, hasFilePicker, hasImagePicker, initialValue } = value;\n const {\n fileUploads,\n imageUploads,\n mentionedUsers,\n numberOfUploads,\n setFileUploads,\n setImageUploads,\n setMentionedUsers,\n setNumberOfUploads,\n setShowMoreOptions,\n setText,\n showMoreOptions,\n text,\n } = useMessageDetailsForState<StreamChatGenerics>(editing, initialValue);\n const { endsAt: cooldownEndsAt, start: startCooldown } = useCooldown<StreamChatGenerics>();\n\n const threadId = thread?.id;\n useEffect(() => {\n setSendThreadMessageInChannel(false);\n }, [threadId]);\n\n const appendText = (newText: string) => {\n setText((prevText) => `${prevText}${newText}`);\n };\n\n /** Checks if the message is valid or not. Accordingly we can enable/disable send button */\n const isValidMessage = () => {\n if (text && text.trim()) {\n return true;\n }\n\n const imagesAndFiles = [...imageUploads, ...fileUploads];\n if (imagesAndFiles.length === 0) return false;\n\n if (enableOfflineSupport) {\n // Allow only if none of the attachments have unsupported status\n for (const file of imagesAndFiles) {\n if (file.state === FileState.NOT_SUPPORTED) {\n return false;\n }\n }\n\n return true;\n }\n\n for (const file of imagesAndFiles) {\n if (!file || file.state === FileState.UPLOAD_FAILED) {\n continue;\n }\n if (file.state === FileState.UPLOADING) {\n // TODO: show error to user that they should wait until image is uploaded\n return false;\n }\n\n return true;\n }\n\n return false;\n };\n\n const onChange = (newText: string) => {\n if (sending.current) {\n return;\n }\n setText(newText);\n\n if (newText && channel && channelCapabities.sendTypingEvents) {\n logChatPromiseExecution(channel.keystroke(thread?.id), 'start typing event');\n }\n\n if (value.onChangeText) {\n value.onChangeText(newText);\n }\n };\n\n const openCommandsPicker = () => {\n appendText('/');\n if (inputBoxRef.current) {\n inputBoxRef.current.focus();\n }\n };\n\n const openMentionsPicker = () => {\n appendText('@');\n if (inputBoxRef.current) {\n inputBoxRef.current.focus();\n }\n };\n\n const openAttachmentPicker = () => {\n if (hasImagePicker) {\n Keyboard.dismiss();\n setSelectedPicker('images');\n openPicker();\n } else if (hasFilePicker) {\n pickFile();\n }\n };\n\n const closeAttachmentPicker = () => {\n setSelectedPicker(undefined);\n closePicker();\n };\n\n const toggleAttachmentPicker = () => {\n if (selectedPicker) {\n closeAttachmentPicker();\n } else {\n openAttachmentPicker();\n }\n };\n\n const onSelectItem = (item: UserResponse<StreamChatGenerics>) => {\n setMentionedUsers((prevMentionedUsers) => [...prevMentionedUsers, item.id]);\n };\n\n const pickFile = async () => {\n if (pickDocument === null) {\n console.log(\n 'The file picker is not installed. Check our Getting Started documentation to install it.',\n );\n return;\n }\n\n if (numberOfUploads >= value.maxNumberOfFiles) {\n Alert.alert('Maximum number of files reached');\n return;\n }\n\n const result = await pickDocument({\n maxNumberOfFiles: value.maxNumberOfFiles - numberOfUploads,\n });\n\n const MEGA_BYTES_TO_BYTES = 1024 * 1024;\n const MAX_FILE_SIZE_TO_UPLOAD_IN_MB = 100;\n\n if (!result.cancelled && result.assets) {\n const totalFileSize = result.assets.reduce((acc, asset) => acc + Number(asset.size), 0);\n if (totalFileSize / MEGA_BYTES_TO_BYTES > MAX_FILE_SIZE_TO_UPLOAD_IN_MB) {\n Alert.alert(\n t(\n `Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.`,\n { MAX_FILE_SIZE_TO_UPLOAD_IN_MB },\n ),\n );\n } else {\n result.assets.forEach((asset) => {\n /**\n * TODO: The current tight coupling of images to the image\n * picker does not allow images picked from the file picker\n * to be rendered in a preview via the uploadNewImage call.\n * This should be updated alongside allowing image a file\n * uploads together.\n */\n uploadNewFile(asset);\n });\n }\n }\n };\n\n const removeFile = (id: string) => {\n if (fileUploads.some((file) => file.id === id)) {\n setFileUploads((prevFileUploads) => prevFileUploads.filter((file) => file.id !== id));\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n }\n };\n\n const removeImage = (id: string) => {\n if (imageUploads.some((image) => image.id === id)) {\n setImageUploads((prevImageUploads) => prevImageUploads.filter((image) => image.id !== id));\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n }\n };\n\n const resetInput = (pendingAttachments: Attachment<StreamChatGenerics>[] = []) => {\n setFileUploads([]);\n setGiphyActive(false);\n setShowMoreOptions(true);\n setImageUploads([]);\n setMentionedUsers([]);\n setNumberOfUploads(\n (prevNumberOfUploads) => prevNumberOfUploads - (pendingAttachments?.length || 0),\n );\n setText('');\n };\n\n const mapImageUploadToAttachment = (image: ImageUpload): Attachment<StreamChatGenerics> => {\n const mime_type: string | boolean = lookup(image.file.name as string);\n const name = image.file.name as string;\n return {\n fallback: name,\n image_url: image.url,\n mime_type: mime_type ? mime_type : undefined,\n original_height: image.height,\n original_width: image.width,\n originalImage: image.file,\n type: 'image',\n };\n };\n\n const mapFileUploadToAttachment = (file: FileUpload): Attachment<StreamChatGenerics> => {\n if (file.file.mimeType?.startsWith('image/')) {\n return {\n fallback: file.file.name,\n image_url: file.url,\n mime_type: file.file.mimeType,\n originalFile: file.file,\n type: 'image',\n };\n } else if (file.file.mimeType?.startsWith('audio/')) {\n return {\n asset_url: file.url || file.file.uri,\n duration: file.file.duration,\n file_size: file.file.size,\n mime_type: file.file.mimeType,\n originalFile: file.file,\n title: file.file.name,\n type: 'audio',\n };\n } else if (file.file.mimeType?.startsWith('video/')) {\n return {\n asset_url: file.url || file.file.uri,\n duration: file.file.duration,\n file_size: file.file.size,\n mime_type: file.file.mimeType,\n originalFile: file.file,\n thumb_url: file.thumb_url,\n title: file.file.name,\n type: 'video',\n };\n } else {\n return {\n asset_url: file.url || file.file.uri,\n file_size: file.file.size,\n mime_type: file.file.mimeType,\n originalFile: file.file,\n title: file.file.name,\n type: 'file',\n };\n }\n };\n\n // TODO: Figure out why this is async, as it doesn't await any promise.\n // eslint-disable-next-line require-await\n const sendMessage = async () => {\n if (sending.current) {\n return;\n }\n\n if (!channelCapabities.sendLinks && !!text.match(urlRegex)) {\n Alert.alert(t('Links are disabled'), t('Sending links is not allowed in this conversation'));\n\n return;\n }\n\n sending.current = true;\n\n startCooldown();\n\n const prevText = giphyEnabled && giphyActive ? `/giphy ${text}` : text;\n setText('');\n if (inputBoxRef.current) {\n inputBoxRef.current.clear();\n }\n\n const attachments = [] as Attachment<StreamChatGenerics>[];\n for (const image of imageUploads) {\n if (enableOfflineSupport) {\n if (image.state === FileState.NOT_SUPPORTED) {\n return;\n }\n attachments.push(mapImageUploadToAttachment(image));\n continue;\n }\n\n if ((!image || image.state === FileState.UPLOAD_FAILED) && !enableOfflineSupport) {\n continue;\n }\n\n if (image.state === FileState.UPLOADING) {\n // TODO: show error to user that they should wait until image is uploaded\n if (value.sendImageAsync) {\n /**\n * If user hit send before image uploaded, push ID into a queue to later\n * be matched with the successful CDN response\n */\n setAsyncIds((prevAsyncIds) => [...prevAsyncIds, image.id]);\n } else {\n sending.current = false;\n return setText(prevText);\n }\n }\n\n // To get the mime type of the image from the file name and send it as an response for an image\n if (image.state === FileState.UPLOADED || image.state === FileState.FINISHED) {\n attachments.push(mapImageUploadToAttachment(image));\n }\n }\n\n for (const file of fileUploads) {\n if (enableOfflineSupport) {\n if (file.state === FileState.NOT_SUPPORTED) {\n return;\n }\n attachments.push(mapFileUploadToAttachment(file));\n continue;\n }\n\n if (!file || file.state === FileState.UPLOAD_FAILED) {\n continue;\n }\n\n if (file.state === FileState.UPLOADING) {\n // TODO: show error to user that they should wait until image is uploaded\n sending.current = false;\n return;\n }\n\n if (file.state === FileState.UPLOADED || file.state === FileState.FINISHED) {\n attachments.push(mapFileUploadToAttachment(file));\n }\n }\n\n // Disallow sending message if its empty.\n if (!prevText && attachments.length === 0) {\n sending.current = false;\n return;\n }\n\n if (value.editing && !isEditingBoolean(value.editing)) {\n const updatedMessage = {\n ...value.editing,\n attachments,\n mentioned_users: mentionedUsers,\n quoted_message: undefined,\n text: prevText,\n } as Parameters<StreamChat<StreamChatGenerics>['updateMessage']>[0];\n\n // TODO: Remove this line and show an error when submit fails\n value.clearEditingState();\n\n const updateMessagePromise = value\n .editMessage(\n // @ts-ignore\n removeReservedFields(updatedMessage),\n )\n .then(value.clearEditingState);\n resetInput(attachments);\n logChatPromiseExecution(updateMessagePromise, 'update message');\n\n sending.current = false;\n } else {\n try {\n value.sendMessage({\n attachments,\n mentioned_users: uniq(mentionedUsers),\n /** Parent message id - in case of thread */\n parent_id: thread?.id,\n quoted_message_id:\n typeof value.quotedMessage === 'boolean' ? undefined : value.quotedMessage.id,\n show_in_channel: sendThreadMessageInChannel || undefined,\n text: prevText,\n } as unknown as StreamMessage<StreamChatGenerics>);\n\n value.clearQuotedMessageState();\n sending.current = false;\n resetInput(attachments);\n } catch (_error) {\n sending.current = false;\n if (value.quotedMessage && typeof value.quotedMessage !== 'boolean') {\n value.setQuotedMessageState(value.quotedMessage);\n }\n setText(prevText.slice(giphyEnabled && giphyActive ? 7 : 0)); // 7 because of '/giphy ' length\n console.log('Failed to send message');\n }\n }\n };\n\n const sendMessageAsync = (id: string) => {\n const image = asyncUploads[id];\n if (!image || image.state === FileState.UPLOAD_FAILED) {\n return;\n }\n\n if (image.state === FileState.UPLOADED || image.state === FileState.FINISHED) {\n const attachments = [\n {\n image_url: image.url,\n type: 'image',\n },\n ] as StreamMessage<StreamChatGenerics>['attachments'];\n\n startCooldown();\n try {\n value.sendMessage({\n attachments,\n mentioned_users: [],\n parent_id: thread?.id,\n quoted_message_id:\n typeof value.quotedMessage === 'boolean' ? undefined : value.quotedMessage.id,\n show_in_channel: sendThreadMessageInChannel || undefined,\n text: '',\n } as unknown as Partial<StreamMessage<StreamChatGenerics>>);\n\n setAsyncIds((prevAsyncIds) => prevAsyncIds.splice(prevAsyncIds.indexOf(id), 1));\n setAsyncUploads((prevAsyncUploads) => {\n delete prevAsyncUploads[id];\n return prevAsyncUploads;\n });\n\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n } catch (_error) {\n console.log('Failed');\n }\n }\n };\n\n const setInputBoxRef = (ref: TextInput | null) => {\n inputBoxRef.current = ref;\n if (value.setInputRef) {\n value.setInputRef(ref);\n }\n };\n\n const getTriggerSettings = () => {\n let triggerSettings: TriggerSettings<StreamChatGenerics> = {};\n if (channel) {\n if (value.autoCompleteTriggerSettings) {\n triggerSettings = value.autoCompleteTriggerSettings({\n channel,\n client,\n onMentionSelectItem: onSelectItem,\n });\n } else {\n triggerSettings = ACITriggerSettings<StreamChatGenerics>({\n channel,\n client,\n onMentionSelectItem: onSelectItem,\n });\n }\n }\n return triggerSettings;\n };\n\n const triggerSettings = getTriggerSettings();\n\n const updateMessage = async () => {\n try {\n if (!isEditingBoolean(value.editing)) {\n await client.updateMessage({\n ...value.editing,\n quoted_message: undefined,\n text: giphyEnabled && giphyActive ? `/giphy ${text}` : text,\n } as Parameters<StreamChat<StreamChatGenerics>['updateMessage']>[0]);\n }\n\n resetInput();\n value.clearEditingState();\n } catch (error) {\n console.log(error);\n }\n };\n\n const regexCondition = /File (extension \\.\\w{2,4}|type \\S+) is not supported/;\n\n const getUploadSetStateAction =\n <UploadType extends ImageUpload | FileUpload>(\n id: string,\n fileState: FileStateValue,\n extraData: Partial<UploadType> = {},\n ): React.SetStateAction<UploadType[]> =>\n (prevUploads: UploadType[]) =>\n prevUploads.map((prevUpload) => {\n if (prevUpload.id === id) {\n return {\n ...prevUpload,\n ...extraData,\n state: fileState,\n };\n }\n return prevUpload;\n });\n\n const handleFileOrImageUploadError = (error: unknown, isImageError: boolean, id: string) => {\n if (isImageError) {\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n if (error instanceof Error) {\n if (regexCondition.test(error.message)) {\n return setImageUploads(getUploadSetStateAction(id, FileState.NOT_SUPPORTED));\n }\n\n return setImageUploads(getUploadSetStateAction(id, FileState.UPLOAD_FAILED));\n }\n } else {\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n\n if (error instanceof Error) {\n if (regexCondition.test(error.message)) {\n return setFileUploads(getUploadSetStateAction(id, FileState.NOT_SUPPORTED));\n }\n return setFileUploads(getUploadSetStateAction(id, FileState.UPLOAD_FAILED));\n }\n }\n };\n\n const uploadFile = async ({ newFile }: { newFile: FileUpload }) => {\n const { file, id } = newFile;\n\n setFileUploads(getUploadSetStateAction(id, FileState.UPLOADING));\n\n let response: Partial<SendFileAPIResponse> = {};\n try {\n if (value.doDocUploadRequest) {\n response = await value.doDocUploadRequest(file, channel);\n } else if (channel && file.uri) {\n uploadAbortControllerRef.current.set(\n file.name,\n client.createAbortControllerForNextRequest(),\n );\n response = await channel.sendFile(file.uri, file.name, file.mimeType);\n uploadAbortControllerRef.current.delete(file.name);\n }\n const extraData: Partial<FileUpload> = { thumb_url: response.thumb_url, url: response.file };\n setFileUploads(getUploadSetStateAction(id, FileState.UPLOADED, extraData));\n } catch (error: unknown) {\n if (\n error instanceof Error &&\n (error.name === 'AbortError' || error.name === 'CanceledError')\n ) {\n // nothing to do\n uploadAbortControllerRef.current.delete(file.name);\n return;\n }\n handleFileOrImageUploadError(error, false, id);\n }\n };\n\n const uploadImage = async ({ newImage }: { newImage: ImageUpload }) => {\n const { file, id } = newImage || {};\n\n if (!file) {\n return;\n }\n\n let response = {} as SendFileAPIResponse;\n\n const uri = file.uri || '';\n const filename = file.name ?? uri.replace(/^(file:\\/\\/|content:\\/\\/)/, '');\n\n try {\n const compressedUri = await compressedImageURI(file, value.compressImageQuality);\n const contentType = lookup(filename) || 'multipart/form-data';\n if (value.doImageUploadRequest) {\n response = await value.doImageUploadRequest(file, channel);\n } else if (compressedUri && channel) {\n if (value.sendImageAsync) {\n uploadAbortControllerRef.current.set(\n filename,\n client.createAbortControllerForNextRequest(),\n );\n channel.sendImage(compressedUri, filename, contentType).then(\n (res) => {\n uploadAbortControllerRef.current.delete(filename);\n if (asyncIds.includes(id)) {\n // Evaluates to true if user hit send before image successfully uploaded\n setAsyncUploads((prevAsyncUploads) => {\n prevAsyncUploads[id] = {\n ...prevAsyncUploads[id],\n state: FileState.UPLOADED,\n url: res.file,\n };\n return prevAsyncUploads;\n });\n } else {\n const newImageUploads = getUploadSetStateAction<ImageUpload>(\n id,\n FileState.UPLOADED,\n {\n url: res.file,\n },\n );\n setImageUploads(newImageUploads);\n }\n },\n () => {\n uploadAbortControllerRef.current.delete(filename);\n },\n );\n } else {\n uploadAbortControllerRef.current.set(\n filename,\n client.createAbortControllerForNextRequest(),\n );\n response = await channel.sendImage(compressedUri, filename, contentType);\n uploadAbortControllerRef.current.delete(filename);\n }\n }\n\n if (Object.keys(response).length) {\n const newImageUploads = getUploadSetStateAction<ImageUpload>(id, FileState.UPLOADED, {\n height: file.height,\n url: response.file,\n width: file.width,\n });\n setImageUploads(newImageUploads);\n }\n } catch (error) {\n if (\n error instanceof Error &&\n (error.name === 'AbortError' || error.name === 'CanceledError')\n ) {\n // nothing to do\n uploadAbortControllerRef.current.delete(filename);\n return;\n }\n handleFileOrImageUploadError(error, true, id);\n }\n };\n\n const uploadNewFile = async (file: File) => {\n const id: string = generateRandomId();\n\n const isBlockedFileExtension: boolean | undefined = blockedFileExtensionTypes?.some(\n (fileExtensionType: string) => file.name?.includes(fileExtensionType),\n );\n const isBlockedFileMimeType: boolean | undefined = blockedFileMimeTypes?.some(\n (mimeType: string) => file.name?.includes(mimeType),\n );\n\n const fileState =\n isBlockedFileExtension || isBlockedFileMimeType\n ? FileState.NOT_SUPPORTED\n : FileState.UPLOADING;\n\n const newFile: FileUpload = {\n duration: 0,\n file,\n id: file.id || id,\n paused: true,\n progress: 0,\n state: fileState,\n };\n\n await Promise.all([\n setFileUploads((prevFileUploads) => prevFileUploads.concat([newFile])),\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads + 1),\n ]);\n\n if (!isBlockedFileExtension) {\n uploadFile({ newFile });\n }\n };\n\n const uploadNewImage = async (image: Partial<Asset>) => {\n const id = generateRandomId();\n\n const isBlockedImageMimeType = blockedImageMimeTypes?.some((mimeType: string) =>\n image.uri?.includes(mimeType),\n );\n\n const isBlockedImageExtension = blockedImageExtensionTypes?.some((imageExtensionType: string) =>\n image.uri?.includes(imageExtensionType),\n );\n\n const imageState =\n isBlockedImageExtension || isBlockedImageMimeType\n ? FileState.NOT_SUPPORTED\n : FileState.UPLOADING;\n\n const newImage: ImageUpload = {\n file: image,\n height: image.height,\n id,\n state: imageState,\n url: image.uri,\n width: image.width,\n };\n\n await Promise.all([\n setImageUploads((prevImageUploads) => prevImageUploads.concat([newImage])),\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads + 1),\n ]);\n\n if (!isBlockedImageExtension) {\n uploadImage({ newImage });\n }\n };\n\n const messageInputContext = useCreateMessageInputContext({\n appendText,\n asyncIds,\n asyncUploads,\n closeAttachmentPicker,\n cooldownEndsAt,\n fileUploads,\n giphyActive,\n imageUploads,\n inputBoxRef,\n isValidMessage,\n mentionedUsers,\n numberOfUploads,\n onChange,\n onSelectItem,\n openAttachmentPicker,\n openCommandsPicker,\n openFilePicker: pickFile,\n openMentionsPicker,\n pickFile,\n removeFile,\n removeImage,\n resetInput,\n selectedPicker,\n sending,\n sendMessageAsync,\n sendThreadMessageInChannel,\n setAsyncIds,\n setAsyncUploads,\n setFileUploads,\n setGiphyActive,\n setImageUploads,\n setInputBoxRef,\n setMentionedUsers,\n setNumberOfUploads,\n setSendThreadMessageInChannel,\n setShowMoreOptions,\n setText,\n showMoreOptions,\n text,\n thread,\n toggleAttachmentPicker,\n triggerSettings,\n updateMessage,\n uploadFile,\n uploadImage,\n uploadNewFile,\n uploadNewImage,\n ...value,\n sendMessage, // overriding the originally passed in sendMessage\n });\n\n return (\n <MessageInputContext.Provider\n value={messageInputContext as unknown as MessageInputContextValue}\n >\n {children}\n </MessageInputContext.Provider>\n );\n};\n\nexport const useMessageInputContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => {\n const contextValue = useContext(\n MessageInputContext,\n ) as unknown as MessageInputContextValue<StreamChatGenerics>;\n\n if (contextValue === DEFAULT_BASE_CONTEXT_VALUE && !isTestEnvironment()) {\n throw new Error(\n `The useMessageInputContext hook was called outside of the MessageInputContext provider. Make sure you have configured Channel component correctly - https://getstream.io/chat/docs/sdk/reactnative/basics/hello_stream_chat/#channel`,\n );\n }\n\n return contextValue;\n};\n\n/**\n * Typescript currently does not support partial inference so if MessageInputContext\n * typing is desired while using the HOC withMessageInputContext the Props for the\n * wrapped component must be provided as the first generic.\n */\nexport const withMessageInputContext = <\n P extends UnknownType,\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n Component: React.ComponentType<P>,\n): React.FC<Omit<P, keyof MessageInputContextValue<StreamChatGenerics>>> => {\n const WithMessageInputContextComponent = (\n props: Omit<P, keyof MessageInputContextValue<StreamChatGenerics>>,\n ) => {\n const messageInputContext = useMessageInputContext<StreamChatGenerics>();\n\n return <Component {...(props as P)} {...messageInputContext} />;\n };\n WithMessageInputContextComponent.displayName = `WithMessageInputContext${getDisplayName(\n Component,\n )}`;\n return WithMessageInputContextComponent;\n};\n"],"mappings":"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"}
@@ -90,7 +90,7 @@ var useCreateMessageInputContext = function useCreateMessageInputContext(_ref) {
90
90
  uploadNewFile = _ref.uploadNewFile,
91
91
  uploadNewImage = _ref.uploadNewImage,
92
92
  UploadProgressIndicator = _ref.UploadProgressIndicator;
93
- var editingExists = !!editing;
93
+ var editingdep = typeof editing === 'boolean' ? editing : editing == null ? void 0 : editing.id;
94
94
  var fileUploadsValue = fileUploads.map(function (_ref2) {
95
95
  var duration = _ref2.duration,
96
96
  paused = _ref2.paused,
@@ -193,7 +193,7 @@ var useCreateMessageInputContext = function useCreateMessageInputContext(_ref) {
193
193
  uploadNewImage: uploadNewImage,
194
194
  UploadProgressIndicator: UploadProgressIndicator
195
195
  };
196
- }, [cooldownEndsAt, editingExists, fileUploadsValue, giphyActive, imageUploadsValue, maxMessageLength, mentionedUsersLength, quotedMessageId, selectedPicker, sendThreadMessageInChannel, showMoreOptions, text, threadId]);
196
+ }, [cooldownEndsAt, editingdep, fileUploadsValue, giphyActive, imageUploadsValue, maxMessageLength, mentionedUsersLength, quotedMessageId, selectedPicker, sendThreadMessageInChannel, showMoreOptions, text, threadId]);
197
197
  return messageInputContext;
198
198
  };
199
199
  exports.useCreateMessageInputContext = useCreateMessageInputContext;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","useCreateMessageInputContext","_ref","additionalTextInputProps","appendText","asyncIds","asyncUploads","AttachButton","autoCompleteSuggestionsLimit","clearEditingState","clearQuotedMessageState","closeAttachmentPicker","CommandsButton","compressImageQuality","cooldownEndsAt","CooldownTimer","doDocUploadRequest","doImageUploadRequest","editing","editMessage","FileUploadPreview","fileUploads","giphyActive","hasCommands","hasFilePicker","hasImagePicker","ImageUploadPreview","imageUploads","initialValue","Input","inputBoxRef","InputButtons","InputEditingStateHeader","InputGiphySearch","InputReplyStateHeader","isValidMessage","maxMessageLength","maxNumberOfFiles","mentionAllAppUsersEnabled","mentionAllAppUsersQuery","mentionedUsers","MoreOptionsButton","numberOfLines","numberOfUploads","onChange","onChangeText","onSelectItem","openAttachmentPicker","openCommandsPicker","openFilePicker","openMentionsPicker","pickFile","quotedMessage","removeFile","removeImage","resetInput","selectedPicker","SendButton","sendImageAsync","sending","sendMessage","sendMessageAsync","SendMessageDisallowedIndicator","sendThreadMessageInChannel","setAsyncIds","setAsyncUploads","setFileUploads","setGiphyActive","setImageUploads","setInputBoxRef","setInputRef","setMentionedUsers","setNumberOfUploads","setQuotedMessageState","setSendThreadMessageInChannel","setShowMoreOptions","setText","showMoreOptions","ShowThreadMessageInChannelButton","text","thread","toggleAttachmentPicker","triggerSettings","updateMessage","uploadFile","uploadImage","uploadNewFile","uploadNewImage","UploadProgressIndicator","editingExists","fileUploadsValue","map","_ref2","duration","paused","progress","state","join","imageUploadsValue","_ref3","mentionedUsersLength","length","quotedMessageId","id","threadId","messageInputContext","useMemo","exports"],"sources":["useCreateMessageInputContext.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\nimport type { ThreadContextValue } from '../../threadContext/ThreadContext';\nimport type { MessageInputContextValue } from '../MessageInputContext';\n\nexport const useCreateMessageInputContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n additionalTextInputProps,\n appendText,\n asyncIds,\n asyncUploads,\n AttachButton,\n autoCompleteSuggestionsLimit,\n clearEditingState,\n clearQuotedMessageState,\n closeAttachmentPicker,\n CommandsButton,\n compressImageQuality,\n cooldownEndsAt,\n CooldownTimer,\n doDocUploadRequest,\n doImageUploadRequest,\n editing,\n editMessage,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n ImageUploadPreview,\n imageUploads,\n initialValue,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isValidMessage,\n maxMessageLength,\n maxNumberOfFiles,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n mentionedUsers,\n MoreOptionsButton,\n numberOfLines,\n numberOfUploads,\n onChange,\n onChangeText,\n onSelectItem,\n openAttachmentPicker,\n openCommandsPicker,\n openFilePicker,\n openMentionsPicker,\n pickFile,\n quotedMessage,\n removeFile,\n removeImage,\n resetInput,\n selectedPicker,\n SendButton,\n sendImageAsync,\n sending,\n sendMessage,\n sendMessageAsync,\n SendMessageDisallowedIndicator,\n sendThreadMessageInChannel,\n setAsyncIds,\n setAsyncUploads,\n setFileUploads,\n setGiphyActive,\n setImageUploads,\n setInputBoxRef,\n setInputRef,\n setMentionedUsers,\n setNumberOfUploads,\n setQuotedMessageState,\n setSendThreadMessageInChannel,\n setShowMoreOptions,\n setText,\n showMoreOptions,\n ShowThreadMessageInChannelButton,\n text,\n thread,\n toggleAttachmentPicker,\n triggerSettings,\n updateMessage,\n uploadFile,\n uploadImage,\n uploadNewFile,\n uploadNewImage,\n UploadProgressIndicator,\n}: MessageInputContextValue<StreamChatGenerics> &\n Pick<ThreadContextValue<StreamChatGenerics>, 'thread'>) => {\n const editingExists = !!editing;\n const fileUploadsValue = fileUploads\n .map(({ duration, paused, progress, state }) => `${state},${paused},${progress},${duration}`)\n .join();\n const imageUploadsValue = imageUploads.map(({ state }) => state).join();\n const mentionedUsersLength = mentionedUsers.length;\n const quotedMessageId = quotedMessage\n ? typeof quotedMessage === 'boolean'\n ? ''\n : quotedMessage.id\n : '';\n const threadId = thread?.id;\n\n const messageInputContext: MessageInputContextValue<StreamChatGenerics> = useMemo(\n () => ({\n additionalTextInputProps,\n appendText,\n asyncIds,\n asyncUploads,\n AttachButton,\n autoCompleteSuggestionsLimit,\n clearEditingState,\n clearQuotedMessageState,\n closeAttachmentPicker,\n CommandsButton,\n compressImageQuality,\n cooldownEndsAt,\n CooldownTimer,\n doDocUploadRequest,\n doImageUploadRequest,\n editing,\n editMessage,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n ImageUploadPreview,\n imageUploads,\n initialValue,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isValidMessage,\n maxMessageLength,\n maxNumberOfFiles,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n mentionedUsers,\n MoreOptionsButton,\n numberOfLines,\n numberOfUploads,\n onChange,\n onChangeText,\n onSelectItem,\n openAttachmentPicker,\n openCommandsPicker,\n openFilePicker,\n openMentionsPicker,\n pickFile,\n quotedMessage,\n removeFile,\n removeImage,\n resetInput,\n selectedPicker,\n SendButton,\n sendImageAsync,\n sending,\n sendMessage,\n sendMessageAsync,\n SendMessageDisallowedIndicator,\n sendThreadMessageInChannel,\n setAsyncIds,\n setAsyncUploads,\n setFileUploads,\n setGiphyActive,\n setImageUploads,\n setInputBoxRef,\n setInputRef,\n setMentionedUsers,\n setNumberOfUploads,\n setQuotedMessageState,\n setSendThreadMessageInChannel,\n setShowMoreOptions,\n setText,\n showMoreOptions,\n ShowThreadMessageInChannelButton,\n text,\n toggleAttachmentPicker,\n triggerSettings,\n updateMessage,\n uploadFile,\n uploadImage,\n uploadNewFile,\n uploadNewImage,\n UploadProgressIndicator,\n }),\n [\n cooldownEndsAt,\n editingExists,\n fileUploadsValue,\n giphyActive,\n imageUploadsValue,\n maxMessageLength,\n mentionedUsersLength,\n quotedMessageId,\n selectedPicker,\n sendThreadMessageInChannel,\n showMoreOptions,\n text,\n threadId,\n ],\n );\n\n return messageInputContext;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","useCreateMessageInputContext","_ref","additionalTextInputProps","appendText","asyncIds","asyncUploads","AttachButton","autoCompleteSuggestionsLimit","clearEditingState","clearQuotedMessageState","closeAttachmentPicker","CommandsButton","compressImageQuality","cooldownEndsAt","CooldownTimer","doDocUploadRequest","doImageUploadRequest","editing","editMessage","FileUploadPreview","fileUploads","giphyActive","hasCommands","hasFilePicker","hasImagePicker","ImageUploadPreview","imageUploads","initialValue","Input","inputBoxRef","InputButtons","InputEditingStateHeader","InputGiphySearch","InputReplyStateHeader","isValidMessage","maxMessageLength","maxNumberOfFiles","mentionAllAppUsersEnabled","mentionAllAppUsersQuery","mentionedUsers","MoreOptionsButton","numberOfLines","numberOfUploads","onChange","onChangeText","onSelectItem","openAttachmentPicker","openCommandsPicker","openFilePicker","openMentionsPicker","pickFile","quotedMessage","removeFile","removeImage","resetInput","selectedPicker","SendButton","sendImageAsync","sending","sendMessage","sendMessageAsync","SendMessageDisallowedIndicator","sendThreadMessageInChannel","setAsyncIds","setAsyncUploads","setFileUploads","setGiphyActive","setImageUploads","setInputBoxRef","setInputRef","setMentionedUsers","setNumberOfUploads","setQuotedMessageState","setSendThreadMessageInChannel","setShowMoreOptions","setText","showMoreOptions","ShowThreadMessageInChannelButton","text","thread","toggleAttachmentPicker","triggerSettings","updateMessage","uploadFile","uploadImage","uploadNewFile","uploadNewImage","UploadProgressIndicator","editingdep","id","fileUploadsValue","map","_ref2","duration","paused","progress","state","join","imageUploadsValue","_ref3","mentionedUsersLength","length","quotedMessageId","threadId","messageInputContext","useMemo","exports"],"sources":["useCreateMessageInputContext.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\nimport type { ThreadContextValue } from '../../threadContext/ThreadContext';\nimport type { MessageInputContextValue } from '../MessageInputContext';\n\nexport const useCreateMessageInputContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n additionalTextInputProps,\n appendText,\n asyncIds,\n asyncUploads,\n AttachButton,\n autoCompleteSuggestionsLimit,\n clearEditingState,\n clearQuotedMessageState,\n closeAttachmentPicker,\n CommandsButton,\n compressImageQuality,\n cooldownEndsAt,\n CooldownTimer,\n doDocUploadRequest,\n doImageUploadRequest,\n editing,\n editMessage,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n ImageUploadPreview,\n imageUploads,\n initialValue,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isValidMessage,\n maxMessageLength,\n maxNumberOfFiles,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n mentionedUsers,\n MoreOptionsButton,\n numberOfLines,\n numberOfUploads,\n onChange,\n onChangeText,\n onSelectItem,\n openAttachmentPicker,\n openCommandsPicker,\n openFilePicker,\n openMentionsPicker,\n pickFile,\n quotedMessage,\n removeFile,\n removeImage,\n resetInput,\n selectedPicker,\n SendButton,\n sendImageAsync,\n sending,\n sendMessage,\n sendMessageAsync,\n SendMessageDisallowedIndicator,\n sendThreadMessageInChannel,\n setAsyncIds,\n setAsyncUploads,\n setFileUploads,\n setGiphyActive,\n setImageUploads,\n setInputBoxRef,\n setInputRef,\n setMentionedUsers,\n setNumberOfUploads,\n setQuotedMessageState,\n setSendThreadMessageInChannel,\n setShowMoreOptions,\n setText,\n showMoreOptions,\n ShowThreadMessageInChannelButton,\n text,\n thread,\n toggleAttachmentPicker,\n triggerSettings,\n updateMessage,\n uploadFile,\n uploadImage,\n uploadNewFile,\n uploadNewImage,\n UploadProgressIndicator,\n}: MessageInputContextValue<StreamChatGenerics> &\n Pick<ThreadContextValue<StreamChatGenerics>, 'thread'>) => {\n const editingdep = typeof editing === 'boolean' ? editing : editing?.id;\n const fileUploadsValue = fileUploads\n .map(({ duration, paused, progress, state }) => `${state},${paused},${progress},${duration}`)\n .join();\n const imageUploadsValue = imageUploads.map(({ state }) => state).join();\n const mentionedUsersLength = mentionedUsers.length;\n const quotedMessageId = quotedMessage\n ? typeof quotedMessage === 'boolean'\n ? ''\n : quotedMessage.id\n : '';\n const threadId = thread?.id;\n\n const messageInputContext: MessageInputContextValue<StreamChatGenerics> = useMemo(\n () => ({\n additionalTextInputProps,\n appendText,\n asyncIds,\n asyncUploads,\n AttachButton,\n autoCompleteSuggestionsLimit,\n clearEditingState,\n clearQuotedMessageState,\n closeAttachmentPicker,\n CommandsButton,\n compressImageQuality,\n cooldownEndsAt,\n CooldownTimer,\n doDocUploadRequest,\n doImageUploadRequest,\n editing,\n editMessage,\n FileUploadPreview,\n fileUploads,\n giphyActive,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n ImageUploadPreview,\n imageUploads,\n initialValue,\n Input,\n inputBoxRef,\n InputButtons,\n InputEditingStateHeader,\n InputGiphySearch,\n InputReplyStateHeader,\n isValidMessage,\n maxMessageLength,\n maxNumberOfFiles,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n mentionedUsers,\n MoreOptionsButton,\n numberOfLines,\n numberOfUploads,\n onChange,\n onChangeText,\n onSelectItem,\n openAttachmentPicker,\n openCommandsPicker,\n openFilePicker,\n openMentionsPicker,\n pickFile,\n quotedMessage,\n removeFile,\n removeImage,\n resetInput,\n selectedPicker,\n SendButton,\n sendImageAsync,\n sending,\n sendMessage,\n sendMessageAsync,\n SendMessageDisallowedIndicator,\n sendThreadMessageInChannel,\n setAsyncIds,\n setAsyncUploads,\n setFileUploads,\n setGiphyActive,\n setImageUploads,\n setInputBoxRef,\n setInputRef,\n setMentionedUsers,\n setNumberOfUploads,\n setQuotedMessageState,\n setSendThreadMessageInChannel,\n setShowMoreOptions,\n setText,\n showMoreOptions,\n ShowThreadMessageInChannelButton,\n text,\n toggleAttachmentPicker,\n triggerSettings,\n updateMessage,\n uploadFile,\n uploadImage,\n uploadNewFile,\n uploadNewImage,\n UploadProgressIndicator,\n }),\n [\n cooldownEndsAt,\n editingdep,\n fileUploadsValue,\n giphyActive,\n imageUploadsValue,\n maxMessageLength,\n mentionedUsersLength,\n quotedMessageId,\n selectedPicker,\n sendThreadMessageInChannel,\n showMoreOptions,\n text,\n threadId,\n ],\n );\n\n return messageInputContext;\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_utils","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","call","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","minLen","_arrayLikeToArray","n","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","isEditingBoolean","editing","exports","useMessageDetailsForState","message","initialValue","_useState","useState","_useState2","_slicedToArray2","fileUploads","setFileUploads","_useState3","_useState4","imageUploads","setImageUploads","_useState5","_useState6","mentionedUsers","setMentionedUsers","_useState7","_useState8","numberOfUploads","setNumberOfUploads","_useState9","_useState10","showMoreOptions","setShowMoreOptions","initialTextValue","_useState11","_useState12","text","setText","useEffect","messageValue","id","updated_at","mentioned_users","map","user","newFileUploads","newImageUploads","attachments","_iterator","_step","attachment","type","generateRandomId","push","file","mimeType","mime_type","title","size","file_size","state","url","asset_url","fallback","image_url","thumb_url"],"sources":["useMessageDetailsForState.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\nimport { generateRandomId } from '../../../utils/utils';\n\nimport type { FileUpload, ImageUpload, MessageInputContextValue } from '../MessageInputContext';\n\nexport const isEditingBoolean = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n editing: MessageInputContextValue<StreamChatGenerics>['editing'],\n): editing is boolean => typeof editing === 'boolean';\n\nexport const useMessageDetailsForState = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n message: MessageInputContextValue<StreamChatGenerics>['editing'],\n initialValue?: string,\n) => {\n const [fileUploads, setFileUploads] = useState<FileUpload[]>([]);\n const [imageUploads, setImageUploads] = useState<ImageUpload[]>([]);\n const [mentionedUsers, setMentionedUsers] = useState<string[]>([]);\n const [numberOfUploads, setNumberOfUploads] = useState(0);\n const [showMoreOptions, setShowMoreOptions] = useState(true);\n const initialTextValue = initialValue || '';\n const [text, setText] = useState(initialTextValue);\n\n useEffect(() => {\n if (text !== initialTextValue) {\n setShowMoreOptions(false);\n }\n }, [text]);\n\n const messageValue =\n typeof message === 'boolean' ? '' : `${message.id}${message.text}${message.updated_at}`;\n\n useEffect(() => {\n if (!isEditingBoolean<StreamChatGenerics>(message) && Array.isArray(message?.mentioned_users)) {\n const mentionedUsers = message.mentioned_users.map((user) => user.id);\n setMentionedUsers(mentionedUsers);\n }\n }, [messageValue]);\n\n useEffect(() => {\n if (message && !isEditingBoolean<StreamChatGenerics>(message)) {\n setText(message?.text || '');\n const newFileUploads: FileUpload[] = [];\n const newImageUploads: ImageUpload[] = [];\n\n const attachments = Array.isArray(message.attachments) ? message.attachments : [];\n\n for (const attachment of attachments) {\n if (attachment.type === 'file') {\n const id = generateRandomId();\n newFileUploads.push({\n file: {\n mimeType: attachment.mime_type,\n name: attachment.title || '',\n size: attachment.file_size,\n },\n id,\n state: 'finished',\n url: attachment.asset_url,\n });\n } else if (attachment.type === 'image') {\n const id = generateRandomId();\n newImageUploads.push({\n file: {\n name: attachment.fallback,\n size: attachment.file_size,\n type: attachment.type,\n },\n id,\n state: 'finished',\n url: attachment.image_url || attachment.asset_url || attachment.thumb_url,\n });\n } else if (attachment.type === 'video') {\n const id = generateRandomId();\n newFileUploads.push({\n file: {\n mimeType: attachment.mime_type,\n name: attachment.title || '',\n size: attachment.file_size,\n },\n id,\n state: 'finished',\n thumb_url: attachment.thumb_url,\n url: attachment.asset_url,\n });\n }\n }\n if (newFileUploads.length) {\n setFileUploads(newFileUploads);\n }\n if (newImageUploads.length) {\n setImageUploads(newImageUploads);\n }\n }\n }, [messageValue]);\n\n return {\n fileUploads,\n imageUploads,\n mentionedUsers,\n numberOfUploads,\n setFileUploads,\n setImageUploads,\n setMentionedUsers,\n setNumberOfUploads,\n setShowMoreOptions,\n setText,\n showMoreOptions,\n text,\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_utils","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","call","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","minLen","_arrayLikeToArray","n","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","isEditingBoolean","editing","exports","useMessageDetailsForState","message","initialValue","_useState","useState","_useState2","_slicedToArray2","fileUploads","setFileUploads","_useState3","_useState4","imageUploads","setImageUploads","_useState5","_useState6","mentionedUsers","setMentionedUsers","_useState7","_useState8","numberOfUploads","setNumberOfUploads","_useState9","_useState10","showMoreOptions","setShowMoreOptions","initialTextValue","_useState11","_useState12","text","setText","useEffect","messageValue","id","updated_at","mentioned_users","map","user","newFileUploads","newImageUploads","attachments","_iterator","_step","attachment","type","generateRandomId","push","file","mimeType","mime_type","title","size","file_size","state","url","asset_url","fallback","image_url","thumb_url"],"sources":["useMessageDetailsForState.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { DefaultStreamChatGenerics, FileUpload, ImageUpload } from '../../../types/types';\nimport { generateRandomId } from '../../../utils/utils';\n\nimport type { MessageInputContextValue } from '../MessageInputContext';\n\nexport const isEditingBoolean = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n editing: MessageInputContextValue<StreamChatGenerics>['editing'],\n): editing is boolean => typeof editing === 'boolean';\n\nexport const useMessageDetailsForState = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n message: MessageInputContextValue<StreamChatGenerics>['editing'],\n initialValue?: string,\n) => {\n const [fileUploads, setFileUploads] = useState<FileUpload[]>([]);\n const [imageUploads, setImageUploads] = useState<ImageUpload[]>([]);\n const [mentionedUsers, setMentionedUsers] = useState<string[]>([]);\n const [numberOfUploads, setNumberOfUploads] = useState(0);\n const [showMoreOptions, setShowMoreOptions] = useState(true);\n const initialTextValue = initialValue || '';\n const [text, setText] = useState(initialTextValue);\n\n useEffect(() => {\n if (text !== initialTextValue) {\n setShowMoreOptions(false);\n }\n }, [text]);\n\n const messageValue =\n typeof message === 'boolean' ? '' : `${message.id}${message.text}${message.updated_at}`;\n\n useEffect(() => {\n if (!isEditingBoolean<StreamChatGenerics>(message) && Array.isArray(message?.mentioned_users)) {\n const mentionedUsers = message.mentioned_users.map((user) => user.id);\n setMentionedUsers(mentionedUsers);\n }\n }, [messageValue]);\n\n useEffect(() => {\n if (message && !isEditingBoolean<StreamChatGenerics>(message)) {\n setText(message?.text || '');\n const newFileUploads: FileUpload[] = [];\n const newImageUploads: ImageUpload[] = [];\n\n const attachments = Array.isArray(message.attachments) ? message.attachments : [];\n\n for (const attachment of attachments) {\n if (attachment.type === 'file') {\n const id = generateRandomId();\n newFileUploads.push({\n file: {\n mimeType: attachment.mime_type,\n name: attachment.title || '',\n size: attachment.file_size,\n },\n id,\n state: 'finished',\n url: attachment.asset_url,\n });\n } else if (attachment.type === 'image') {\n const id = generateRandomId();\n newImageUploads.push({\n file: {\n name: attachment.fallback,\n size: attachment.file_size,\n type: attachment.type,\n },\n id,\n state: 'finished',\n url: attachment.image_url || attachment.asset_url || attachment.thumb_url,\n });\n } else if (attachment.type === 'video') {\n const id = generateRandomId();\n newFileUploads.push({\n file: {\n mimeType: attachment.mime_type,\n name: attachment.title || '',\n size: attachment.file_size,\n },\n id,\n state: 'finished',\n thumb_url: attachment.thumb_url,\n url: attachment.asset_url,\n });\n }\n }\n if (newFileUploads.length) {\n setFileUploads(newFileUploads);\n }\n if (newImageUploads.length) {\n setImageUploads(newImageUploads);\n }\n }\n }, [messageValue]);\n\n return {\n fileUploads,\n imageUploads,\n mentionedUsers,\n numberOfUploads,\n setFileUploads,\n setImageUploads,\n setMentionedUsers,\n setNumberOfUploads,\n setShowMoreOptions,\n setText,\n showMoreOptions,\n text,\n };\n};\n"],"mappings":"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"}