stream-chat-react-native-core 4.3.1 → 4.4.0-beta.3
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.
- package/README.md +3 -3
- package/lib/commonjs/components/Attachment/Card.js +25 -28
- package/lib/commonjs/components/Attachment/Card.js.map +1 -1
- package/lib/commonjs/components/Attachment/FileAttachment.js +19 -24
- package/lib/commonjs/components/Attachment/FileAttachment.js.map +1 -1
- package/lib/commonjs/components/Attachment/Giphy.js +27 -25
- package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
- package/lib/commonjs/components/Attachment/hooks/useGoToURL.js +42 -0
- package/lib/commonjs/components/Attachment/hooks/useGoToURL.js.map +1 -0
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +11 -7
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreatePaginatedMessageListContext.js +4 -12
- package/lib/commonjs/components/Channel/hooks/useCreatePaginatedMessageListContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateThreadContext.js +4 -12
- package/lib/commonjs/components/Channel/hooks/useCreateThreadContext.js.map +1 -1
- package/lib/commonjs/components/Chat/Chat.js +8 -4
- package/lib/commonjs/components/Chat/Chat.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useAppSettings.js +80 -0
- package/lib/commonjs/components/Chat/hooks/useAppSettings.js.map +1 -0
- package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js +3 -1
- package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js.map +1 -1
- package/lib/commonjs/components/Message/Message.js +27 -22
- package/lib/commonjs/components/Message/Message.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +28 -14
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js +108 -40
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +117 -24
- package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/UploadProgressIndicator.js +52 -20
- package/lib/commonjs/components/MessageInput/UploadProgressIndicator.js.map +1 -1
- package/lib/commonjs/components/MessageList/ScrollToBottomButton.js +8 -6
- package/lib/commonjs/components/MessageList/ScrollToBottomButton.js.map +1 -1
- package/lib/commonjs/contexts/chatContext/ChatContext.js +2 -2
- package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
- package/lib/commonjs/contexts/messageContext/MessageContext.js +2 -2
- package/lib/commonjs/contexts/messageContext/MessageContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +145 -119
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/commonjs/i18n/en.json +2 -0
- package/lib/commonjs/i18n/fr.json +2 -0
- package/lib/commonjs/i18n/hi.json +2 -0
- package/lib/commonjs/i18n/it.json +2 -0
- package/lib/commonjs/i18n/ja.json +3 -1
- package/lib/commonjs/i18n/ko.json +3 -1
- package/lib/commonjs/i18n/nl.json +2 -0
- package/lib/commonjs/i18n/ru.json +2 -0
- package/lib/commonjs/i18n/tr.json +2 -0
- package/lib/commonjs/icons/Warning.js +38 -0
- package/lib/commonjs/icons/Warning.js.map +1 -0
- package/lib/commonjs/icons/index.js +13 -0
- package/lib/commonjs/icons/index.js.map +1 -1
- package/lib/commonjs/utils/utils.js +33 -2
- package/lib/commonjs/utils/utils.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/Card.js +25 -28
- package/lib/module/components/Attachment/Card.js.map +1 -1
- package/lib/module/components/Attachment/FileAttachment.js +19 -24
- package/lib/module/components/Attachment/FileAttachment.js.map +1 -1
- package/lib/module/components/Attachment/Giphy.js +27 -25
- package/lib/module/components/Attachment/Giphy.js.map +1 -1
- package/lib/module/components/Attachment/hooks/useGoToURL.js +42 -0
- package/lib/module/components/Attachment/hooks/useGoToURL.js.map +1 -0
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js +11 -7
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreatePaginatedMessageListContext.js +4 -12
- package/lib/module/components/Channel/hooks/useCreatePaginatedMessageListContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateThreadContext.js +4 -12
- package/lib/module/components/Channel/hooks/useCreateThreadContext.js.map +1 -1
- package/lib/module/components/Chat/Chat.js +8 -4
- package/lib/module/components/Chat/Chat.js.map +1 -1
- package/lib/module/components/Chat/hooks/useAppSettings.js +80 -0
- package/lib/module/components/Chat/hooks/useAppSettings.js.map +1 -0
- package/lib/module/components/Chat/hooks/useCreateChatContext.js +3 -1
- package/lib/module/components/Chat/hooks/useCreateChatContext.js.map +1 -1
- package/lib/module/components/Message/Message.js +27 -22
- package/lib/module/components/Message/Message.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/utils/renderText.js +28 -14
- package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
- package/lib/module/components/MessageInput/FileUploadPreview.js +108 -40
- package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/ImageUploadPreview.js +117 -24
- package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/UploadProgressIndicator.js +52 -20
- package/lib/module/components/MessageInput/UploadProgressIndicator.js.map +1 -1
- package/lib/module/components/MessageList/ScrollToBottomButton.js +8 -6
- package/lib/module/components/MessageList/ScrollToBottomButton.js.map +1 -1
- package/lib/module/contexts/chatContext/ChatContext.js +2 -2
- package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
- package/lib/module/contexts/messageContext/MessageContext.js +2 -2
- package/lib/module/contexts/messageContext/MessageContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js +145 -119
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/module/i18n/en.json +2 -0
- package/lib/module/i18n/fr.json +2 -0
- package/lib/module/i18n/hi.json +2 -0
- package/lib/module/i18n/it.json +2 -0
- package/lib/module/i18n/ja.json +3 -1
- package/lib/module/i18n/ko.json +3 -1
- package/lib/module/i18n/nl.json +2 -0
- package/lib/module/i18n/ru.json +2 -0
- package/lib/module/i18n/tr.json +2 -0
- package/lib/module/icons/Warning.js +38 -0
- package/lib/module/icons/Warning.js.map +1 -0
- package/lib/module/icons/index.js +13 -0
- package/lib/module/icons/index.js.map +1 -1
- package/lib/module/utils/utils.js +33 -2
- package/lib/module/utils/utils.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Attachment/FileAttachment.d.ts +0 -1
- package/lib/typescript/components/Attachment/hooks/useGoToURL.d.ts +2 -0
- package/lib/typescript/components/Chat/hooks/__tests__/useAppSettings.test.d.ts +1 -0
- package/lib/typescript/components/Chat/hooks/useAppSettings.d.ts +3 -0
- package/lib/typescript/components/Chat/hooks/useCreateChatContext.d.ts +1 -1
- package/lib/typescript/components/Message/Message.d.ts +12 -2
- package/lib/typescript/components/MessageInput/UploadProgressIndicator.d.ts +1 -3
- package/lib/typescript/contexts/chatContext/ChatContext.d.ts +5 -1
- package/lib/typescript/contexts/messageContext/MessageContext.d.ts +4 -4
- package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +3 -3
- package/lib/typescript/contexts/themeContext/utils/theme.d.ts +1 -0
- package/lib/typescript/i18n/en.json +2 -0
- package/lib/typescript/i18n/fr.json +2 -0
- package/lib/typescript/i18n/hi.json +2 -0
- package/lib/typescript/i18n/it.json +2 -0
- package/lib/typescript/i18n/ja.json +3 -1
- package/lib/typescript/i18n/ko.json +3 -1
- package/lib/typescript/i18n/nl.json +2 -0
- package/lib/typescript/i18n/ru.json +2 -0
- package/lib/typescript/i18n/tr.json +2 -0
- package/lib/typescript/icons/Warning.d.ts +3 -0
- package/lib/typescript/icons/index.d.ts +1 -0
- package/lib/typescript/utils/Streami18n.d.ts +6 -0
- package/lib/typescript/utils/utils.d.ts +15 -2
- package/package.json +2 -2
- package/src/components/Attachment/Card.tsx +5 -13
- package/src/components/Attachment/FileAttachment.tsx +5 -13
- package/src/components/Attachment/Giphy.tsx +3 -1
- package/src/components/Attachment/__tests__/Attachment.test.js +39 -0
- package/src/components/Attachment/hooks/useGoToURL.ts +27 -0
- package/src/components/AttachmentPicker/AttachmentPicker.tsx +23 -13
- package/src/components/Channel/Channel.tsx +1 -1
- package/src/components/Channel/hooks/useCreatePaginatedMessageListContext.ts +3 -9
- package/src/components/Channel/hooks/useCreateThreadContext.ts +3 -9
- package/src/components/ChannelList/hooks/listeners/__tests__/useChannelUpdated.test.tsx +1 -0
- package/src/components/Chat/Chat.tsx +4 -0
- package/src/components/Chat/hooks/__tests__/useAppSettings.test.tsx +34 -0
- package/src/components/Chat/hooks/useAppSettings.ts +39 -0
- package/src/components/Chat/hooks/useCreateChatContext.ts +2 -0
- package/src/components/Message/Message.tsx +56 -48
- package/src/components/Message/MessageSimple/utils/renderText.tsx +17 -2
- package/src/components/MessageInput/FileUploadPreview.tsx +60 -14
- package/src/components/MessageInput/ImageUploadPreview.tsx +95 -42
- package/src/components/MessageInput/UploadProgressIndicator.tsx +49 -22
- package/src/components/MessageInput/__tests__/FileUploadPreview.test.js +50 -80
- package/src/components/MessageInput/__tests__/ImageUploadPreview.test.js +49 -74
- package/src/components/MessageInput/__tests__/UploadProgressIndicator.test.js +36 -13
- package/src/components/MessageInput/__tests__/__snapshots__/MessageInput.test.js.snap +2 -2
- package/src/components/MessageInput/__tests__/__snapshots__/UploadProgressIndicator.test.js.snap +122 -17
- package/src/components/MessageList/ScrollToBottomButton.tsx +2 -1
- package/src/components/MessageList/__tests__/__snapshots__/ScrollToBottomButton.test.js.snap +1 -0
- package/src/contexts/chatContext/ChatContext.tsx +5 -1
- package/src/contexts/messageContext/MessageContext.tsx +7 -4
- package/src/contexts/messageInputContext/MessageInputContext.tsx +127 -96
- package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +2 -2
- package/src/contexts/themeContext/utils/theme.ts +1 -0
- package/src/i18n/en.json +2 -0
- package/src/i18n/fr.json +2 -0
- package/src/i18n/hi.json +2 -0
- package/src/i18n/it.json +2 -0
- package/src/i18n/ja.json +3 -1
- package/src/i18n/ko.json +3 -1
- package/src/i18n/nl.json +2 -0
- package/src/i18n/ru.json +2 -0
- package/src/i18n/tr.json +2 -0
- package/src/icons/Warning.tsx +12 -0
- package/src/icons/index.ts +1 -0
- package/src/utils/utils.ts +53 -1
- package/src/version.json +1 -1
- package/src/components/MessageInput/__tests__/__snapshots__/FileUploadPreview.test.js.snap +0 -4413
- package/src/components/MessageInput/__tests__/__snapshots__/ImageUploadPreview.test.js.snap +0 -2373
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MessageInputContext.tsx"],"names":["MessageInputContext","React","createContext","MessageInputProvider","children","value","closePicker","openPicker","selectedPicker","setSelectedPicker","client","channelCapabities","channel","giphyEnabled","thread","t","inputBoxRef","sending","asyncIds","setAsyncIds","asyncUploads","setAsyncUploads","giphyActive","setGiphyActive","sendThreadMessageInChannel","setSendThreadMessageInChannel","editing","hasFilePicker","hasImagePicker","initialValue","maxNumberOfFiles","fileUploads","imageUploads","mentionedUsers","numberOfUploads","setFileUploads","setImageUploads","setMentionedUsers","setNumberOfUploads","setShowMoreOptions","setText","showMoreOptions","text","cooldownEndsAt","endsAt","startCooldown","start","threadId","id","appendText","newText","prevText","isValidMessage","trim","image","state","FileState","UPLOAD_FAILED","UPLOADING","file","onChange","current","sendTypingEvents","keystroke","onChangeText","openCommandsPicker","focus","openMentionsPicker","openAttachmentPicker","length","Keyboard","dismiss","setTimeout","pickFile","closeAttachmentPicker","undefined","toggleAttachmentPicker","onSelectItem","item","prevMentionedUsers","result","cancelled","docs","forEach","doc","uploadNewFile","removeFile","some","prevFileUploads","filter","prevNumberOfUploads","removeImage","prevImageUploads","resetInput","pendingAttachments","sendMessage","sendLinks","match","urlRegex","Alert","alert","clear","attachments","sendImageAsync","prevAsyncIds","UPLOADED","FINISHED","push","fallback","name","image_url","url","type","startsWith","asset_url","file_size","size","mime_type","title","updatedMessage","mentioned_users","quoted_message","clearEditingState","updateMessagePromise","editMessage","then","parent_id","quoted_message_id","quotedMessage","show_in_channel","clearQuotedMessageState","_error","setQuotedMessageState","slice","console","log","sendMessageAsync","splice","indexOf","prevAsyncUploads","setInputBoxRef","ref","setInputRef","triggerSettings","autoCompleteTriggerSettings","onMentionSelectItem","updateMessage","uploadFile","newFile","map","fileUpload","response","doDocUploadRequest","uri","sendFile","warn","uploadImage","newImage","localUri","source","height","width","compressImageQuality","compressedUri","filename","replace","contentType","doImageUploadRequest","sendImage","res","includes","imageUpload","Object","keys","mimeType","Promise","all","concat","uploadNewImage","messageInputContext","openFilePicker","useMessageInputContext","withMessageInputContext","Component","WithMessageInputContextComponent","props","displayName"],"mappings":"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","sourcesContent":["import React, { PropsWithChildren, useContext, useEffect, useRef, useState } from 'react';\nimport { Alert, Keyboard } from 'react-native';\n\nimport type { TextInput, TextInputProps } 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 { Asset, compressImage, getLocalAssetUri, pickDocument } from '../../native';\nimport type { DefaultStreamChatGenerics, UnknownType } from '../../types/types';\nimport {\n ACITriggerSettings,\n ACITriggerSettingsParams,\n FileState,\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 { getDisplayName } from '../utils/getDisplayName';\n\nexport type FileUpload = {\n file: {\n name: string;\n size?: number | string;\n type?: string;\n uri?: string;\n };\n id: string;\n state: string;\n url?: string;\n};\n\nexport type ImageUpload = {\n file: Partial<Asset> & {\n name?: string;\n };\n id: string;\n state: string;\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: (ref: TextInput | null) => void;\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: {\n name: string;\n size?: number | string;\n type?: string;\n uri?: string;\n }) => 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.github.io/stream-chat-react-native/v3/#attachbutton)\n */\n AttachButton: React.ComponentType<AttachButtonProps<StreamChatGenerics>>;\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.github.io/stream-chat-react-native/v3/#commandsbutton)\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/master/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/master/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/master/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.github.io/stream-chat-react-native/v3/#moreoptionsbutton)\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.github.io/stream-chat-react-native/v3/#sendbutton)\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/master/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: {\n name: string;\n size?: string | number;\n type?: string;\n uri?: string;\n },\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/master/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/master/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({} as MessageInputContextValue);\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 { client } = useChatContext<StreamChatGenerics>();\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, maxNumberOfFiles } = 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 for (const image of imageUploads) {\n if (!image || image.state === FileState.UPLOAD_FAILED) {\n continue;\n }\n if (image.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 for (const file of fileUploads) {\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 && !fileUploads.length) {\n Keyboard.dismiss();\n openPicker();\n setSelectedPicker('images');\n /**\n * TODO: Remove this, this is the result of\n * the bottom sheet now having some keyboard\n * handling baked in, creating an issue when\n * we call dismiss and open in short order.\n * https://github.com/gorhom/react-native-bottom-sheet/issues/446\n */\n setTimeout(openPicker, 600);\n } else if (hasFilePicker && numberOfUploads < maxNumberOfFiles) {\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 (numberOfUploads >= value.maxNumberOfFiles) {\n return;\n }\n\n const result = await pickDocument({\n maxNumberOfFiles: value.maxNumberOfFiles - numberOfUploads,\n });\n if (!result.cancelled && result.docs) {\n result.docs.forEach((doc) => {\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(doc);\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 // 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 (!image || image.state === FileState.UPLOAD_FAILED) {\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 if (image.state === FileState.UPLOADED || image.state === FileState.FINISHED) {\n attachments.push({\n fallback: image.file.name,\n image_url: image.url,\n type: 'image',\n } as Attachment<StreamChatGenerics>);\n }\n }\n\n for (const file of fileUploads) {\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 sending.current = false;\n return;\n }\n if (file.state === FileState.UPLOADED || file.state === FileState.FINISHED) {\n if (file.file.type?.startsWith('image/')) {\n attachments.push({\n fallback: file.file.name,\n image_url: file.url,\n type: 'image',\n } as Attachment<StreamChatGenerics>);\n } else if (file.file.type?.startsWith('video/')) {\n attachments.push({\n asset_url: file.url,\n file_size: file.file.size,\n mime_type: file.file.type,\n title: file.file.name,\n type: 'video',\n } as Attachment<StreamChatGenerics>);\n } else {\n attachments.push({\n asset_url: file.url,\n file_size: file.file.size,\n mime_type: file.file.type,\n title: file.file.name,\n type: 'file',\n } as Attachment<StreamChatGenerics>);\n }\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.editMessage(updatedMessage).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 triggerSettings = channel\n ? value.autoCompleteTriggerSettings\n ? value.autoCompleteTriggerSettings({\n channel,\n client,\n onMentionSelectItem: onSelectItem,\n })\n : ACITriggerSettings<StreamChatGenerics>({\n channel,\n client,\n onMentionSelectItem: onSelectItem,\n })\n : ({} as TriggerSettings<StreamChatGenerics>);\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 uploadFile = async ({ newFile }: { newFile: FileUpload }) => {\n if (!newFile) {\n return;\n }\n const { file, id } = newFile;\n\n setFileUploads((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => {\n if (fileUpload.id === id) {\n return {\n ...fileUpload,\n state: FileState.UPLOADING,\n };\n }\n return fileUpload;\n }),\n );\n\n let response = {} as 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.type);\n }\n } catch (error) {\n console.warn(error);\n if (!newFile) {\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n } else {\n setFileUploads((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => {\n if (fileUpload.id === id) {\n return {\n ...fileUpload,\n state: FileState.UPLOAD_FAILED,\n };\n }\n return fileUpload;\n }),\n );\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n }\n return;\n }\n\n setFileUploads((prevFileUploads) =>\n prevFileUploads.map((fileUpload) => {\n if (fileUpload.id === id) {\n return {\n ...fileUpload,\n state: FileState.UPLOADED,\n url: response.file,\n };\n }\n return fileUpload;\n }),\n );\n };\n\n const uploadImage = async ({ newImage }: { newImage: ImageUpload }) => {\n const { file, id } = newImage || {};\n if (!file) {\n return;\n }\n\n let response = {} as SendFileAPIResponse;\n\n try {\n /**\n * Expo now uses the assets-library which is also how remote\n * native files are presented. We now return a file id from Expo\n * only, if that file id exits we call getLocalAssetUri to download\n * the asset for expo before uploading it. We do the same for native\n * if the uri includes assets-library, this uses the CameraRoll.save\n * function to also create a local uri.\n */\n const localUri = file.id\n ? await getLocalAssetUri(file.id)\n : file.uri?.match(/assets-library/)\n ? await getLocalAssetUri(file.uri)\n : file.uri;\n\n const uri = file.name || localUri || '';\n /**\n * We skip compression if:\n * - the file is from the camera as that should already be compressed\n * - the file has not 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 = uri.replace(/^(file:\\/\\/|content:\\/\\/|assets-library:\\/\\/)/, '');\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, undefined, 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 setImageUploads((prevImageUploads) =>\n prevImageUploads.map((imageUpload) => {\n if (imageUpload.id === id) {\n return {\n ...imageUpload,\n state: FileState.UPLOADED,\n url: res.file,\n };\n }\n return imageUpload;\n }),\n );\n }\n });\n } else {\n response = await channel.sendImage(compressedUri, undefined, contentType);\n }\n }\n\n if (Object.keys(response).length) {\n setImageUploads((prevImageUploads) =>\n prevImageUploads.map((imageUpload) => {\n if (imageUpload.id === id) {\n return {\n ...imageUpload,\n height: file.height,\n state: FileState.UPLOADED,\n url: response.file,\n width: file.width,\n };\n }\n return imageUpload;\n }),\n );\n }\n } catch (error) {\n console.warn(error);\n if (newImage) {\n setImageUploads((prevImageUploads) =>\n prevImageUploads.map((imageUpload) => {\n if (imageUpload.id === id) {\n return {\n ...imageUpload,\n state: FileState.UPLOAD_FAILED,\n };\n }\n return imageUpload;\n }),\n );\n }\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads - 1);\n\n return;\n }\n };\n\n const uploadNewFile = async (file: {\n name: string;\n size?: number | string;\n type?: string;\n uri?: string;\n }) => {\n const id = generateRandomId();\n const mimeType = lookup(file.name);\n const newFile = {\n file: { ...file, type: mimeType || file?.type },\n id,\n state: FileState.UPLOADING,\n };\n await Promise.all([\n setFileUploads((prevFileUploads) => prevFileUploads.concat([newFile])),\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads + 1),\n ]);\n\n uploadFile({ newFile });\n };\n\n const uploadNewImage = async (image: Partial<Asset>) => {\n const id = generateRandomId();\n const newImage = {\n file: image,\n id,\n state: FileState.UPLOADING,\n };\n await Promise.all([\n setImageUploads((prevImageUploads) => prevImageUploads.concat([newImage])),\n setNumberOfUploads((prevNumberOfUploads) => prevNumberOfUploads + 1),\n ]);\n\n uploadImage({ newImage });\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>() => useContext(MessageInputContext) as unknown as MessageInputContextValue<StreamChatGenerics>;\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"]}
|
|
1
|
+
{"version":3,"sources":["MessageInputContext.tsx"],"names":["MessageInputContext","React","createContext","MessageInputProvider","children","value","closePicker","openPicker","selectedPicker","setSelectedPicker","appSettings","client","getFileUploadConfig","fileConfig","app","file_upload_config","undefined","blockedFileExtensionTypes","blocked_file_extensions","blockedFileMimeTypes","blocked_mime_types","getImageUploadConfig","imageConfig","image_upload_config","blockedImageExtensionTypes","blockedImageMimeTypes","channelCapabities","channel","giphyEnabled","thread","t","inputBoxRef","sending","asyncIds","setAsyncIds","asyncUploads","setAsyncUploads","giphyActive","setGiphyActive","sendThreadMessageInChannel","setSendThreadMessageInChannel","editing","hasFilePicker","hasImagePicker","initialValue","maxNumberOfFiles","fileUploads","imageUploads","mentionedUsers","numberOfUploads","setFileUploads","setImageUploads","setMentionedUsers","setNumberOfUploads","setShowMoreOptions","setText","showMoreOptions","text","cooldownEndsAt","endsAt","startCooldown","start","threadId","id","appendText","newText","prevText","isValidMessage","trim","image","state","FileState","UPLOAD_FAILED","UPLOADING","file","onChange","current","sendTypingEvents","keystroke","onChangeText","openCommandsPicker","focus","openMentionsPicker","openAttachmentPicker","length","Keyboard","dismiss","setTimeout","pickFile","closeAttachmentPicker","toggleAttachmentPicker","onSelectItem","item","prevMentionedUsers","result","cancelled","docs","forEach","doc","uploadNewFile","removeFile","some","prevFileUploads","filter","prevNumberOfUploads","removeImage","prevImageUploads","resetInput","pendingAttachments","sendMessage","sendLinks","match","urlRegex","Alert","alert","clear","attachments","sendImageAsync","prevAsyncIds","UPLOADED","FINISHED","push","fallback","name","image_url","url","type","startsWith","asset_url","file_size","size","mime_type","title","updatedMessage","mentioned_users","quoted_message","clearEditingState","updateMessagePromise","editMessage","then","parent_id","quoted_message_id","quotedMessage","show_in_channel","clearQuotedMessageState","_error","setQuotedMessageState","slice","console","log","sendMessageAsync","splice","indexOf","prevAsyncUploads","setInputBoxRef","ref","setInputRef","triggerSettings","autoCompleteTriggerSettings","onMentionSelectItem","updateMessage","regExcondition","getUploadSetStateAction","fileState","extraData","uploads","prevUploads","map","prevUpload","handleFileOrImageUploadError","error","isImageError","Error","test","message","NOT_SUPPORTED","uploadFile","newFile","response","doDocUploadRequest","uri","sendFile","uploadImage","newImage","localUri","source","height","width","compressImageQuality","compressedUri","filename","replace","contentType","doImageUploadRequest","sendImage","res","includes","Object","keys","mimeType","isBlockedFileExtension","fileExtensionType","isBlockedFileMimeType","Promise","all","concat","uploadNewImage","isBlockedImageMimeType","isBlockedImageExtension","imageExtensionType","imageState","messageInputContext","openFilePicker","useMessageInputContext","withMessageInputContext","Component","WithMessageInputContextComponent","props","displayName"],"mappings":"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","sourcesContent":["import React, { PropsWithChildren, useContext, useEffect, useRef, useState } from 'react';\nimport { Alert, Keyboard } from 'react-native';\n\nimport type { TextInput, TextInputProps } 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 { Asset, compressImage, getLocalAssetUri, pickDocument } from '../../native';\nimport type { DefaultStreamChatGenerics, UnknownType } from '../../types/types';\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 { getDisplayName } from '../utils/getDisplayName';\n\nexport type FileUpload = {\n file: {\n name: string;\n size?: number | string;\n type?: string;\n uri?: string;\n };\n id: string;\n state: FileStateValue;\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: (ref: TextInput | null) => void;\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: {\n name: string;\n size?: number | string;\n type?: string;\n uri?: string;\n }) => 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.github.io/stream-chat-react-native/v3/#attachbutton)\n */\n AttachButton: React.ComponentType<AttachButtonProps<StreamChatGenerics>>;\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.github.io/stream-chat-react-native/v3/#commandsbutton)\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/master/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/master/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/master/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.github.io/stream-chat-react-native/v3/#moreoptionsbutton)\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.github.io/stream-chat-react-native/v3/#sendbutton)\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/master/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: {\n name: string;\n size?: string | number;\n type?: string;\n uri?: string;\n },\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/master/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/master/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({} as MessageInputContextValue);\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 } = 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, maxNumberOfFiles } = 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 for (const image of imageUploads) {\n if (!image || image.state === FileState.UPLOAD_FAILED) {\n continue;\n }\n if (image.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 for (const file of fileUploads) {\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 && !fileUploads.length) {\n Keyboard.dismiss();\n openPicker();\n setSelectedPicker('images');\n /**\n * TODO: Remove this, this is the result of\n * the bottom sheet now having some keyboard\n * handling baked in, creating an issue when\n * we call dismiss and open in short order.\n * https://github.com/gorhom/react-native-bottom-sheet/issues/446\n */\n setTimeout(openPicker, 600);\n } else if (hasFilePicker && numberOfUploads < maxNumberOfFiles) {\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 (numberOfUploads >= value.maxNumberOfFiles) {\n return;\n }\n\n const result = await pickDocument({\n maxNumberOfFiles: value.maxNumberOfFiles - numberOfUploads,\n });\n if (!result.cancelled && result.docs) {\n result.docs.forEach((doc) => {\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(doc);\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 // 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 (!image || image.state === FileState.UPLOAD_FAILED) {\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 if (image.state === FileState.UPLOADED || image.state === FileState.FINISHED) {\n attachments.push({\n fallback: image.file.name,\n image_url: image.url,\n type: 'image',\n } as Attachment<StreamChatGenerics>);\n }\n }\n\n for (const file of fileUploads) {\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 sending.current = false;\n return;\n }\n if (file.state === FileState.UPLOADED || file.state === FileState.FINISHED) {\n if (file.file.type?.startsWith('image/')) {\n attachments.push({\n fallback: file.file.name,\n image_url: file.url,\n type: 'image',\n } as Attachment<StreamChatGenerics>);\n } else if (file.file.type?.startsWith('video/')) {\n attachments.push({\n asset_url: file.url,\n file_size: file.file.size,\n mime_type: file.file.type,\n title: file.file.name,\n type: 'video',\n } as Attachment<StreamChatGenerics>);\n } else {\n attachments.push({\n asset_url: file.url,\n file_size: file.file.size,\n mime_type: file.file.type,\n title: file.file.name,\n type: 'file',\n } as Attachment<StreamChatGenerics>);\n }\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.editMessage(updatedMessage).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 triggerSettings = channel\n ? value.autoCompleteTriggerSettings\n ? value.autoCompleteTriggerSettings({\n channel,\n client,\n onMentionSelectItem: onSelectItem,\n })\n : ACITriggerSettings<StreamChatGenerics>({\n channel,\n client,\n onMentionSelectItem: onSelectItem,\n })\n : ({} as TriggerSettings<StreamChatGenerics>);\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 = <UploadType extends ImageUpload | FileUpload>(\n id: string,\n fileState: FileStateValue,\n extraData: Partial<UploadType> = {},\n ): React.SetStateAction<UploadType[]> => {\n const uploads: (prevUploads: UploadType[]) => UploadType[] = (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 return uploads;\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 if (!newFile) {\n return;\n }\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.type);\n }\n const extraData: Partial<FileUpload> = { 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 /**\n * Expo now uses the assets-library which is also how remote\n * native files are presented. We now return a file id from Expo\n * only, if that file id exits we call getLocalAssetUri to download\n * the asset for expo before uploading it. We do the same for native\n * if the uri includes assets-library, this uses the CameraRoll.save\n * function to also create a local uri.\n */\n const localUri = file.id\n ? await getLocalAssetUri(file.id)\n : file.uri?.match(/assets-library/)\n ? await getLocalAssetUri(file.uri)\n : file.uri;\n\n const uri = file.name || localUri || '';\n /**\n * We skip compression if:\n * - the file is from the camera as that should already be compressed\n * - the file has not 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 = uri.replace(/^(file:\\/\\/|content:\\/\\/|assets-library:\\/\\/)/, '');\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, undefined, 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 setImageUploads(getUploadSetStateAction(id, FileState.UPLOADED, { url: res.file }));\n }\n });\n } else {\n response = await channel.sendImage(compressedUri, undefined, contentType);\n }\n }\n\n if (Object.keys(response).length) {\n setImageUploads(\n getUploadSetStateAction(id, FileState.UPLOADED, {\n height: file.height,\n url: response.file,\n width: file.width,\n }),\n );\n }\n } catch (error) {\n handleFileOrImageUploadError(error, true, id);\n }\n };\n\n const uploadNewFile = async (file: {\n name: string;\n size?: number | string;\n type?: string;\n uri?: string;\n }) => {\n const id: string = generateRandomId();\n const mimeType: string | boolean = lookup(file.name);\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 file: { ...file, type: mimeType || file?.type },\n id,\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 id,\n state: imageState,\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>() => useContext(MessageInputContext) as unknown as MessageInputContextValue<StreamChatGenerics>;\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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useMessageDetailsForState.ts"],"names":["isEditingBoolean","editing","useMessageDetailsForState","message","initialValue","fileUploads","setFileUploads","imageUploads","setImageUploads","mentionedUsers","setMentionedUsers","numberOfUploads","setNumberOfUploads","showMoreOptions","setShowMoreOptions","initialTextValue","text","setText","messageValue","id","updated_at","Array","isArray","mentioned_users","map","user","newFileUploads","newImageUploads","attachments","attachment","type","push","file","name","title","size","file_size","mime_type","state","url","asset_url","fallback","image_url","thumb_url","length"],"mappings":";;;;;;;;;AAAA;;AAGA;;;;;;;;AAIO,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAmB,CAG9BC,OAH8B;AAAA,SAIP,OAAOA,OAAP,KAAmB,SAJZ;AAAA,CAAzB;;;;AAMA,IAAMC,yBAAyB,GAAG,SAA5BA,yBAA4B,CAGvCC,OAHuC,EAIvCC,YAJuC,EAKpC;AACH,kBAAsC,qBAAuB,EAAvB,CAAtC;AAAA;AAAA,MAAOC,WAAP;AAAA,MAAoBC,cAApB;;AACA,mBAAwC,qBAAwB,EAAxB,CAAxC;AAAA;AAAA,MAAOC,YAAP;AAAA,MAAqBC,eAArB;;AACA,mBAA4C,qBAAmB,EAAnB,CAA5C;AAAA;AAAA,MAAOC,cAAP;AAAA,MAAuBC,iBAAvB;;AACA,mBAA8C,qBAAS,CAAT,CAA9C;AAAA;AAAA,MAAOC,eAAP;AAAA,MAAwBC,kBAAxB;;AACA,mBAA8C,qBAAS,IAAT,CAA9C;AAAA;AAAA,MAAOC,eAAP;AAAA,MAAwBC,kBAAxB;;AACA,MAAMC,gBAAgB,GAAGX,YAAY,IAAI,EAAzC;;AACA,oBAAwB,qBAASW,gBAAT,CAAxB;AAAA;AAAA,MAAOC,IAAP;AAAA,MAAaC,OAAb;;AAEA,wBAAU,YAAM;AACd,QAAID,IAAI,KAAKD,gBAAb,EAA+B;AAC7BD,MAAAA,kBAAkB,CAAC,KAAD,CAAlB;AACD;AACF,GAJD,EAIG,CAACE,IAAD,CAJH;AAMA,MAAME,YAAY,GAChB,OAAOf,OAAP,KAAmB,SAAnB,GAA+B,EAA/B,QAAuCA,OAAO,CAACgB,EAA/C,GAAoDhB,OAAO,CAACa,IAA5D,GAAmEb,OAAO,CAACiB,UAD7E;AAGA,wBAAU,YAAM;AACd,QAAI,CAACpB,gBAAgB,CAAqBG,OAArB,CAAjB,IAAkDkB,KAAK,CAACC,OAAN,CAAcnB,OAAd,oBAAcA,OAAO,CAAEoB,eAAvB,CAAtD,EAA+F;AAC7F,UAAMd,eAAc,GAAGN,OAAO,CAACoB,eAAR,CAAwBC,GAAxB,CAA4B,UAACC,IAAD;AAAA,eAAUA,IAAI,CAACN,EAAf;AAAA,OAA5B,CAAvB;;AACAT,MAAAA,iBAAiB,CAACD,eAAD,CAAjB;AACD;AACF,GALD,EAKG,CAACS,YAAD,CALH;AAOA,wBAAU,YAAM;AACd,QAAIf,OAAO,IAAI,CAACH,gBAAgB,CAAqBG,OAArB,CAAhC,EAA+D;AAC7Dc,MAAAA,OAAO,CAAC,CAAAd,OAAO,QAAP,YAAAA,OAAO,CAAEa,IAAT,KAAiB,EAAlB,CAAP;AACA,UAAMU,
|
|
1
|
+
{"version":3,"sources":["useMessageDetailsForState.ts"],"names":["isEditingBoolean","editing","useMessageDetailsForState","message","initialValue","fileUploads","setFileUploads","imageUploads","setImageUploads","mentionedUsers","setMentionedUsers","numberOfUploads","setNumberOfUploads","showMoreOptions","setShowMoreOptions","initialTextValue","text","setText","messageValue","id","updated_at","Array","isArray","mentioned_users","map","user","newFileUploads","newImageUploads","attachments","attachment","type","push","file","name","title","size","file_size","mime_type","state","url","asset_url","fallback","image_url","thumb_url","length"],"mappings":"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","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 name: attachment.title || '',\n size: attachment.file_size,\n type: attachment.mime_type,\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: { name: attachment.fallback },\n id,\n state: 'finished',\n url: attachment.image_url || attachment.asset_url || attachment.thumb_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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["theme.ts"],"names":["DEFAULT_STATUS_ICON_SIZE","Colors","accent_blue","accent_green","accent_red","bg_gradient_end","bg_gradient_start","black","blue_alice","border","grey","grey_dark","grey_gainsboro","grey_whisper","icon_background","label_bg_transparent","modal_shadow","overlay","shadow_icon","targetedMessageBackground","transparent","white","white_smoke","white_snow","defaultTheme","attachmentPicker","bottomSheetContentContainer","errorButtonText","errorContainer","errorText","image","imageOverlay","imageOverlaySelectedComponent","check","attachmentSelectionBar","container","icon","avatar","BASE_AVATAR_SIZE","borderRadius","height","width","presenceIndicator","cx","cy","r","strokeWidth","presenceIndicatorContainer","channel","selectChannel","channelListFooterLoadingIndicator","channelListHeaderErrorIndicator","channelListLoadingIndicator","channelListMessenger","flatList","flatListContent","channelListSkeleton","animationTime","background","gradientStart","stopOpacity","gradientStop","channelPreview","checkAllIcon","checkIcon","contentContainer","date","message","fontWeight","mutedStatus","iconStyle","row","title","unreadContainer","unreadText","colors","dateHeader","text","emptyStateIndicator","channelContainer","channelDetails","channelTitle","groupAvatar","resizeMode","iconBadge","iconInner","unreadCount","iconSquare","imageGallery","footer","centerContainer","imageCountText","innerContainer","leftContainer","rightContainer","grid","gridAvatar","gridAvatarWrapper","gridImage","handle","handleText","header","dateText","usernameText","inlineDateSeparator","loadingDots","loadingDot","spacing","loadingErrorIndicator","retryText","loadingIndicator","loadingText","messageInput","attachButton","attachButtonContainer","autoCompleteInputContainer","commandsButton","commandsButtonContainer","composerContainer","cooldownTimer","editingBoxContainer","editingBoxHeader","editingBoxHeaderTitle","editingStateHeader","fileUploadPreview","dismiss","fileContainer","fileContentContainer","filenameText","fileSizeText","fileTextContainer","giphyCommandInput","giphyContainer","giphyText","imageUploadPreview","itemContainer","upload","inputBox","inputBoxContainer","moreOptionsButton","optionsContainer","replyContainer","sendButton","sendButtonContainer","sendMessageDisallowedIndicator","showThreadMessageInChannelButton","checkBoxActive","checkBoxInactive","suggestions","command","args","iconContainer","maxHeight","emoji","item","mention","avatarSize","column","name","tag","suggestionsListContainer","flatlist","uploadProgressIndicator","messageList","errorNotification","errorNotificationText","inlineUnreadIndicator","listContainer","messageSystem","line","textContainer","scrollToBottomButton","touchable","unreadCountNotificationContainer","unreadCountNotificationText","wrapper","typingIndicatorContainer","messageSimple","actions","button","buttonText","avatarWrapper","leftAlign","marginRight","rightAlign","marginLeft","spacer","card","authorName","authorNameContainer","authorNameFooter","authorNameFooterContainer","authorNameMask","cover","description","noURI","borderLeftWidth","paddingLeft","content","borderRadiusL","borderRadiusS","containerInner","deletedContainer","deletedContainerInner","deletedMetaText","paddingHorizontal","deletedText","em","fontSize","fontStyle","paddingRight","paddingTop","errorIcon","errorIconContainer","bottom","position","right","eyeIcon","markdown","messageUser","metaContainer","flexDirection","marginTop","metaText","replyBorder","onlyEmojiMarkdown","file","details","fileSize","fileAttachmentGroup","gallery","galleryContainer","galleryItemColumn","gridHeight","gridWidth","imageContainer","maxWidth","minHeight","minWidth","moreImagesContainer","moreImagesText","giphy","buttonContainer","cancel","giphyHeaderText","giphyHeaderTitle","giphyMask","giphyMaskText","selectionContainer","send","shuffle","pinnedHeader","label","reactionList","middleIcon","radius","reactionBubble","reactionBubbleBackground","reactionSize","strokeSize","replies","avatarContainerMultiple","avatarContainerSingle","leftAvatarsContainer","leftCurve","messageRepliesText","rightAvatarsContainer","rightCurve","status","readByCount","statusContainer","timeIcon","targetedMessageUnderlay","messageActions","actionContainer","padding","reactions","avatarContainer","avatarName","flatListContainer","reactionsList","reaction","reply","fileAttachmentContainer","imageAttachment","markdownStyles","messageContainer","screenPadding","spinner","thread","newThread","typingIndicator"],"mappings":"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","sourcesContent":["import type { ImageStyle, TextStyle, ViewStyle } from 'react-native';\nimport type { CircleProps, Color, StopProps } from 'react-native-svg';\n\nimport type { IconProps } from '../../../icons/utils/base';\nimport { vh } from '../../../utils/utils';\n\nexport const DEFAULT_STATUS_ICON_SIZE = 16;\n\nexport const Colors = {\n accent_blue: '#005FFF',\n accent_green: '#20E070',\n accent_red: '#FF3742',\n bg_gradient_end: '#F7F7F7',\n bg_gradient_start: '#FCFCFC',\n black: '#000000',\n blue_alice: '#E9F2FF',\n border: '#00000014', // 14 = 8% opacity; top: x=0, y=-1; bottom: x=0, y=1\n grey: '#7A7A7A',\n grey_dark: '#72767E',\n grey_gainsboro: '#DBDBDB',\n grey_whisper: '#ECEBEB',\n icon_background: '#FFFFFF',\n label_bg_transparent: '#00000033', // 33 = 20% opacity\n modal_shadow: '#00000099', // 99 = 60% opacity; x=0, y= 1, radius=4\n overlay: '#000000CC', // CC = 80% opacity\n shadow_icon: '#00000040', // 40 = 25% opacity; x=0, y=0, radius=4\n targetedMessageBackground: '#FBF4DD', // dark mode = #302D22\n transparent: 'transparent',\n white: '#FFFFFF',\n white_smoke: '#F2F2F2',\n white_snow: '#FCFCFC',\n};\n\nexport type MarkdownStyle = Partial<{\n autolink: TextStyle;\n blockQuoteBar: ViewStyle;\n blockQuoteSection: ViewStyle;\n blockQuoteSectionBar: ViewStyle;\n blockQuoteText: TextStyle | ViewStyle;\n br: TextStyle;\n codeBlock: TextStyle;\n del: TextStyle;\n em: TextStyle;\n heading: TextStyle;\n heading1: TextStyle;\n heading2: TextStyle;\n heading3: TextStyle;\n heading4: TextStyle;\n heading5: TextStyle;\n heading6: TextStyle;\n hr: ViewStyle;\n image: ImageStyle;\n inlineCode: TextStyle;\n list: ViewStyle;\n listItem: ViewStyle;\n listItemBullet: TextStyle;\n listItemNumber: TextStyle;\n listItemText: TextStyle;\n listRow: ViewStyle;\n mailTo: TextStyle;\n mentions: TextStyle;\n newline: TextStyle;\n noMargin: TextStyle;\n paragraph: TextStyle;\n paragraphCenter: TextStyle;\n paragraphWithImage: ViewStyle;\n strong: TextStyle;\n sublist: ViewStyle;\n table: ViewStyle;\n tableHeader: ViewStyle;\n tableHeaderCell: TextStyle;\n tableRow: ViewStyle;\n tableRowCell: ViewStyle;\n tableRowLast: ViewStyle;\n text: TextStyle;\n u: TextStyle;\n view: ViewStyle;\n}>;\n\nexport type Theme = {\n attachmentPicker: {\n bottomSheetContentContainer: ViewStyle;\n errorButtonText: TextStyle;\n errorContainer: ViewStyle;\n errorText: TextStyle;\n image: ViewStyle;\n imageOverlay: ViewStyle;\n imageOverlaySelectedComponent: {\n check: ViewStyle;\n };\n };\n attachmentSelectionBar: {\n container: ViewStyle;\n icon: ViewStyle;\n };\n avatar: {\n BASE_AVATAR_SIZE: number;\n container: ViewStyle;\n image: ImageStyle;\n presenceIndicator: CircleProps;\n presenceIndicatorContainer: ViewStyle;\n };\n channel: {\n selectChannel: TextStyle;\n };\n channelListFooterLoadingIndicator: {\n container: ViewStyle;\n };\n channelListHeaderErrorIndicator: {\n container: ViewStyle;\n errorText: TextStyle;\n };\n channelListLoadingIndicator: {\n container: ViewStyle;\n };\n channelListMessenger: {\n flatList: ViewStyle;\n flatListContent: ViewStyle;\n };\n channelListSkeleton: {\n animationTime: number;\n background: ViewStyle;\n container: ViewStyle;\n gradientStart: StopProps;\n gradientStop: StopProps;\n height: number;\n maskFillColor?: Color;\n };\n channelPreview: {\n checkAllIcon: IconProps;\n checkIcon: IconProps;\n container: ViewStyle;\n contentContainer: ViewStyle;\n date: TextStyle;\n message: TextStyle & {\n fontWeight: TextStyle['fontWeight'];\n };\n mutedStatus: {\n height: number;\n iconStyle: ViewStyle;\n width: number;\n };\n row: ViewStyle;\n title: TextStyle;\n unreadContainer: ViewStyle;\n unreadText: TextStyle;\n };\n colors: typeof Colors & { [key: string]: string };\n dateHeader: {\n container: ViewStyle;\n text: TextStyle;\n };\n emptyStateIndicator: {\n channelContainer: ViewStyle;\n channelDetails: TextStyle;\n channelTitle: TextStyle;\n };\n groupAvatar: {\n container: ViewStyle;\n image: ImageStyle;\n };\n iconBadge: {\n icon: ViewStyle;\n iconInner: ViewStyle;\n unreadCount: TextStyle;\n };\n iconSquare: {\n container: ViewStyle;\n image: ImageStyle;\n };\n imageGallery: {\n footer: {\n centerContainer: ViewStyle;\n container: ViewStyle;\n imageCountText: TextStyle;\n innerContainer: ViewStyle;\n leftContainer: ViewStyle;\n rightContainer: ViewStyle;\n };\n grid: {\n contentContainer: ViewStyle;\n gridAvatar: ImageStyle;\n gridAvatarWrapper: ViewStyle;\n gridImage: ViewStyle;\n handle: ViewStyle;\n handleText: TextStyle;\n overlay: ViewStyle;\n };\n header: {\n centerContainer: ViewStyle;\n container: ViewStyle;\n dateText: TextStyle;\n innerContainer: ViewStyle;\n leftContainer: ViewStyle;\n rightContainer: ViewStyle;\n usernameText: TextStyle;\n };\n backgroundColor?: string;\n pager?: ViewStyle;\n slide?: ImageStyle;\n };\n inlineDateSeparator: {\n container: ViewStyle;\n text: TextStyle;\n };\n loadingDots: {\n container: ViewStyle;\n loadingDot: ViewStyle;\n spacing: number;\n };\n loadingErrorIndicator: {\n container: ViewStyle;\n errorText: TextStyle;\n retryText: TextStyle;\n };\n loadingIndicator: {\n container: ViewStyle;\n loadingText: TextStyle;\n };\n messageInput: {\n attachButton: ViewStyle;\n attachButtonContainer: ViewStyle;\n attachmentSelectionBar: ViewStyle;\n autoCompleteInputContainer: ViewStyle;\n commandsButton: ViewStyle;\n commandsButtonContainer: ViewStyle;\n composerContainer: ViewStyle;\n container: ViewStyle;\n cooldownTimer: {\n container: ViewStyle;\n text: TextStyle;\n };\n editingBoxContainer: ViewStyle;\n editingBoxHeader: ViewStyle;\n editingBoxHeaderTitle: TextStyle;\n editingStateHeader: {\n editingBoxHeader: ViewStyle;\n editingBoxHeaderTitle: TextStyle;\n };\n fileUploadPreview: {\n dismiss: ViewStyle;\n fileContainer: ViewStyle;\n fileContentContainer: ViewStyle;\n filenameText: TextStyle;\n fileSizeText: TextStyle;\n fileTextContainer: ViewStyle;\n flatList: ViewStyle;\n };\n giphyCommandInput: {\n giphyContainer: ViewStyle;\n giphyText: TextStyle;\n };\n imageUploadPreview: {\n dismiss: ViewStyle;\n flatList: ViewStyle;\n itemContainer: ViewStyle;\n upload: ImageStyle;\n };\n inputBox: TextStyle;\n inputBoxContainer: ViewStyle;\n moreOptionsButton: ViewStyle;\n optionsContainer: ViewStyle;\n replyContainer: ViewStyle;\n sendButton: ViewStyle;\n sendButtonContainer: ViewStyle;\n sendMessageDisallowedIndicator: {\n container: ViewStyle;\n text: TextStyle;\n };\n showThreadMessageInChannelButton: {\n check: IconProps;\n checkBoxActive: ViewStyle;\n checkBoxInactive: ViewStyle;\n container: ViewStyle;\n innerContainer: ViewStyle;\n text: TextStyle;\n };\n suggestions: {\n command: {\n args: TextStyle;\n container: ViewStyle;\n iconContainer: ViewStyle;\n title: TextStyle;\n };\n container: ViewStyle & {\n maxHeight: number;\n };\n emoji: {\n container: ViewStyle;\n text: TextStyle;\n };\n header: {\n container: ViewStyle;\n title: TextStyle;\n };\n item: ViewStyle;\n mention: {\n avatarSize: number;\n column: ViewStyle;\n container: ViewStyle;\n name: TextStyle;\n tag: TextStyle;\n };\n };\n suggestionsListContainer: {\n container: ViewStyle;\n flatlist: ViewStyle;\n };\n uploadProgressIndicator: {\n container: ViewStyle;\n overlay: ViewStyle;\n };\n };\n messageList: {\n container: ViewStyle;\n contentContainer: ViewStyle;\n errorNotification: ViewStyle;\n errorNotificationText: TextStyle;\n inlineUnreadIndicator: {\n container: ViewStyle;\n text: TextStyle;\n };\n listContainer: ViewStyle;\n messageSystem: {\n container: ViewStyle;\n dateText: TextStyle;\n line: ViewStyle;\n text: TextStyle;\n textContainer: ViewStyle;\n };\n scrollToBottomButton: {\n container: ViewStyle;\n touchable: ViewStyle;\n unreadCountNotificationContainer: ViewStyle;\n unreadCountNotificationText: TextStyle;\n wrapper: ViewStyle;\n };\n typingIndicatorContainer: ViewStyle;\n };\n messageSimple: {\n actions: {\n button: ViewStyle & {\n defaultBackgroundColor?: ViewStyle['backgroundColor'];\n defaultBorderColor?: ViewStyle['borderColor'];\n primaryBackgroundColor?: ViewStyle['backgroundColor'];\n primaryBorderColor?: ViewStyle['borderColor'];\n };\n buttonText: TextStyle & {\n defaultColor?: TextStyle['color'];\n primaryColor?: TextStyle['color'];\n };\n container: ViewStyle;\n };\n avatarWrapper: {\n container: ViewStyle;\n leftAlign: ViewStyle;\n rightAlign: ViewStyle;\n spacer: ViewStyle;\n };\n card: {\n authorName: TextStyle;\n authorNameContainer: ViewStyle;\n authorNameFooter: TextStyle;\n authorNameFooterContainer: ViewStyle;\n authorNameMask: ViewStyle;\n container: ViewStyle;\n cover: ImageStyle;\n footer: ViewStyle & {\n description: TextStyle;\n title: TextStyle;\n };\n noURI: ViewStyle;\n };\n container: ViewStyle;\n content: {\n container: ViewStyle & {\n borderRadiusL: ViewStyle['borderBottomLeftRadius' | 'borderTopLeftRadius'];\n borderRadiusS: ViewStyle['borderBottomRightRadius' | 'borderTopRightRadius'];\n };\n containerInner: ViewStyle;\n deletedContainer: ViewStyle;\n deletedContainerInner: ViewStyle;\n deletedMetaText: TextStyle;\n deletedText: MarkdownStyle;\n errorContainer: ViewStyle;\n errorIcon: IconProps;\n errorIconContainer: ViewStyle;\n eyeIcon: IconProps;\n /**\n * Available options for styling text:\n * https://github.com/andangrd/react-native-markdown-package/blob/master/styles.js\n */\n markdown: MarkdownStyle;\n messageUser: TextStyle;\n metaContainer: ViewStyle;\n metaText: TextStyle;\n replyBorder: ViewStyle;\n replyContainer: ViewStyle;\n textContainer: ViewStyle & {\n onlyEmojiMarkdown: MarkdownStyle;\n };\n wrapper: ViewStyle;\n };\n file: {\n container: ViewStyle;\n details: ViewStyle;\n fileSize: TextStyle;\n icon: IconProps;\n title: TextStyle;\n };\n fileAttachmentGroup: {\n container: ViewStyle;\n };\n gallery: {\n galleryContainer: ViewStyle;\n galleryItemColumn: ViewStyle;\n gridHeight: number;\n gridWidth: number;\n image: ImageStyle;\n imageContainer: ViewStyle;\n maxHeight: number;\n maxWidth: number;\n minHeight: number;\n minWidth: number;\n moreImagesContainer: ViewStyle;\n moreImagesText: TextStyle;\n };\n giphy: {\n buttonContainer: ViewStyle;\n cancel: TextStyle;\n container: ViewStyle;\n giphy: ImageStyle;\n giphyContainer: ViewStyle;\n giphyHeaderText: TextStyle;\n giphyHeaderTitle: TextStyle;\n giphyMask: ViewStyle;\n giphyMaskText: TextStyle;\n header: ViewStyle;\n selectionContainer: ViewStyle;\n send: TextStyle;\n shuffle: TextStyle;\n title: TextStyle;\n };\n pinnedHeader: {\n container: ViewStyle;\n label: TextStyle;\n };\n reactionList: {\n container: ViewStyle;\n middleIcon: ViewStyle;\n radius: number;\n reactionBubble: ViewStyle;\n reactionBubbleBackground: ViewStyle;\n reactionSize: number;\n strokeSize: number;\n };\n replies: {\n avatar: ViewStyle;\n avatarContainerMultiple: ViewStyle;\n avatarContainerSingle: ViewStyle;\n container: ViewStyle;\n leftAvatarsContainer: ViewStyle;\n leftCurve: ViewStyle;\n messageRepliesText: TextStyle;\n rightAvatarsContainer: ViewStyle;\n rightCurve: ViewStyle;\n avatarSize?: number;\n };\n status: {\n checkAllIcon: IconProps;\n checkIcon: IconProps;\n readByCount: TextStyle;\n statusContainer: ViewStyle;\n timeIcon: IconProps;\n };\n targetedMessageUnderlay: ViewStyle;\n };\n overlay: {\n container: ViewStyle;\n messageActions: {\n actionContainer: ViewStyle;\n icon: ViewStyle;\n title: TextStyle;\n };\n padding: number;\n reactions: {\n avatarContainer: ViewStyle;\n avatarName: TextStyle;\n avatarSize: number;\n container: ViewStyle;\n flatListContainer: ViewStyle;\n radius: number;\n reactionBubble: ViewStyle;\n reactionBubbleBackground: ViewStyle;\n title: TextStyle;\n };\n reactionsList: {\n radius: number;\n reaction: ViewStyle;\n reactionList: ViewStyle;\n reactionSize: number;\n };\n };\n reply: {\n container: ViewStyle;\n fileAttachmentContainer: ViewStyle;\n imageAttachment: ImageStyle;\n markdownStyles: MarkdownStyle;\n messageContainer: ViewStyle;\n textContainer: ViewStyle;\n };\n screenPadding: number;\n spinner: ViewStyle;\n thread: {\n newThread: ViewStyle & {\n text: TextStyle;\n backgroundGradientStart?: string;\n backgroundGradientStop?: string;\n };\n };\n typingIndicator: {\n container: ViewStyle;\n text: TextStyle & {\n fontSize: TextStyle['fontSize'];\n };\n };\n};\n\nexport const defaultTheme: Theme = {\n attachmentPicker: {\n bottomSheetContentContainer: {},\n errorButtonText: {},\n errorContainer: {},\n errorText: {},\n image: {},\n imageOverlay: {},\n imageOverlaySelectedComponent: {\n check: {},\n },\n },\n attachmentSelectionBar: {\n container: {},\n icon: {},\n },\n avatar: {\n BASE_AVATAR_SIZE: 32,\n container: {},\n image: {\n borderRadius: 16,\n height: 32,\n width: 32,\n },\n presenceIndicator: {\n cx: 6,\n cy: 6,\n r: 5,\n strokeWidth: 2,\n },\n presenceIndicatorContainer: {},\n },\n channel: {\n selectChannel: {},\n },\n channelListFooterLoadingIndicator: {\n container: {},\n },\n channelListHeaderErrorIndicator: {\n container: {},\n errorText: {},\n },\n channelListLoadingIndicator: {\n container: {},\n },\n channelListMessenger: {\n flatList: {},\n flatListContent: {},\n },\n channelListSkeleton: {\n animationTime: 1800, // in milliseconds\n background: {},\n container: {},\n gradientStart: {\n stopOpacity: 0,\n },\n gradientStop: {\n stopOpacity: 0.5,\n },\n height: 64,\n },\n channelPreview: {\n checkAllIcon: {\n height: DEFAULT_STATUS_ICON_SIZE,\n width: DEFAULT_STATUS_ICON_SIZE,\n },\n checkIcon: {\n height: DEFAULT_STATUS_ICON_SIZE,\n width: DEFAULT_STATUS_ICON_SIZE,\n },\n container: {},\n contentContainer: {},\n date: {},\n message: {\n fontWeight: '400',\n },\n mutedStatus: {\n height: 20,\n iconStyle: {},\n width: 20,\n },\n row: {},\n title: {},\n unreadContainer: {},\n unreadText: {},\n },\n colors: {\n ...Colors,\n },\n dateHeader: {\n container: {},\n text: {},\n },\n emptyStateIndicator: {\n channelContainer: {},\n channelDetails: {},\n channelTitle: {},\n },\n groupAvatar: {\n container: {},\n image: {\n resizeMode: 'cover',\n },\n },\n iconBadge: {\n icon: {},\n iconInner: {},\n unreadCount: {},\n },\n iconSquare: {\n container: {},\n image: {},\n },\n imageGallery: {\n footer: {\n centerContainer: {},\n container: {},\n imageCountText: {},\n innerContainer: {},\n leftContainer: {},\n rightContainer: {},\n },\n grid: {\n contentContainer: {},\n gridAvatar: {},\n gridAvatarWrapper: {},\n gridImage: {},\n handle: {},\n handleText: {},\n overlay: {},\n },\n header: {\n centerContainer: {},\n container: {},\n dateText: {},\n innerContainer: {},\n leftContainer: {},\n rightContainer: {},\n usernameText: {},\n },\n },\n inlineDateSeparator: {\n container: {},\n text: {},\n },\n loadingDots: {\n container: {},\n loadingDot: {},\n spacing: 4,\n },\n loadingErrorIndicator: {\n container: {},\n errorText: {},\n retryText: {},\n },\n loadingIndicator: {\n container: {},\n loadingText: {},\n },\n messageInput: {\n attachButton: {},\n attachButtonContainer: {},\n attachmentSelectionBar: {},\n autoCompleteInputContainer: {},\n commandsButton: {},\n commandsButtonContainer: {},\n composerContainer: {},\n container: {},\n cooldownTimer: {\n container: {},\n text: {},\n },\n editingBoxContainer: {},\n editingBoxHeader: {},\n editingBoxHeaderTitle: {},\n editingStateHeader: {\n editingBoxHeader: {},\n editingBoxHeaderTitle: {},\n },\n fileUploadPreview: {\n dismiss: {},\n fileContainer: {},\n fileContentContainer: {},\n filenameText: {},\n fileSizeText: {},\n fileTextContainer: {},\n flatList: {},\n },\n giphyCommandInput: {\n giphyContainer: {},\n giphyText: {},\n },\n imageUploadPreview: {\n dismiss: {},\n flatList: {},\n itemContainer: {},\n upload: {},\n },\n inputBox: {},\n inputBoxContainer: {},\n moreOptionsButton: {},\n optionsContainer: {},\n replyContainer: {},\n sendButton: {},\n sendButtonContainer: {},\n sendMessageDisallowedIndicator: {\n container: {},\n text: {},\n },\n showThreadMessageInChannelButton: {\n check: {},\n checkBoxActive: {},\n checkBoxInactive: {},\n container: {},\n innerContainer: {},\n text: {},\n },\n suggestions: {\n command: {\n args: {},\n container: {},\n iconContainer: {},\n title: {},\n },\n container: {\n maxHeight: vh(25),\n },\n emoji: {\n container: {},\n text: {},\n },\n header: {\n container: {},\n title: {},\n },\n item: {},\n mention: {\n avatarSize: 40,\n column: {},\n container: {},\n name: {},\n tag: {},\n },\n },\n suggestionsListContainer: {\n container: {},\n flatlist: {},\n },\n uploadProgressIndicator: {\n container: {},\n overlay: {},\n },\n },\n messageList: {\n container: {},\n contentContainer: {},\n errorNotification: {},\n errorNotificationText: {},\n inlineUnreadIndicator: {\n container: {},\n text: {},\n },\n listContainer: {},\n messageSystem: {\n container: {},\n dateText: {},\n line: {},\n text: {},\n textContainer: {},\n },\n scrollToBottomButton: {\n container: {},\n touchable: {},\n unreadCountNotificationContainer: {},\n unreadCountNotificationText: {},\n wrapper: {},\n },\n typingIndicatorContainer: {},\n },\n messageSimple: {\n actions: {\n button: {},\n buttonText: {},\n container: {},\n },\n avatarWrapper: {\n container: {},\n leftAlign: {\n marginRight: 8,\n },\n rightAlign: {\n marginLeft: 8,\n },\n spacer: {\n height: 28,\n width: 32, // same as BASE_AVATAR_SIZE\n },\n },\n card: {\n authorName: {},\n authorNameContainer: {},\n authorNameFooter: {},\n authorNameFooterContainer: {},\n authorNameMask: {},\n container: {},\n cover: {},\n footer: {\n description: {},\n title: {\n fontWeight: '700',\n },\n },\n noURI: {\n borderLeftWidth: 2,\n paddingLeft: 8,\n },\n },\n container: {},\n content: {\n container: {\n borderRadiusL: 16,\n borderRadiusS: 0,\n },\n containerInner: {},\n deletedContainer: {},\n deletedContainerInner: {},\n deletedMetaText: {\n paddingHorizontal: 5,\n },\n deletedText: {\n em: {\n fontSize: 15,\n fontStyle: 'italic',\n fontWeight: '400',\n },\n },\n errorContainer: {\n paddingRight: 12,\n paddingTop: 0,\n },\n errorIcon: {\n height: 20,\n width: 20,\n },\n errorIconContainer: {\n bottom: -2,\n position: 'absolute',\n right: -12,\n },\n eyeIcon: {\n height: 16,\n width: 16,\n },\n markdown: {},\n messageUser: {\n fontSize: 12,\n fontWeight: '700',\n paddingRight: 6,\n },\n metaContainer: {\n flexDirection: 'row',\n marginTop: 4,\n },\n metaText: {\n fontSize: 12,\n },\n replyBorder: {},\n replyContainer: {},\n textContainer: {\n onlyEmojiMarkdown: { text: { fontSize: 50 } },\n },\n wrapper: {},\n },\n file: {\n container: {},\n details: {},\n fileSize: {},\n icon: {},\n title: {},\n },\n fileAttachmentGroup: {\n container: {},\n },\n gallery: {\n galleryContainer: {},\n galleryItemColumn: {},\n gridHeight: 195,\n gridWidth: 256,\n image: {},\n imageContainer: {},\n maxHeight: 300,\n maxWidth: 256,\n minHeight: 100,\n minWidth: 170,\n moreImagesContainer: {},\n moreImagesText: {},\n },\n giphy: {\n buttonContainer: {},\n cancel: {},\n container: {},\n giphy: {},\n giphyContainer: {},\n giphyHeaderText: {},\n giphyHeaderTitle: {},\n giphyMask: {},\n giphyMaskText: {},\n header: {},\n selectionContainer: {},\n send: {},\n shuffle: {},\n title: {},\n },\n pinnedHeader: {\n container: {},\n label: {},\n },\n reactionList: {\n container: {},\n middleIcon: {},\n radius: 2, // not recommended to change this\n reactionBubble: {},\n reactionBubbleBackground: {},\n reactionSize: 24,\n strokeSize: 1, // not recommended to change this\n },\n replies: {\n avatar: {},\n avatarContainerMultiple: {},\n avatarContainerSingle: {},\n container: {},\n leftAvatarsContainer: {},\n leftCurve: {},\n messageRepliesText: {},\n rightAvatarsContainer: {},\n rightCurve: {},\n },\n status: {\n checkAllIcon: {\n height: DEFAULT_STATUS_ICON_SIZE,\n width: DEFAULT_STATUS_ICON_SIZE,\n },\n checkIcon: {\n height: DEFAULT_STATUS_ICON_SIZE,\n width: DEFAULT_STATUS_ICON_SIZE,\n },\n readByCount: {},\n statusContainer: {},\n timeIcon: {\n height: DEFAULT_STATUS_ICON_SIZE,\n width: DEFAULT_STATUS_ICON_SIZE,\n },\n },\n targetedMessageUnderlay: {},\n },\n overlay: {\n container: {},\n messageActions: {\n actionContainer: {},\n icon: {},\n title: {},\n },\n padding: 8,\n reactions: {\n avatarContainer: {},\n avatarName: {},\n avatarSize: 64,\n container: {},\n flatListContainer: {},\n radius: 2,\n reactionBubble: {},\n reactionBubbleBackground: {},\n title: {},\n },\n reactionsList: {\n radius: 2.5,\n reaction: {},\n reactionList: {},\n reactionSize: 24,\n },\n },\n reply: {\n container: {},\n fileAttachmentContainer: {},\n imageAttachment: {},\n markdownStyles: {},\n messageContainer: {},\n textContainer: {},\n },\n screenPadding: 8,\n spinner: {},\n thread: {\n newThread: {\n text: {},\n },\n },\n typingIndicator: {\n container: {},\n text: {\n fontSize: 14,\n },\n },\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["theme.ts"],"names":["DEFAULT_STATUS_ICON_SIZE","Colors","accent_blue","accent_green","accent_red","bg_gradient_end","bg_gradient_start","black","blue_alice","border","grey","grey_dark","grey_gainsboro","grey_whisper","icon_background","label_bg_transparent","modal_shadow","overlay","shadow_icon","targetedMessageBackground","transparent","white","white_smoke","white_snow","defaultTheme","attachmentPicker","bottomSheetContentContainer","errorButtonText","errorContainer","errorText","image","imageOverlay","imageOverlaySelectedComponent","check","attachmentSelectionBar","container","icon","avatar","BASE_AVATAR_SIZE","borderRadius","height","width","presenceIndicator","cx","cy","r","strokeWidth","presenceIndicatorContainer","channel","selectChannel","channelListFooterLoadingIndicator","channelListHeaderErrorIndicator","channelListLoadingIndicator","channelListMessenger","flatList","flatListContent","channelListSkeleton","animationTime","background","gradientStart","stopOpacity","gradientStop","channelPreview","checkAllIcon","checkIcon","contentContainer","date","message","fontWeight","mutedStatus","iconStyle","row","title","unreadContainer","unreadText","colors","dateHeader","text","emptyStateIndicator","channelContainer","channelDetails","channelTitle","groupAvatar","resizeMode","iconBadge","iconInner","unreadCount","iconSquare","imageGallery","footer","centerContainer","imageCountText","innerContainer","leftContainer","rightContainer","grid","gridAvatar","gridAvatarWrapper","gridImage","handle","handleText","header","dateText","usernameText","inlineDateSeparator","loadingDots","loadingDot","spacing","loadingErrorIndicator","retryText","loadingIndicator","loadingText","messageInput","attachButton","attachButtonContainer","autoCompleteInputContainer","commandsButton","commandsButtonContainer","composerContainer","cooldownTimer","editingBoxContainer","editingBoxHeader","editingBoxHeaderTitle","editingStateHeader","fileUploadPreview","dismiss","fileContainer","fileContentContainer","filenameText","fileSizeText","fileTextContainer","giphyCommandInput","giphyContainer","giphyText","imageUploadPreview","itemContainer","upload","inputBox","inputBoxContainer","moreOptionsButton","optionsContainer","replyContainer","sendButton","sendButtonContainer","sendMessageDisallowedIndicator","showThreadMessageInChannelButton","checkBoxActive","checkBoxInactive","suggestions","command","args","iconContainer","maxHeight","emoji","item","mention","avatarSize","column","name","tag","suggestionsListContainer","flatlist","uploadProgressIndicator","messageList","errorNotification","errorNotificationText","inlineUnreadIndicator","listContainer","messageSystem","line","textContainer","scrollToBottomButton","touchable","unreadCountNotificationContainer","unreadCountNotificationText","wrapper","typingIndicatorContainer","messageSimple","actions","button","buttonText","avatarWrapper","leftAlign","marginRight","rightAlign","marginLeft","spacer","card","authorName","authorNameContainer","authorNameFooter","authorNameFooterContainer","authorNameMask","cover","description","noURI","borderLeftWidth","paddingLeft","content","borderRadiusL","borderRadiusS","containerInner","deletedContainer","deletedContainerInner","deletedMetaText","paddingHorizontal","deletedText","em","fontSize","fontStyle","paddingRight","paddingTop","errorIcon","errorIconContainer","bottom","position","right","eyeIcon","markdown","messageUser","metaContainer","flexDirection","marginTop","metaText","replyBorder","onlyEmojiMarkdown","file","details","fileSize","fileAttachmentGroup","gallery","galleryContainer","galleryItemColumn","gridHeight","gridWidth","imageContainer","maxWidth","minHeight","minWidth","moreImagesContainer","moreImagesText","giphy","buttonContainer","cancel","giphyHeaderText","giphyHeaderTitle","giphyMask","giphyMaskText","selectionContainer","send","shuffle","pinnedHeader","label","reactionList","middleIcon","radius","reactionBubble","reactionBubbleBackground","reactionSize","strokeSize","replies","avatarContainerMultiple","avatarContainerSingle","leftAvatarsContainer","leftCurve","messageRepliesText","rightAvatarsContainer","rightCurve","status","readByCount","statusContainer","timeIcon","targetedMessageUnderlay","messageActions","actionContainer","padding","reactions","avatarContainer","avatarName","flatListContainer","reactionsList","reaction","reply","fileAttachmentContainer","imageAttachment","markdownStyles","messageContainer","screenPadding","spinner","thread","newThread","typingIndicator"],"mappings":"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","sourcesContent":["import type { ImageStyle, TextStyle, ViewStyle } from 'react-native';\nimport type { CircleProps, Color, StopProps } from 'react-native-svg';\n\nimport type { IconProps } from '../../../icons/utils/base';\nimport { vh } from '../../../utils/utils';\n\nexport const DEFAULT_STATUS_ICON_SIZE = 16;\n\nexport const Colors = {\n accent_blue: '#005FFF',\n accent_green: '#20E070',\n accent_red: '#FF3742',\n bg_gradient_end: '#F7F7F7',\n bg_gradient_start: '#FCFCFC',\n black: '#000000',\n blue_alice: '#E9F2FF',\n border: '#00000014', // 14 = 8% opacity; top: x=0, y=-1; bottom: x=0, y=1\n grey: '#7A7A7A',\n grey_dark: '#72767E',\n grey_gainsboro: '#DBDBDB',\n grey_whisper: '#ECEBEB',\n icon_background: '#FFFFFF',\n label_bg_transparent: '#00000033', // 33 = 20% opacity\n modal_shadow: '#00000099', // 99 = 60% opacity; x=0, y= 1, radius=4\n overlay: '#000000CC', // CC = 80% opacity\n shadow_icon: '#00000040', // 40 = 25% opacity; x=0, y=0, radius=4\n targetedMessageBackground: '#FBF4DD', // dark mode = #302D22\n transparent: 'transparent',\n white: '#FFFFFF',\n white_smoke: '#F2F2F2',\n white_snow: '#FCFCFC',\n};\n\nexport type MarkdownStyle = Partial<{\n autolink: TextStyle;\n blockQuoteBar: ViewStyle;\n blockQuoteSection: ViewStyle;\n blockQuoteSectionBar: ViewStyle;\n blockQuoteText: TextStyle | ViewStyle;\n br: TextStyle;\n codeBlock: TextStyle;\n del: TextStyle;\n em: TextStyle;\n heading: TextStyle;\n heading1: TextStyle;\n heading2: TextStyle;\n heading3: TextStyle;\n heading4: TextStyle;\n heading5: TextStyle;\n heading6: TextStyle;\n hr: ViewStyle;\n image: ImageStyle;\n inlineCode: TextStyle;\n list: ViewStyle;\n listItem: ViewStyle;\n listItemBullet: TextStyle;\n listItemNumber: TextStyle;\n listItemText: TextStyle;\n listRow: ViewStyle;\n mailTo: TextStyle;\n mentions: TextStyle;\n newline: TextStyle;\n noMargin: TextStyle;\n paragraph: TextStyle;\n paragraphCenter: TextStyle;\n paragraphWithImage: ViewStyle;\n strong: TextStyle;\n sublist: ViewStyle;\n table: ViewStyle;\n tableHeader: ViewStyle;\n tableHeaderCell: TextStyle;\n tableRow: ViewStyle;\n tableRowCell: ViewStyle;\n tableRowLast: ViewStyle;\n text: TextStyle;\n u: TextStyle;\n view: ViewStyle;\n}>;\n\nexport type Theme = {\n attachmentPicker: {\n bottomSheetContentContainer: ViewStyle;\n errorButtonText: TextStyle;\n errorContainer: ViewStyle;\n errorText: TextStyle;\n image: ViewStyle;\n imageOverlay: ViewStyle;\n imageOverlaySelectedComponent: {\n check: ViewStyle;\n };\n };\n attachmentSelectionBar: {\n container: ViewStyle;\n icon: ViewStyle;\n };\n avatar: {\n BASE_AVATAR_SIZE: number;\n container: ViewStyle;\n image: ImageStyle;\n presenceIndicator: CircleProps;\n presenceIndicatorContainer: ViewStyle;\n };\n channel: {\n selectChannel: TextStyle;\n };\n channelListFooterLoadingIndicator: {\n container: ViewStyle;\n };\n channelListHeaderErrorIndicator: {\n container: ViewStyle;\n errorText: TextStyle;\n };\n channelListLoadingIndicator: {\n container: ViewStyle;\n };\n channelListMessenger: {\n flatList: ViewStyle;\n flatListContent: ViewStyle;\n };\n channelListSkeleton: {\n animationTime: number;\n background: ViewStyle;\n container: ViewStyle;\n gradientStart: StopProps;\n gradientStop: StopProps;\n height: number;\n maskFillColor?: Color;\n };\n channelPreview: {\n checkAllIcon: IconProps;\n checkIcon: IconProps;\n container: ViewStyle;\n contentContainer: ViewStyle;\n date: TextStyle;\n message: TextStyle & {\n fontWeight: TextStyle['fontWeight'];\n };\n mutedStatus: {\n height: number;\n iconStyle: ViewStyle;\n width: number;\n };\n row: ViewStyle;\n title: TextStyle;\n unreadContainer: ViewStyle;\n unreadText: TextStyle;\n };\n colors: typeof Colors & { [key: string]: string };\n dateHeader: {\n container: ViewStyle;\n text: TextStyle;\n };\n emptyStateIndicator: {\n channelContainer: ViewStyle;\n channelDetails: TextStyle;\n channelTitle: TextStyle;\n };\n groupAvatar: {\n container: ViewStyle;\n image: ImageStyle;\n };\n iconBadge: {\n icon: ViewStyle;\n iconInner: ViewStyle;\n unreadCount: TextStyle;\n };\n iconSquare: {\n container: ViewStyle;\n image: ImageStyle;\n };\n imageGallery: {\n footer: {\n centerContainer: ViewStyle;\n container: ViewStyle;\n imageCountText: TextStyle;\n innerContainer: ViewStyle;\n leftContainer: ViewStyle;\n rightContainer: ViewStyle;\n };\n grid: {\n contentContainer: ViewStyle;\n gridAvatar: ImageStyle;\n gridAvatarWrapper: ViewStyle;\n gridImage: ViewStyle;\n handle: ViewStyle;\n handleText: TextStyle;\n overlay: ViewStyle;\n };\n header: {\n centerContainer: ViewStyle;\n container: ViewStyle;\n dateText: TextStyle;\n innerContainer: ViewStyle;\n leftContainer: ViewStyle;\n rightContainer: ViewStyle;\n usernameText: TextStyle;\n };\n backgroundColor?: string;\n pager?: ViewStyle;\n slide?: ImageStyle;\n };\n inlineDateSeparator: {\n container: ViewStyle;\n text: TextStyle;\n };\n loadingDots: {\n container: ViewStyle;\n loadingDot: ViewStyle;\n spacing: number;\n };\n loadingErrorIndicator: {\n container: ViewStyle;\n errorText: TextStyle;\n retryText: TextStyle;\n };\n loadingIndicator: {\n container: ViewStyle;\n loadingText: TextStyle;\n };\n messageInput: {\n attachButton: ViewStyle;\n attachButtonContainer: ViewStyle;\n attachmentSelectionBar: ViewStyle;\n autoCompleteInputContainer: ViewStyle;\n commandsButton: ViewStyle;\n commandsButtonContainer: ViewStyle;\n composerContainer: ViewStyle;\n container: ViewStyle;\n cooldownTimer: {\n container: ViewStyle;\n text: TextStyle;\n };\n editingBoxContainer: ViewStyle;\n editingBoxHeader: ViewStyle;\n editingBoxHeaderTitle: TextStyle;\n editingStateHeader: {\n editingBoxHeader: ViewStyle;\n editingBoxHeaderTitle: TextStyle;\n };\n fileUploadPreview: {\n dismiss: ViewStyle;\n fileContainer: ViewStyle;\n fileContentContainer: ViewStyle;\n filenameText: TextStyle;\n fileSizeText: TextStyle;\n fileTextContainer: ViewStyle;\n flatList: ViewStyle;\n };\n giphyCommandInput: {\n giphyContainer: ViewStyle;\n giphyText: TextStyle;\n };\n imageUploadPreview: {\n dismiss: ViewStyle;\n flatList: ViewStyle;\n itemContainer: ViewStyle;\n upload: ImageStyle;\n };\n inputBox: TextStyle;\n inputBoxContainer: ViewStyle;\n moreOptionsButton: ViewStyle;\n optionsContainer: ViewStyle;\n replyContainer: ViewStyle;\n sendButton: ViewStyle;\n sendButtonContainer: ViewStyle;\n sendMessageDisallowedIndicator: {\n container: ViewStyle;\n text: TextStyle;\n };\n showThreadMessageInChannelButton: {\n check: IconProps;\n checkBoxActive: ViewStyle;\n checkBoxInactive: ViewStyle;\n container: ViewStyle;\n innerContainer: ViewStyle;\n text: TextStyle;\n };\n suggestions: {\n command: {\n args: TextStyle;\n container: ViewStyle;\n iconContainer: ViewStyle;\n title: TextStyle;\n };\n container: ViewStyle & {\n maxHeight: number;\n };\n emoji: {\n container: ViewStyle;\n text: TextStyle;\n };\n header: {\n container: ViewStyle;\n title: TextStyle;\n };\n item: ViewStyle;\n mention: {\n avatarSize: number;\n column: ViewStyle;\n container: ViewStyle;\n name: TextStyle;\n tag: TextStyle;\n };\n };\n suggestionsListContainer: {\n container: ViewStyle;\n flatlist: ViewStyle;\n };\n uploadProgressIndicator: {\n container: ViewStyle;\n overlay: ViewStyle;\n };\n };\n messageList: {\n container: ViewStyle;\n contentContainer: ViewStyle;\n errorNotification: ViewStyle;\n errorNotificationText: TextStyle;\n inlineUnreadIndicator: {\n container: ViewStyle;\n text: TextStyle;\n };\n listContainer: ViewStyle;\n messageSystem: {\n container: ViewStyle;\n dateText: TextStyle;\n line: ViewStyle;\n text: TextStyle;\n textContainer: ViewStyle;\n };\n scrollToBottomButton: {\n container: ViewStyle;\n touchable: ViewStyle;\n unreadCountNotificationContainer: ViewStyle;\n unreadCountNotificationText: TextStyle;\n wrapper: ViewStyle;\n chevronColor?: Color;\n };\n typingIndicatorContainer: ViewStyle;\n };\n messageSimple: {\n actions: {\n button: ViewStyle & {\n defaultBackgroundColor?: ViewStyle['backgroundColor'];\n defaultBorderColor?: ViewStyle['borderColor'];\n primaryBackgroundColor?: ViewStyle['backgroundColor'];\n primaryBorderColor?: ViewStyle['borderColor'];\n };\n buttonText: TextStyle & {\n defaultColor?: TextStyle['color'];\n primaryColor?: TextStyle['color'];\n };\n container: ViewStyle;\n };\n avatarWrapper: {\n container: ViewStyle;\n leftAlign: ViewStyle;\n rightAlign: ViewStyle;\n spacer: ViewStyle;\n };\n card: {\n authorName: TextStyle;\n authorNameContainer: ViewStyle;\n authorNameFooter: TextStyle;\n authorNameFooterContainer: ViewStyle;\n authorNameMask: ViewStyle;\n container: ViewStyle;\n cover: ImageStyle;\n footer: ViewStyle & {\n description: TextStyle;\n title: TextStyle;\n };\n noURI: ViewStyle;\n };\n container: ViewStyle;\n content: {\n container: ViewStyle & {\n borderRadiusL: ViewStyle['borderBottomLeftRadius' | 'borderTopLeftRadius'];\n borderRadiusS: ViewStyle['borderBottomRightRadius' | 'borderTopRightRadius'];\n };\n containerInner: ViewStyle;\n deletedContainer: ViewStyle;\n deletedContainerInner: ViewStyle;\n deletedMetaText: TextStyle;\n deletedText: MarkdownStyle;\n errorContainer: ViewStyle;\n errorIcon: IconProps;\n errorIconContainer: ViewStyle;\n eyeIcon: IconProps;\n /**\n * Available options for styling text:\n * https://github.com/andangrd/react-native-markdown-package/blob/master/styles.js\n */\n markdown: MarkdownStyle;\n messageUser: TextStyle;\n metaContainer: ViewStyle;\n metaText: TextStyle;\n replyBorder: ViewStyle;\n replyContainer: ViewStyle;\n textContainer: ViewStyle & {\n onlyEmojiMarkdown: MarkdownStyle;\n };\n wrapper: ViewStyle;\n };\n file: {\n container: ViewStyle;\n details: ViewStyle;\n fileSize: TextStyle;\n icon: IconProps;\n title: TextStyle;\n };\n fileAttachmentGroup: {\n container: ViewStyle;\n };\n gallery: {\n galleryContainer: ViewStyle;\n galleryItemColumn: ViewStyle;\n gridHeight: number;\n gridWidth: number;\n image: ImageStyle;\n imageContainer: ViewStyle;\n maxHeight: number;\n maxWidth: number;\n minHeight: number;\n minWidth: number;\n moreImagesContainer: ViewStyle;\n moreImagesText: TextStyle;\n };\n giphy: {\n buttonContainer: ViewStyle;\n cancel: TextStyle;\n container: ViewStyle;\n giphy: ImageStyle;\n giphyContainer: ViewStyle;\n giphyHeaderText: TextStyle;\n giphyHeaderTitle: TextStyle;\n giphyMask: ViewStyle;\n giphyMaskText: TextStyle;\n header: ViewStyle;\n selectionContainer: ViewStyle;\n send: TextStyle;\n shuffle: TextStyle;\n title: TextStyle;\n };\n pinnedHeader: {\n container: ViewStyle;\n label: TextStyle;\n };\n reactionList: {\n container: ViewStyle;\n middleIcon: ViewStyle;\n radius: number;\n reactionBubble: ViewStyle;\n reactionBubbleBackground: ViewStyle;\n reactionSize: number;\n strokeSize: number;\n };\n replies: {\n avatar: ViewStyle;\n avatarContainerMultiple: ViewStyle;\n avatarContainerSingle: ViewStyle;\n container: ViewStyle;\n leftAvatarsContainer: ViewStyle;\n leftCurve: ViewStyle;\n messageRepliesText: TextStyle;\n rightAvatarsContainer: ViewStyle;\n rightCurve: ViewStyle;\n avatarSize?: number;\n };\n status: {\n checkAllIcon: IconProps;\n checkIcon: IconProps;\n readByCount: TextStyle;\n statusContainer: ViewStyle;\n timeIcon: IconProps;\n };\n targetedMessageUnderlay: ViewStyle;\n };\n overlay: {\n container: ViewStyle;\n messageActions: {\n actionContainer: ViewStyle;\n icon: ViewStyle;\n title: TextStyle;\n };\n padding: number;\n reactions: {\n avatarContainer: ViewStyle;\n avatarName: TextStyle;\n avatarSize: number;\n container: ViewStyle;\n flatListContainer: ViewStyle;\n radius: number;\n reactionBubble: ViewStyle;\n reactionBubbleBackground: ViewStyle;\n title: TextStyle;\n };\n reactionsList: {\n radius: number;\n reaction: ViewStyle;\n reactionList: ViewStyle;\n reactionSize: number;\n };\n };\n reply: {\n container: ViewStyle;\n fileAttachmentContainer: ViewStyle;\n imageAttachment: ImageStyle;\n markdownStyles: MarkdownStyle;\n messageContainer: ViewStyle;\n textContainer: ViewStyle;\n };\n screenPadding: number;\n spinner: ViewStyle;\n thread: {\n newThread: ViewStyle & {\n text: TextStyle;\n backgroundGradientStart?: string;\n backgroundGradientStop?: string;\n };\n };\n typingIndicator: {\n container: ViewStyle;\n text: TextStyle & {\n fontSize: TextStyle['fontSize'];\n };\n };\n};\n\nexport const defaultTheme: Theme = {\n attachmentPicker: {\n bottomSheetContentContainer: {},\n errorButtonText: {},\n errorContainer: {},\n errorText: {},\n image: {},\n imageOverlay: {},\n imageOverlaySelectedComponent: {\n check: {},\n },\n },\n attachmentSelectionBar: {\n container: {},\n icon: {},\n },\n avatar: {\n BASE_AVATAR_SIZE: 32,\n container: {},\n image: {\n borderRadius: 16,\n height: 32,\n width: 32,\n },\n presenceIndicator: {\n cx: 6,\n cy: 6,\n r: 5,\n strokeWidth: 2,\n },\n presenceIndicatorContainer: {},\n },\n channel: {\n selectChannel: {},\n },\n channelListFooterLoadingIndicator: {\n container: {},\n },\n channelListHeaderErrorIndicator: {\n container: {},\n errorText: {},\n },\n channelListLoadingIndicator: {\n container: {},\n },\n channelListMessenger: {\n flatList: {},\n flatListContent: {},\n },\n channelListSkeleton: {\n animationTime: 1800, // in milliseconds\n background: {},\n container: {},\n gradientStart: {\n stopOpacity: 0,\n },\n gradientStop: {\n stopOpacity: 0.5,\n },\n height: 64,\n },\n channelPreview: {\n checkAllIcon: {\n height: DEFAULT_STATUS_ICON_SIZE,\n width: DEFAULT_STATUS_ICON_SIZE,\n },\n checkIcon: {\n height: DEFAULT_STATUS_ICON_SIZE,\n width: DEFAULT_STATUS_ICON_SIZE,\n },\n container: {},\n contentContainer: {},\n date: {},\n message: {\n fontWeight: '400',\n },\n mutedStatus: {\n height: 20,\n iconStyle: {},\n width: 20,\n },\n row: {},\n title: {},\n unreadContainer: {},\n unreadText: {},\n },\n colors: {\n ...Colors,\n },\n dateHeader: {\n container: {},\n text: {},\n },\n emptyStateIndicator: {\n channelContainer: {},\n channelDetails: {},\n channelTitle: {},\n },\n groupAvatar: {\n container: {},\n image: {\n resizeMode: 'cover',\n },\n },\n iconBadge: {\n icon: {},\n iconInner: {},\n unreadCount: {},\n },\n iconSquare: {\n container: {},\n image: {},\n },\n imageGallery: {\n footer: {\n centerContainer: {},\n container: {},\n imageCountText: {},\n innerContainer: {},\n leftContainer: {},\n rightContainer: {},\n },\n grid: {\n contentContainer: {},\n gridAvatar: {},\n gridAvatarWrapper: {},\n gridImage: {},\n handle: {},\n handleText: {},\n overlay: {},\n },\n header: {\n centerContainer: {},\n container: {},\n dateText: {},\n innerContainer: {},\n leftContainer: {},\n rightContainer: {},\n usernameText: {},\n },\n },\n inlineDateSeparator: {\n container: {},\n text: {},\n },\n loadingDots: {\n container: {},\n loadingDot: {},\n spacing: 4,\n },\n loadingErrorIndicator: {\n container: {},\n errorText: {},\n retryText: {},\n },\n loadingIndicator: {\n container: {},\n loadingText: {},\n },\n messageInput: {\n attachButton: {},\n attachButtonContainer: {},\n attachmentSelectionBar: {},\n autoCompleteInputContainer: {},\n commandsButton: {},\n commandsButtonContainer: {},\n composerContainer: {},\n container: {},\n cooldownTimer: {\n container: {},\n text: {},\n },\n editingBoxContainer: {},\n editingBoxHeader: {},\n editingBoxHeaderTitle: {},\n editingStateHeader: {\n editingBoxHeader: {},\n editingBoxHeaderTitle: {},\n },\n fileUploadPreview: {\n dismiss: {},\n fileContainer: {},\n fileContentContainer: {},\n filenameText: {},\n fileSizeText: {},\n fileTextContainer: {},\n flatList: {},\n },\n giphyCommandInput: {\n giphyContainer: {},\n giphyText: {},\n },\n imageUploadPreview: {\n dismiss: {},\n flatList: {},\n itemContainer: {},\n upload: {},\n },\n inputBox: {},\n inputBoxContainer: {},\n moreOptionsButton: {},\n optionsContainer: {},\n replyContainer: {},\n sendButton: {},\n sendButtonContainer: {},\n sendMessageDisallowedIndicator: {\n container: {},\n text: {},\n },\n showThreadMessageInChannelButton: {\n check: {},\n checkBoxActive: {},\n checkBoxInactive: {},\n container: {},\n innerContainer: {},\n text: {},\n },\n suggestions: {\n command: {\n args: {},\n container: {},\n iconContainer: {},\n title: {},\n },\n container: {\n maxHeight: vh(25),\n },\n emoji: {\n container: {},\n text: {},\n },\n header: {\n container: {},\n title: {},\n },\n item: {},\n mention: {\n avatarSize: 40,\n column: {},\n container: {},\n name: {},\n tag: {},\n },\n },\n suggestionsListContainer: {\n container: {},\n flatlist: {},\n },\n uploadProgressIndicator: {\n container: {},\n overlay: {},\n },\n },\n messageList: {\n container: {},\n contentContainer: {},\n errorNotification: {},\n errorNotificationText: {},\n inlineUnreadIndicator: {\n container: {},\n text: {},\n },\n listContainer: {},\n messageSystem: {\n container: {},\n dateText: {},\n line: {},\n text: {},\n textContainer: {},\n },\n scrollToBottomButton: {\n container: {},\n touchable: {},\n unreadCountNotificationContainer: {},\n unreadCountNotificationText: {},\n wrapper: {},\n },\n typingIndicatorContainer: {},\n },\n messageSimple: {\n actions: {\n button: {},\n buttonText: {},\n container: {},\n },\n avatarWrapper: {\n container: {},\n leftAlign: {\n marginRight: 8,\n },\n rightAlign: {\n marginLeft: 8,\n },\n spacer: {\n height: 28,\n width: 32, // same as BASE_AVATAR_SIZE\n },\n },\n card: {\n authorName: {},\n authorNameContainer: {},\n authorNameFooter: {},\n authorNameFooterContainer: {},\n authorNameMask: {},\n container: {},\n cover: {},\n footer: {\n description: {},\n title: {\n fontWeight: '700',\n },\n },\n noURI: {\n borderLeftWidth: 2,\n paddingLeft: 8,\n },\n },\n container: {},\n content: {\n container: {\n borderRadiusL: 16,\n borderRadiusS: 0,\n },\n containerInner: {},\n deletedContainer: {},\n deletedContainerInner: {},\n deletedMetaText: {\n paddingHorizontal: 5,\n },\n deletedText: {\n em: {\n fontSize: 15,\n fontStyle: 'italic',\n fontWeight: '400',\n },\n },\n errorContainer: {\n paddingRight: 12,\n paddingTop: 0,\n },\n errorIcon: {\n height: 20,\n width: 20,\n },\n errorIconContainer: {\n bottom: -2,\n position: 'absolute',\n right: -12,\n },\n eyeIcon: {\n height: 16,\n width: 16,\n },\n markdown: {},\n messageUser: {\n fontSize: 12,\n fontWeight: '700',\n paddingRight: 6,\n },\n metaContainer: {\n flexDirection: 'row',\n marginTop: 4,\n },\n metaText: {\n fontSize: 12,\n },\n replyBorder: {},\n replyContainer: {},\n textContainer: {\n onlyEmojiMarkdown: { text: { fontSize: 50 } },\n },\n wrapper: {},\n },\n file: {\n container: {},\n details: {},\n fileSize: {},\n icon: {},\n title: {},\n },\n fileAttachmentGroup: {\n container: {},\n },\n gallery: {\n galleryContainer: {},\n galleryItemColumn: {},\n gridHeight: 195,\n gridWidth: 256,\n image: {},\n imageContainer: {},\n maxHeight: 300,\n maxWidth: 256,\n minHeight: 100,\n minWidth: 170,\n moreImagesContainer: {},\n moreImagesText: {},\n },\n giphy: {\n buttonContainer: {},\n cancel: {},\n container: {},\n giphy: {},\n giphyContainer: {},\n giphyHeaderText: {},\n giphyHeaderTitle: {},\n giphyMask: {},\n giphyMaskText: {},\n header: {},\n selectionContainer: {},\n send: {},\n shuffle: {},\n title: {},\n },\n pinnedHeader: {\n container: {},\n label: {},\n },\n reactionList: {\n container: {},\n middleIcon: {},\n radius: 2, // not recommended to change this\n reactionBubble: {},\n reactionBubbleBackground: {},\n reactionSize: 24,\n strokeSize: 1, // not recommended to change this\n },\n replies: {\n avatar: {},\n avatarContainerMultiple: {},\n avatarContainerSingle: {},\n container: {},\n leftAvatarsContainer: {},\n leftCurve: {},\n messageRepliesText: {},\n rightAvatarsContainer: {},\n rightCurve: {},\n },\n status: {\n checkAllIcon: {\n height: DEFAULT_STATUS_ICON_SIZE,\n width: DEFAULT_STATUS_ICON_SIZE,\n },\n checkIcon: {\n height: DEFAULT_STATUS_ICON_SIZE,\n width: DEFAULT_STATUS_ICON_SIZE,\n },\n readByCount: {},\n statusContainer: {},\n timeIcon: {\n height: DEFAULT_STATUS_ICON_SIZE,\n width: DEFAULT_STATUS_ICON_SIZE,\n },\n },\n targetedMessageUnderlay: {},\n },\n overlay: {\n container: {},\n messageActions: {\n actionContainer: {},\n icon: {},\n title: {},\n },\n padding: 8,\n reactions: {\n avatarContainer: {},\n avatarName: {},\n avatarSize: 64,\n container: {},\n flatListContainer: {},\n radius: 2,\n reactionBubble: {},\n reactionBubbleBackground: {},\n title: {},\n },\n reactionsList: {\n radius: 2.5,\n reaction: {},\n reactionList: {},\n reactionSize: 24,\n },\n },\n reply: {\n container: {},\n fileAttachmentContainer: {},\n imageAttachment: {},\n markdownStyles: {},\n messageContainer: {},\n textContainer: {},\n },\n screenPadding: 8,\n spinner: {},\n thread: {\n newThread: {\n text: {},\n },\n },\n typingIndicator: {\n container: {},\n text: {\n fontSize: 14,\n },\n },\n};\n"]}
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
"Error loading channel list...": "Error loading channel list...",
|
|
20
20
|
"Error loading messages for this channel...": "Error loading messages for this channel...",
|
|
21
21
|
"Error while loading, please reload/refresh": "Error while loading, please reload/refresh",
|
|
22
|
+
"File type not supported": "File type not supported",
|
|
22
23
|
"Flag": "Flag",
|
|
23
24
|
"Flag Message": "Flag Message",
|
|
24
25
|
"Flag action failed either due to a network issue or the message is already flagged": "Flag action failed either due to a network issue or the message is already flagged.",
|
|
@@ -31,6 +32,7 @@
|
|
|
31
32
|
"Message deleted": "Message deleted",
|
|
32
33
|
"Message flagged": "Message flagged",
|
|
33
34
|
"Mute User": "Mute User",
|
|
35
|
+
"Not supported": "Not supported",
|
|
34
36
|
"Nothing yet...": "Nothing yet...",
|
|
35
37
|
"Ok": "Ok",
|
|
36
38
|
"Only visible to you": "Only visible to you",
|