stream-chat-react-native-core 5.0.0-offline-support.6 → 5.0.0-offline-support.9
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/lib/commonjs/components/Attachment/Gallery.js +5 -5
- package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
- package/lib/commonjs/components/Attachment/VideoThumbnail.js +18 -16
- package/lib/commonjs/components/Attachment/VideoThumbnail.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/listeners/handleEventToSyncDB.js +2 -2
- package/lib/commonjs/components/ChannelList/hooks/listeners/handleEventToSyncDB.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreview.js +15 -8
- package/lib/commonjs/components/ChannelPreview/ChannelPreview.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js +3 -2
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js +4 -2
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +4 -1
- package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
- package/lib/commonjs/components/Reply/Reply.js +21 -13
- package/lib/commonjs/components/Reply/Reply.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +2 -2
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/themeContext/utils/theme.js +5 -1
- package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/Gallery.js +5 -5
- package/lib/module/components/Attachment/Gallery.js.map +1 -1
- package/lib/module/components/Attachment/VideoThumbnail.js +18 -16
- package/lib/module/components/Attachment/VideoThumbnail.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/listeners/handleEventToSyncDB.js +2 -2
- package/lib/module/components/ChannelList/hooks/listeners/handleEventToSyncDB.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreview.js +15 -8
- package/lib/module/components/ChannelPreview/ChannelPreview.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js +3 -2
- package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
- package/lib/module/components/MessageInput/FileUploadPreview.js +4 -2
- package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/ImageUploadPreview.js +4 -1
- package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
- package/lib/module/components/Reply/Reply.js +21 -13
- package/lib/module/components/Reply/Reply.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js +2 -2
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/contexts/themeContext/utils/theme.js +5 -1
- package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Attachment/VideoThumbnail.d.ts +4 -2
- package/lib/typescript/contexts/themeContext/utils/theme.d.ts +4 -0
- package/package.json +1 -1
- package/src/components/Attachment/Gallery.tsx +5 -5
- package/src/components/Attachment/VideoThumbnail.tsx +14 -4
- package/src/components/ChannelList/hooks/listeners/handleEventToSyncDB.ts +2 -2
- package/src/components/ChannelPreview/ChannelPreview.tsx +12 -10
- package/src/components/ImageGallery/components/ImageGalleryFooter.tsx +2 -2
- package/src/components/MessageInput/FileUploadPreview.tsx +3 -3
- package/src/components/MessageInput/ImageUploadPreview.tsx +2 -2
- package/src/components/Reply/Reply.tsx +14 -2
- package/src/contexts/messageInputContext/MessageInputContext.tsx +7 -7
- package/src/contexts/messageInputContext/__tests__/__snapshots__/sendMessage.test.tsx.snap +3 -3
- package/src/contexts/themeContext/utils/theme.ts +8 -0
- package/src/version.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MessageInputContext.tsx"],"names":["MessageInputContext","React","createContext","DEFAULT_BASE_CONTEXT_VALUE","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","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","Keyboard","dismiss","setTimeout","pickFile","closeAttachmentPicker","toggleAttachmentPicker","onSelectItem","item","prevMentionedUsers","maxNumberOfFiles","Alert","alert","result","cancelled","docs","forEach","doc","uploadNewFile","removeFile","some","prevFileUploads","filter","prevNumberOfUploads","removeImage","prevImageUploads","resetInput","pendingAttachments","length","sendMessage","sendLinks","match","urlRegex","clear","attachments","sendImageAsync","prevAsyncIds","mime_type","filename","UPLOADED","FINISHED","push","fallback","name","image_url","url","original_height","height","original_width","width","type","startsWith","asset_url","duration","file_size","size","title","thumb_url","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","compressImageQuality","compressedUri","replace","contentType","doImageUploadRequest","sendImage","res","includes","newImageUploads","Object","keys","mimeType","isBlockedFileExtension","fileExtensionType","isBlockedFileMimeType","Promise","all","concat","uploadNewImage","isBlockedImageMimeType","isBlockedImageExtension","imageExtensionType","imageState","messageInputContext","openFilePicker","useMessageInputContext","contextValue","withMessageInputContext","Component","WithMessageInputContextComponent","props","displayName"],"mappings":"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","sourcesContent":["import React, { PropsWithChildren, useContext, useEffect, useRef, useState } from 'react';\n\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 { compressImage, getLocalAssetUri, pickDocument } from '../../native';\nimport type { Asset, DefaultStreamChatGenerics, File, 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 { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';\n\nimport { getDisplayName } from '../utils/getDisplayName';\nimport { isTestEnvironment } from '../utils/isTestEnvironment';\n\nexport type FileUpload = {\n file: File;\n id: string;\n state: FileStateValue;\n thumb_url?: string;\n url?: string;\n};\n\nexport type ImageUpload = {\n file: Partial<Asset> & {\n name?: string;\n };\n id: string;\n state: FileStateValue;\n height?: number;\n url?: string;\n width?: number;\n};\n\nexport type MentionAllAppUsersQuery<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n filters?: UserFilters<StreamChatGenerics>;\n options?: UserOptions;\n sort?: UserSort<StreamChatGenerics>;\n};\n\nexport type LocalMessageInputContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n appendText: (newText: string) => void;\n asyncIds: string[];\n asyncUploads: {\n [key: string]: {\n state: string;\n url: string;\n };\n };\n closeAttachmentPicker: () => void;\n /** The time at which the active cooldown will end */\n cooldownEndsAt: Date;\n /**\n * An array of file objects which are set for upload. It has the following structure:\n *\n * ```json\n * [\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_1\",\n * \"state\": \"uploading\" // or \"finished\",\n * \"url\": \"https://url1.com\",\n * },\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_2\",\n * \"state\": \"uploading\" // or \"finished\",\n * \"url\": \"https://url1.com\",\n * },\n * ]\n * ```\n *\n */\n fileUploads: FileUpload[];\n giphyActive: boolean;\n /**\n * An array of image objects which are set for upload. It has the following structure:\n *\n * ```json\n * [\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_1\",\n * \"state\": \"uploading\" // or \"finished\",\n * },\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_2\",\n * \"state\": \"uploading\" // or \"finished\",\n * },\n * ]\n * ```\n *\n */\n imageUploads: ImageUpload[];\n inputBoxRef: React.MutableRefObject<TextInput | null>;\n isValidMessage: () => boolean;\n mentionedUsers: string[];\n numberOfUploads: number;\n onChange: (newText: string) => void;\n onSelectItem: (item: UserResponse<StreamChatGenerics>) => void;\n openAttachmentPicker: () => void;\n openCommandsPicker: () => void;\n openFilePicker: () => void;\n openMentionsPicker: () => void;\n pickFile: () => Promise<void>;\n /**\n * Function for removing a file from the upload preview\n *\n * @param id string ID of file in `fileUploads` object in state of MessageInput\n */\n removeFile: (id: string) => void;\n /**\n * Function for removing an image from the upload preview\n *\n * @param id string ID of image in `imageUploads` object in state of MessageInput\n */\n removeImage: (id: string) => void;\n resetInput: (pendingAttachments?: Attachment<StreamChatGenerics>[]) => void;\n selectedPicker: string | undefined;\n sending: React.MutableRefObject<boolean>;\n sendMessage: () => Promise<void>;\n sendMessageAsync: (id: string) => void;\n sendThreadMessageInChannel: boolean;\n setAsyncIds: React.Dispatch<React.SetStateAction<string[]>>;\n setAsyncUploads: React.Dispatch<\n React.SetStateAction<{\n [key: string]: {\n state: string;\n url: string;\n };\n }>\n >;\n setFileUploads: React.Dispatch<React.SetStateAction<FileUpload[]>>;\n setGiphyActive: React.Dispatch<React.SetStateAction<boolean>>;\n setImageUploads: React.Dispatch<React.SetStateAction<ImageUpload[]>>;\n /**\n * Ref callback to set reference on input box\n */\n setInputBoxRef: (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: File) => Promise<void>;\n uploadNewImage: (image: Asset) => Promise<void>;\n};\n\nexport type InputMessageInputContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /**\n * Custom UI component for attach button.\n *\n * Defaults to and accepts same props as: [AttachButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/attach-button/)\n */\n AttachButton: React.ComponentType<AttachButtonProps<StreamChatGenerics>>;\n clearEditingState: () => void;\n clearQuotedMessageState: () => void;\n /**\n * Custom UI component for commands button.\n *\n * Defaults to and accepts same props as: [CommandsButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/commands-button/)\n */\n CommandsButton: React.ComponentType<CommandsButtonProps<StreamChatGenerics>>;\n /**\n * Custom UI component to display the remaining cooldown a user will have to wait before\n * being allowed to send another message. This component is displayed in place of the\n * send button for the MessageInput component.\n *\n * **default** [CooldownTimer](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/CooldownTimer.tsx)\n */\n CooldownTimer: React.ComponentType<CooldownTimerProps>;\n editing: boolean | MessageType<StreamChatGenerics>;\n editMessage: StreamChat<StreamChatGenerics>['updateMessage'];\n\n /**\n * Custom UI component for FileUploadPreview.\n * Defaults to and accepts same props as: https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/FileUploadPreview.tsx\n */\n FileUploadPreview: React.ComponentType<FileUploadPreviewProps<StreamChatGenerics>>;\n\n /** When false, CommandsButton will be hidden */\n hasCommands: boolean;\n /** When false, FileSelectorIcon will be hidden */\n hasFilePicker: boolean;\n /** When false, ImageSelectorIcon will be hidden */\n hasImagePicker: boolean;\n /**\n * Custom UI component for ImageUploadPreview.\n * Defaults to and accepts same props as: https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/ImageUploadPreview.tsx\n */\n ImageUploadPreview: React.ComponentType<ImageUploadPreviewProps<StreamChatGenerics>>;\n InputEditingStateHeader: React.ComponentType<InputEditingStateHeaderProps<StreamChatGenerics>>;\n InputGiphySearch: React.ComponentType<InputGiphySearchProps<StreamChatGenerics>>;\n InputReplyStateHeader: React.ComponentType<InputReplyStateHeaderProps<StreamChatGenerics>>;\n /** Limit on allowed number of files to attach at a time. */\n maxNumberOfFiles: number;\n /**\n * Custom UI component for more options button.\n *\n * Defaults to and accepts same props as: [MoreOptionsButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/more-options-button/)\n */\n MoreOptionsButton: React.ComponentType<MoreOptionsButtonProps<StreamChatGenerics>>;\n /** Limit on the number of lines in the text input before scrolling */\n numberOfLines: number;\n quotedMessage: boolean | MessageType<StreamChatGenerics>;\n /**\n * Custom UI component for send button.\n *\n * Defaults to and accepts same props as: [SendButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/send-button/)\n */\n SendButton: React.ComponentType<SendButtonProps<StreamChatGenerics>>;\n sendImageAsync: boolean;\n sendMessage: (message: Partial<StreamMessage<StreamChatGenerics>>) => Promise<void>;\n setQuotedMessageState: (message: MessageType<StreamChatGenerics>) => void;\n /**\n * Custom UI component to render checkbox with text (\"Also send to channel\") in Thread's input box.\n * When ticked, message will also be sent in parent channel.\n */\n ShowThreadMessageInChannelButton: React.ComponentType<{\n threadList?: boolean;\n }>;\n /**\n * Custom UI component to render upload progress indicator on attachment preview.\n *\n * **Default** [UploadProgressIndicator](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/UploadProgressIndicator.tsx)\n */\n UploadProgressIndicator: React.ComponentType<UploadProgressIndicatorProps>;\n /**\n * Additional props for underlying TextInput component. These props will be forwarded as it is to TextInput component.\n *\n * @see See https://reactnative.dev/docs/textinput#reference\n */\n additionalTextInputProps?: TextInputProps;\n /** Max number of suggestions to display in autocomplete list. Defaults to 10. */\n autoCompleteSuggestionsLimit?: number;\n /**\n * Mapping of input triggers to the outputs to be displayed by the AutoCompleteInput\n */\n autoCompleteTriggerSettings?: (\n settings: ACITriggerSettingsParams<StreamChatGenerics>,\n ) => TriggerSettings<StreamChatGenerics>;\n /**\n * Compress image with quality (from 0 to 1, where 1 is best quality).\n * On iOS, values larger than 0.8 don't produce a noticeable quality increase in most images,\n * while a value of 0.8 will reduce the file size by about half or less compared to a value of 1.\n * Image picker defaults to 0.8 for iOS and 1 for Android\n */\n compressImageQuality?: number;\n /**\n * Override file upload request\n *\n * @param file File object - { uri: '', name: '' }\n * @param channel Current channel object\n *\n * @overrideType Function\n */\n doDocUploadRequest?: (\n file: {\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/main/package/src/contexts/messageInputContext/MessageInputContext.tsx)\n */\n Input?: React.ComponentType<\n Omit<MessageInputProps<StreamChatGenerics>, 'Input'> &\n InputButtonsProps<StreamChatGenerics> & {\n getUsers: () => UserResponse<StreamChatGenerics>[];\n }\n >;\n /**\n * Custom UI component to override buttons on left side of input box\n * Defaults to [InputButtons](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/InputButtons.tsx),\n * which contain following components/buttons:\n *\n * - AttachButton\n * - CommandsButtom\n *\n * You have access to following prop functions:\n *\n * - closeAttachmentPicker\n * - openAttachmentPicker\n * - openCommandsPicker\n * - toggleAttachmentPicker\n */\n InputButtons?: React.ComponentType<InputButtonsProps<StreamChatGenerics>>;\n maxMessageLength?: number;\n mentionAllAppUsersEnabled?: boolean;\n /** Object containing filters/sort/options overrides for an @mention user query */\n mentionAllAppUsersQuery?: MentionAllAppUsersQuery<StreamChatGenerics>;\n /**\n * Callback that is called when the text input's text changes. Changed text is passed as a single string argument to the callback handler.\n */\n onChangeText?: (newText: string) => void;\n SendMessageDisallowedIndicator?: React.ComponentType;\n /**\n * ref for input setter function\n *\n * @param ref [Ref object](https://reactjs.org/docs/refs-and-the-dom.html) for underling `TextInput` component.\n *\n * @overrideType Function\n */\n setInputRef?: (ref: TextInput | null) => void;\n};\n\nexport type MessageInputContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = LocalMessageInputContext<StreamChatGenerics> &\n Omit<InputMessageInputContextValue<StreamChatGenerics>, 'sendMessage'>;\n\nexport const MessageInputContext = React.createContext(\n DEFAULT_BASE_CONTEXT_VALUE as MessageInputContextValue,\n);\n\nexport const MessageInputProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n children,\n value,\n}: PropsWithChildren<{\n value: InputMessageInputContextValue<StreamChatGenerics>;\n}>) => {\n const { closePicker, openPicker, selectedPicker, setSelectedPicker } =\n useAttachmentPickerContext();\n const { appSettings, client } = useChatContext<StreamChatGenerics>();\n\n const getFileUploadConfig = () => {\n const fileConfig = appSettings?.app?.file_upload_config;\n if (fileConfig !== null || fileConfig !== undefined) {\n return fileConfig;\n } else {\n return {};\n }\n };\n\n const blockedFileExtensionTypes = getFileUploadConfig()?.blocked_file_extensions;\n const blockedFileMimeTypes = getFileUploadConfig()?.blocked_mime_types;\n\n const getImageUploadConfig = () => {\n const imageConfig = appSettings?.app?.image_upload_config;\n if (imageConfig !== null || imageConfig !== undefined) {\n return imageConfig;\n }\n return {};\n };\n\n const blockedImageExtensionTypes = getImageUploadConfig()?.blocked_file_extensions;\n const blockedImageMimeTypes = getImageUploadConfig()?.blocked_mime_types;\n\n const channelCapabities = useOwnCapabilitiesContext();\n\n const { channel, giphyEnabled } = useChannelContext<StreamChatGenerics>();\n const { thread } = useThreadContext<StreamChatGenerics>();\n const { t } = useTranslationContext();\n const inputBoxRef = useRef<TextInput | null>(null);\n const sending = useRef(false);\n\n const [asyncIds, setAsyncIds] = useState<string[]>([]);\n const [asyncUploads, setAsyncUploads] = useState<{\n [key: string]: {\n state: string;\n url: string;\n };\n }>({});\n const [giphyActive, setGiphyActive] = useState(false);\n const [sendThreadMessageInChannel, setSendThreadMessageInChannel] = useState(false);\n const { editing, hasFilePicker, hasImagePicker, initialValue } = value;\n const {\n fileUploads,\n imageUploads,\n mentionedUsers,\n numberOfUploads,\n setFileUploads,\n setImageUploads,\n setMentionedUsers,\n setNumberOfUploads,\n setShowMoreOptions,\n setText,\n showMoreOptions,\n text,\n } = useMessageDetailsForState<StreamChatGenerics>(editing, initialValue);\n const { endsAt: cooldownEndsAt, start: startCooldown } = useCooldown<StreamChatGenerics>();\n\n const threadId = thread?.id;\n useEffect(() => {\n setSendThreadMessageInChannel(false);\n }, [threadId]);\n\n const appendText = (newText: string) => {\n setText((prevText) => `${prevText}${newText}`);\n };\n\n /** Checks if the message is valid or not. Accordingly we can enable/disable send button */\n const isValidMessage = () => {\n if (text && text.trim()) {\n return true;\n }\n\n 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) {\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) {\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 Alert.alert('Maximum number of files reached');\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 // To get the mime type of the image from the file name and send it as an response for an image\n const mime_type: string | boolean = lookup(image.file.filename as string);\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 mime_type,\n original_height: image.height,\n original_width: image.width,\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 const mime_type: string | boolean = lookup(file.file.name as string);\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 mime_type,\n type: 'image',\n } as Attachment<StreamChatGenerics>);\n } else if (file.file.type?.startsWith('audio/')) {\n attachments.push({\n asset_url: file.url,\n duration: file.file.duration,\n file_size: file.file.size,\n mime_type: file.file.type,\n title: file.file.name,\n type: 'audio',\n } as Attachment<StreamChatGenerics>);\n } else if (file.file.type?.startsWith('video/')) {\n attachments.push({\n asset_url: file.url,\n duration: file.file.duration,\n file_size: file.file.size,\n mime_type: file.file.type,\n thumb_url: file.thumb_url,\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 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> = { thumb_url: response.thumb_url, url: response.file };\n setFileUploads(getUploadSetStateAction(id, FileState.UPLOADED, extraData));\n } catch (error: unknown) {\n handleFileOrImageUploadError(error, false, id);\n }\n };\n\n const uploadImage = async ({ newImage }: { newImage: ImageUpload }) => {\n const { file, id } = newImage || {};\n\n if (!file) {\n return;\n }\n\n let response = {} as SendFileAPIResponse;\n\n try {\n /**\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, file.filename, contentType).then((res) => {\n if (asyncIds.includes(id)) {\n // Evaluates to true if user hit send before image successfully uploaded\n setAsyncUploads((prevAsyncUploads) => {\n prevAsyncUploads[id] = {\n ...prevAsyncUploads[id],\n state: FileState.UPLOADED,\n url: res.file,\n };\n return prevAsyncUploads;\n });\n } else {\n const newImageUploads = getUploadSetStateAction<ImageUpload>(id, FileState.UPLOADED, {\n url: res.file,\n });\n setImageUploads(newImageUploads);\n }\n });\n } else {\n response = await channel.sendImage(compressedUri, file.filename, contentType);\n }\n }\n\n if (Object.keys(response).length) {\n const newImageUploads = getUploadSetStateAction<ImageUpload>(id, FileState.UPLOADED, {\n height: file.height,\n url: response.file,\n width: file.width,\n });\n setImageUploads(newImageUploads);\n }\n } catch (error) {\n handleFileOrImageUploadError(error, true, id);\n }\n };\n\n const uploadNewFile = async (file: {\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: 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>() => {\n const contextValue = useContext(\n MessageInputContext,\n ) as unknown as MessageInputContextValue<StreamChatGenerics>;\n\n if (contextValue === DEFAULT_BASE_CONTEXT_VALUE && !isTestEnvironment()) {\n throw new Error(\n `The useMessageInputContext hook was called outside of the MessageInputContext provider. Make sure you have configured Channel component correctly - https://getstream.io/chat/docs/sdk/reactnative/basics/hello_stream_chat/#channel`,\n );\n }\n\n return contextValue;\n};\n\n/**\n * Typescript currently does not support partial inference so if MessageInputContext\n * typing is desired while using the HOC withMessageInputContext the Props for the\n * wrapped component must be provided as the first generic.\n */\nexport const withMessageInputContext = <\n P extends UnknownType,\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n Component: React.ComponentType<P>,\n): React.FC<Omit<P, keyof MessageInputContextValue<StreamChatGenerics>>> => {\n const WithMessageInputContextComponent = (\n props: Omit<P, keyof MessageInputContextValue<StreamChatGenerics>>,\n ) => {\n const messageInputContext = useMessageInputContext<StreamChatGenerics>();\n\n return <Component {...(props as P)} {...messageInputContext} />;\n };\n WithMessageInputContextComponent.displayName = `WithMessageInputContext${getDisplayName(\n Component,\n )}`;\n return WithMessageInputContextComponent;\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["MessageInputContext.tsx"],"names":["MessageInputContext","React","createContext","DEFAULT_BASE_CONTEXT_VALUE","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","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","Keyboard","dismiss","setTimeout","pickFile","closeAttachmentPicker","toggleAttachmentPicker","onSelectItem","item","prevMentionedUsers","maxNumberOfFiles","Alert","alert","result","cancelled","docs","forEach","doc","uploadNewFile","removeFile","some","prevFileUploads","filter","prevNumberOfUploads","removeImage","prevImageUploads","resetInput","pendingAttachments","length","sendMessage","sendLinks","match","urlRegex","clear","attachments","sendImageAsync","prevAsyncIds","mime_type","filename","UPLOADED","FINISHED","push","fallback","name","image_url","url","original_height","height","original_width","width","type","startsWith","asset_url","duration","file_size","size","title","thumb_url","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","compressImageQuality","compressedUri","replace","contentType","doImageUploadRequest","sendImage","res","includes","newImageUploads","Object","keys","mimeType","isBlockedFileExtension","fileExtensionType","isBlockedFileMimeType","Promise","all","concat","uploadNewImage","isBlockedImageMimeType","isBlockedImageExtension","imageExtensionType","imageState","messageInputContext","openFilePicker","useMessageInputContext","contextValue","withMessageInputContext","Component","WithMessageInputContextComponent","props","displayName"],"mappings":"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","sourcesContent":["import React, { PropsWithChildren, useContext, useEffect, useRef, useState } from 'react';\n\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 { compressImage, getLocalAssetUri, pickDocument } from '../../native';\nimport type { Asset, DefaultStreamChatGenerics, File, 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 { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';\n\nimport { getDisplayName } from '../utils/getDisplayName';\nimport { isTestEnvironment } from '../utils/isTestEnvironment';\n\nexport type FileUpload = {\n file: File;\n id: string;\n state: FileStateValue;\n thumb_url?: string;\n url?: string;\n};\n\nexport type ImageUpload = {\n file: Partial<Asset> & {\n name?: string;\n };\n id: string;\n state: FileStateValue;\n height?: number;\n url?: string;\n width?: number;\n};\n\nexport type MentionAllAppUsersQuery<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n filters?: UserFilters<StreamChatGenerics>;\n options?: UserOptions;\n sort?: UserSort<StreamChatGenerics>;\n};\n\nexport type LocalMessageInputContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n appendText: (newText: string) => void;\n asyncIds: string[];\n asyncUploads: {\n [key: string]: {\n state: string;\n url: string;\n };\n };\n closeAttachmentPicker: () => void;\n /** The time at which the active cooldown will end */\n cooldownEndsAt: Date;\n /**\n * An array of file objects which are set for upload. It has the following structure:\n *\n * ```json\n * [\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_1\",\n * \"state\": \"uploading\" // or \"finished\",\n * \"url\": \"https://url1.com\",\n * },\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_2\",\n * \"state\": \"uploading\" // or \"finished\",\n * \"url\": \"https://url1.com\",\n * },\n * ]\n * ```\n *\n */\n fileUploads: FileUpload[];\n giphyActive: boolean;\n /**\n * An array of image objects which are set for upload. It has the following structure:\n *\n * ```json\n * [\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_1\",\n * \"state\": \"uploading\" // or \"finished\",\n * },\n * {\n * \"file\": // File object,\n * \"id\": \"randomly_generated_temp_id_2\",\n * \"state\": \"uploading\" // or \"finished\",\n * },\n * ]\n * ```\n *\n */\n imageUploads: ImageUpload[];\n inputBoxRef: React.MutableRefObject<TextInput | null>;\n isValidMessage: () => boolean;\n mentionedUsers: string[];\n numberOfUploads: number;\n onChange: (newText: string) => void;\n onSelectItem: (item: UserResponse<StreamChatGenerics>) => void;\n openAttachmentPicker: () => void;\n openCommandsPicker: () => void;\n openFilePicker: () => void;\n openMentionsPicker: () => void;\n pickFile: () => Promise<void>;\n /**\n * Function for removing a file from the upload preview\n *\n * @param id string ID of file in `fileUploads` object in state of MessageInput\n */\n removeFile: (id: string) => void;\n /**\n * Function for removing an image from the upload preview\n *\n * @param id string ID of image in `imageUploads` object in state of MessageInput\n */\n removeImage: (id: string) => void;\n resetInput: (pendingAttachments?: Attachment<StreamChatGenerics>[]) => void;\n selectedPicker: string | undefined;\n sending: React.MutableRefObject<boolean>;\n sendMessage: () => Promise<void>;\n sendMessageAsync: (id: string) => void;\n sendThreadMessageInChannel: boolean;\n setAsyncIds: React.Dispatch<React.SetStateAction<string[]>>;\n setAsyncUploads: React.Dispatch<\n React.SetStateAction<{\n [key: string]: {\n state: string;\n url: string;\n };\n }>\n >;\n setFileUploads: React.Dispatch<React.SetStateAction<FileUpload[]>>;\n setGiphyActive: React.Dispatch<React.SetStateAction<boolean>>;\n setImageUploads: React.Dispatch<React.SetStateAction<ImageUpload[]>>;\n /**\n * Ref callback to set reference on input box\n */\n setInputBoxRef: (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: File) => Promise<void>;\n uploadNewImage: (image: Asset) => Promise<void>;\n};\n\nexport type InputMessageInputContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /**\n * Custom UI component for attach button.\n *\n * Defaults to and accepts same props as: [AttachButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/attach-button/)\n */\n AttachButton: React.ComponentType<AttachButtonProps<StreamChatGenerics>>;\n clearEditingState: () => void;\n clearQuotedMessageState: () => void;\n /**\n * Custom UI component for commands button.\n *\n * Defaults to and accepts same props as: [CommandsButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/commands-button/)\n */\n CommandsButton: React.ComponentType<CommandsButtonProps<StreamChatGenerics>>;\n /**\n * Custom UI component to display the remaining cooldown a user will have to wait before\n * being allowed to send another message. This component is displayed in place of the\n * send button for the MessageInput component.\n *\n * **default** [CooldownTimer](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/CooldownTimer.tsx)\n */\n CooldownTimer: React.ComponentType<CooldownTimerProps>;\n editing: boolean | MessageType<StreamChatGenerics>;\n editMessage: StreamChat<StreamChatGenerics>['updateMessage'];\n\n /**\n * Custom UI component for FileUploadPreview.\n * Defaults to and accepts same props as: https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/FileUploadPreview.tsx\n */\n FileUploadPreview: React.ComponentType<FileUploadPreviewProps<StreamChatGenerics>>;\n\n /** When false, CommandsButton will be hidden */\n hasCommands: boolean;\n /** When false, FileSelectorIcon will be hidden */\n hasFilePicker: boolean;\n /** When false, ImageSelectorIcon will be hidden */\n hasImagePicker: boolean;\n /**\n * Custom UI component for ImageUploadPreview.\n * Defaults to and accepts same props as: https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/ImageUploadPreview.tsx\n */\n ImageUploadPreview: React.ComponentType<ImageUploadPreviewProps<StreamChatGenerics>>;\n InputEditingStateHeader: React.ComponentType<InputEditingStateHeaderProps<StreamChatGenerics>>;\n InputGiphySearch: React.ComponentType<InputGiphySearchProps<StreamChatGenerics>>;\n InputReplyStateHeader: React.ComponentType<InputReplyStateHeaderProps<StreamChatGenerics>>;\n /** Limit on allowed number of files to attach at a time. */\n maxNumberOfFiles: number;\n /**\n * Custom UI component for more options button.\n *\n * Defaults to and accepts same props as: [MoreOptionsButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/more-options-button/)\n */\n MoreOptionsButton: React.ComponentType<MoreOptionsButtonProps<StreamChatGenerics>>;\n /** Limit on the number of lines in the text input before scrolling */\n numberOfLines: number;\n quotedMessage: boolean | MessageType<StreamChatGenerics>;\n /**\n * Custom UI component for send button.\n *\n * Defaults to and accepts same props as: [SendButton](https://getstream.io/chat/docs/sdk/reactnative/ui-components/send-button/)\n */\n SendButton: React.ComponentType<SendButtonProps<StreamChatGenerics>>;\n sendImageAsync: boolean;\n sendMessage: (message: Partial<StreamMessage<StreamChatGenerics>>) => Promise<void>;\n setQuotedMessageState: (message: MessageType<StreamChatGenerics>) => void;\n /**\n * Custom UI component to render checkbox with text (\"Also send to channel\") in Thread's input box.\n * When ticked, message will also be sent in parent channel.\n */\n ShowThreadMessageInChannelButton: React.ComponentType<{\n threadList?: boolean;\n }>;\n /**\n * Custom UI component to render upload progress indicator on attachment preview.\n *\n * **Default** [UploadProgressIndicator](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/UploadProgressIndicator.tsx)\n */\n UploadProgressIndicator: React.ComponentType<UploadProgressIndicatorProps>;\n /**\n * Additional props for underlying TextInput component. These props will be forwarded as it is to TextInput component.\n *\n * @see See https://reactnative.dev/docs/textinput#reference\n */\n additionalTextInputProps?: TextInputProps;\n /** Max number of suggestions to display in autocomplete list. Defaults to 10. */\n autoCompleteSuggestionsLimit?: number;\n /**\n * Mapping of input triggers to the outputs to be displayed by the AutoCompleteInput\n */\n autoCompleteTriggerSettings?: (\n settings: ACITriggerSettingsParams<StreamChatGenerics>,\n ) => TriggerSettings<StreamChatGenerics>;\n /**\n * Compress image with quality (from 0 to 1, where 1 is best quality).\n * On iOS, values larger than 0.8 don't produce a noticeable quality increase in most images,\n * while a value of 0.8 will reduce the file size by about half or less compared to a value of 1.\n * Image picker defaults to 0.8 for iOS and 1 for Android\n */\n compressImageQuality?: number;\n /**\n * Override file upload request\n *\n * @param file File object - { uri: '', name: '' }\n * @param channel Current channel object\n *\n * @overrideType Function\n */\n doDocUploadRequest?: (\n file: {\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/main/package/src/contexts/messageInputContext/MessageInputContext.tsx)\n */\n Input?: React.ComponentType<\n Omit<MessageInputProps<StreamChatGenerics>, 'Input'> &\n InputButtonsProps<StreamChatGenerics> & {\n getUsers: () => UserResponse<StreamChatGenerics>[];\n }\n >;\n /**\n * Custom UI component to override buttons on left side of input box\n * Defaults to [InputButtons](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageInput/InputButtons.tsx),\n * which contain following components/buttons:\n *\n * - AttachButton\n * - CommandsButtom\n *\n * You have access to following prop functions:\n *\n * - closeAttachmentPicker\n * - openAttachmentPicker\n * - openCommandsPicker\n * - toggleAttachmentPicker\n */\n InputButtons?: React.ComponentType<InputButtonsProps<StreamChatGenerics>>;\n maxMessageLength?: number;\n mentionAllAppUsersEnabled?: boolean;\n /** Object containing filters/sort/options overrides for an @mention user query */\n mentionAllAppUsersQuery?: MentionAllAppUsersQuery<StreamChatGenerics>;\n /**\n * Callback that is called when the text input's text changes. Changed text is passed as a single string argument to the callback handler.\n */\n onChangeText?: (newText: string) => void;\n SendMessageDisallowedIndicator?: React.ComponentType;\n /**\n * ref for input setter function\n *\n * @param ref [Ref object](https://reactjs.org/docs/refs-and-the-dom.html) for underling `TextInput` component.\n *\n * @overrideType Function\n */\n setInputRef?: (ref: TextInput | null) => void;\n};\n\nexport type MessageInputContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = LocalMessageInputContext<StreamChatGenerics> &\n Omit<InputMessageInputContextValue<StreamChatGenerics>, 'sendMessage'>;\n\nexport const MessageInputContext = React.createContext(\n DEFAULT_BASE_CONTEXT_VALUE as MessageInputContextValue,\n);\n\nexport const MessageInputProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n children,\n value,\n}: PropsWithChildren<{\n value: InputMessageInputContextValue<StreamChatGenerics>;\n}>) => {\n const { closePicker, openPicker, selectedPicker, setSelectedPicker } =\n useAttachmentPickerContext();\n const { appSettings, client } = useChatContext<StreamChatGenerics>();\n\n const getFileUploadConfig = () => {\n const fileConfig = appSettings?.app?.file_upload_config;\n if (fileConfig !== null || fileConfig !== undefined) {\n return fileConfig;\n } else {\n return {};\n }\n };\n\n const blockedFileExtensionTypes = getFileUploadConfig()?.blocked_file_extensions;\n const blockedFileMimeTypes = getFileUploadConfig()?.blocked_mime_types;\n\n const getImageUploadConfig = () => {\n const imageConfig = appSettings?.app?.image_upload_config;\n if (imageConfig !== null || imageConfig !== undefined) {\n return imageConfig;\n }\n return {};\n };\n\n const blockedImageExtensionTypes = getImageUploadConfig()?.blocked_file_extensions;\n const blockedImageMimeTypes = getImageUploadConfig()?.blocked_mime_types;\n\n const channelCapabities = useOwnCapabilitiesContext();\n\n const { channel, giphyEnabled } = useChannelContext<StreamChatGenerics>();\n const { thread } = useThreadContext<StreamChatGenerics>();\n const { t } = useTranslationContext();\n const inputBoxRef = useRef<TextInput | null>(null);\n const sending = useRef(false);\n\n const [asyncIds, setAsyncIds] = useState<string[]>([]);\n const [asyncUploads, setAsyncUploads] = useState<{\n [key: string]: {\n state: string;\n url: string;\n };\n }>({});\n const [giphyActive, setGiphyActive] = useState(false);\n const [sendThreadMessageInChannel, setSendThreadMessageInChannel] = useState(false);\n const { editing, hasFilePicker, hasImagePicker, initialValue } = value;\n const {\n fileUploads,\n imageUploads,\n mentionedUsers,\n numberOfUploads,\n setFileUploads,\n setImageUploads,\n setMentionedUsers,\n setNumberOfUploads,\n setShowMoreOptions,\n setText,\n showMoreOptions,\n text,\n } = useMessageDetailsForState<StreamChatGenerics>(editing, initialValue);\n const { endsAt: cooldownEndsAt, start: startCooldown } = useCooldown<StreamChatGenerics>();\n\n const threadId = thread?.id;\n useEffect(() => {\n setSendThreadMessageInChannel(false);\n }, [threadId]);\n\n const appendText = (newText: string) => {\n setText((prevText) => `${prevText}${newText}`);\n };\n\n /** Checks if the message is valid or not. Accordingly we can enable/disable send button */\n const isValidMessage = () => {\n if (text && text.trim()) {\n return true;\n }\n\n 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) {\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) {\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 Alert.alert('Maximum number of files reached');\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 // To get the mime type of the image from the file name and send it as an response for an image\n const mime_type: string | boolean = lookup(image.file.filename as string);\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 mime_type: mime_type ? mime_type : undefined,\n original_height: image.height,\n original_width: image.width,\n type: 'image',\n });\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 const mime_type: string | boolean = lookup(file.file.name as string);\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 mime_type: mime_type ? mime_type : undefined,\n type: 'image',\n });\n } else if (file.file.type?.startsWith('audio/')) {\n attachments.push({\n asset_url: file.url,\n duration: file.file.duration,\n file_size: file.file.size,\n mime_type: file.file.type,\n title: file.file.name,\n type: 'audio',\n });\n } else if (file.file.type?.startsWith('video/')) {\n attachments.push({\n asset_url: file.url,\n duration: file.file.duration,\n file_size: file.file.size,\n mime_type: file.file.type,\n thumb_url: file.thumb_url,\n title: file.file.name,\n type: 'video',\n });\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 });\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 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> = { thumb_url: response.thumb_url, url: response.file };\n setFileUploads(getUploadSetStateAction(id, FileState.UPLOADED, extraData));\n } catch (error: unknown) {\n handleFileOrImageUploadError(error, false, id);\n }\n };\n\n const uploadImage = async ({ newImage }: { newImage: ImageUpload }) => {\n const { file, id } = newImage || {};\n\n if (!file) {\n return;\n }\n\n let response = {} as SendFileAPIResponse;\n\n try {\n /**\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, file.filename, contentType).then((res) => {\n if (asyncIds.includes(id)) {\n // Evaluates to true if user hit send before image successfully uploaded\n setAsyncUploads((prevAsyncUploads) => {\n prevAsyncUploads[id] = {\n ...prevAsyncUploads[id],\n state: FileState.UPLOADED,\n url: res.file,\n };\n return prevAsyncUploads;\n });\n } else {\n const newImageUploads = getUploadSetStateAction<ImageUpload>(id, FileState.UPLOADED, {\n url: res.file,\n });\n setImageUploads(newImageUploads);\n }\n });\n } else {\n response = await channel.sendImage(compressedUri, file.filename, contentType);\n }\n }\n\n if (Object.keys(response).length) {\n const newImageUploads = getUploadSetStateAction<ImageUpload>(id, FileState.UPLOADED, {\n height: file.height,\n url: response.file,\n width: file.width,\n });\n setImageUploads(newImageUploads);\n }\n } catch (error) {\n handleFileOrImageUploadError(error, true, id);\n }\n };\n\n const uploadNewFile = async (file: {\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: 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>() => {\n const contextValue = useContext(\n MessageInputContext,\n ) as unknown as MessageInputContextValue<StreamChatGenerics>;\n\n if (contextValue === DEFAULT_BASE_CONTEXT_VALUE && !isTestEnvironment()) {\n throw new Error(\n `The useMessageInputContext hook was called outside of the MessageInputContext provider. Make sure you have configured Channel component correctly - https://getstream.io/chat/docs/sdk/reactnative/basics/hello_stream_chat/#channel`,\n );\n }\n\n return contextValue;\n};\n\n/**\n * Typescript currently does not support partial inference so if MessageInputContext\n * typing is desired while using the HOC withMessageInputContext the Props for the\n * wrapped component must be provided as the first generic.\n */\nexport const withMessageInputContext = <\n P extends UnknownType,\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n Component: React.ComponentType<P>,\n): React.FC<Omit<P, keyof MessageInputContextValue<StreamChatGenerics>>> => {\n const WithMessageInputContextComponent = (\n props: Omit<P, keyof MessageInputContextValue<StreamChatGenerics>>,\n ) => {\n const messageInputContext = useMessageInputContext<StreamChatGenerics>();\n\n return <Component {...(props as P)} {...messageInputContext} />;\n };\n WithMessageInputContextComponent.displayName = `WithMessageInputContext${getDisplayName(\n Component,\n )}`;\n return WithMessageInputContextComponent;\n};\n"]}
|
|
@@ -548,7 +548,11 @@ var defaultTheme = {
|
|
|
548
548
|
imageAttachment: {},
|
|
549
549
|
markdownStyles: {},
|
|
550
550
|
messageContainer: {},
|
|
551
|
-
textContainer: {}
|
|
551
|
+
textContainer: {},
|
|
552
|
+
videoThumbnail: {
|
|
553
|
+
container: {},
|
|
554
|
+
image: {}
|
|
555
|
+
}
|
|
552
556
|
},
|
|
553
557
|
screenPadding: 8,
|
|
554
558
|
spinner: {},
|
|
@@ -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","durationText","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","videoControl","durationTextStyle","roundedView","videoContainer","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","playButtonStyle","playIcon","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","videoThumbnail","messageActions","actionContainer","padding","reactions","avatarContainer","avatarName","flatListContainer","reactionsList","reaction","reply","fileAttachmentContainer","imageAttachment","markdownStyles","messageContainer","screenPadding","spinner","thread","newThread","typingIndicator"],"mappings":";;;;;;;;;AAIA;;AAEO,IAAMA,wBAAwB,GAAG,EAAjC;;AAEA,IAAMC,MAAM,GAAG;AACpBC,EAAAA,WAAW,EAAE,SADO;AAEpBC,EAAAA,YAAY,EAAE,SAFM;AAGpBC,EAAAA,UAAU,EAAE,SAHQ;AAIpBC,EAAAA,eAAe,EAAE,SAJG;AAKpBC,EAAAA,iBAAiB,EAAE,SALC;AAMpBC,EAAAA,KAAK,EAAE,SANa;AAOpBC,EAAAA,UAAU,EAAE,SAPQ;AAQpBC,EAAAA,MAAM,EAAE,WARY;AASpBC,EAAAA,IAAI,EAAE,SATc;AAUpBC,EAAAA,SAAS,EAAE,SAVS;AAWpBC,EAAAA,cAAc,EAAE,SAXI;AAYpBC,EAAAA,YAAY,EAAE,SAZM;AAapBC,EAAAA,eAAe,EAAE,SAbG;AAcpBC,EAAAA,oBAAoB,EAAE,WAdF;AAepBC,EAAAA,YAAY,EAAE,WAfM;AAgBpBC,EAAAA,OAAO,EAAE,WAhBW;AAiBpBC,EAAAA,WAAW,EAAE,WAjBO;AAkBpBC,EAAAA,yBAAyB,EAAE,SAlBP;AAmBpBC,EAAAA,WAAW,EAAE,aAnBO;AAoBpBC,EAAAA,KAAK,EAAE,SApBa;AAqBpBC,EAAAA,WAAW,EAAE,SArBO;AAsBpBC,EAAAA,UAAU,EAAE;AAtBQ,CAAf;;AA6hBA,IAAMC,YAAmB,GAAG;AACjCC,EAAAA,gBAAgB,EAAE;AAChBC,IAAAA,2BAA2B,EAAE,EADb;AAEhBC,IAAAA,YAAY,EAAE,EAFE;AAGhBC,IAAAA,eAAe,EAAE,EAHD;AAIhBC,IAAAA,cAAc,EAAE,EAJA;AAKhBC,IAAAA,SAAS,EAAE,EALK;AAMhBC,IAAAA,KAAK,EAAE,EANS;AAOhBC,IAAAA,YAAY,EAAE,EAPE;AAQhBC,IAAAA,6BAA6B,EAAE;AAC7BC,MAAAA,KAAK,EAAE;AADsB;AARf,GADe;AAajCC,EAAAA,sBAAsB,EAAE;AACtBC,IAAAA,SAAS,EAAE,EADW;AAEtBC,IAAAA,IAAI,EAAE;AAFgB,GAbS;AAiBjCC,EAAAA,MAAM,EAAE;AACNC,IAAAA,gBAAgB,EAAE,EADZ;AAENH,IAAAA,SAAS,EAAE,EAFL;AAGNL,IAAAA,KAAK,EAAE;AACLS,MAAAA,YAAY,EAAE,EADT;AAELC,MAAAA,MAAM,EAAE,EAFH;AAGLC,MAAAA,KAAK,EAAE;AAHF,KAHD;AAQNC,IAAAA,iBAAiB,EAAE;AACjBC,MAAAA,EAAE,EAAE,CADa;AAEjBC,MAAAA,EAAE,EAAE,CAFa;AAGjBC,MAAAA,CAAC,EAAE,CAHc;AAIjBC,MAAAA,WAAW,EAAE;AAJI,KARb;AAcNC,IAAAA,0BAA0B,EAAE;AAdtB,GAjByB;AAiCjCC,EAAAA,OAAO,EAAE;AACPC,IAAAA,aAAa,EAAE;AADR,GAjCwB;AAoCjCC,EAAAA,iCAAiC,EAAE;AACjCf,IAAAA,SAAS,EAAE;AADsB,GApCF;AAuCjCgB,EAAAA,+BAA+B,EAAE;AAC/BhB,IAAAA,SAAS,EAAE,EADoB;AAE/BN,IAAAA,SAAS,EAAE;AAFoB,GAvCA;AA2CjCuB,EAAAA,2BAA2B,EAAE;AAC3BjB,IAAAA,SAAS,EAAE;AADgB,GA3CI;AA8CjCkB,EAAAA,oBAAoB,EAAE;AACpBC,IAAAA,QAAQ,EAAE,EADU;AAEpBC,IAAAA,eAAe,EAAE;AAFG,GA9CW;AAkDjCC,EAAAA,mBAAmB,EAAE;AACnBC,IAAAA,aAAa,EAAE,IADI;AAEnBC,IAAAA,UAAU,EAAE,EAFO;AAGnBvB,IAAAA,SAAS,EAAE,EAHQ;AAInBwB,IAAAA,aAAa,EAAE;AACbC,MAAAA,WAAW,EAAE;AADA,KAJI;AAOnBC,IAAAA,YAAY,EAAE;AACZD,MAAAA,WAAW,EAAE;AADD,KAPK;AAUnBpB,IAAAA,MAAM,EAAE;AAVW,GAlDY;AA8DjCsB,EAAAA,cAAc,EAAE;AACdC,IAAAA,YAAY,EAAE;AACZvB,MAAAA,MAAM,EAAEzC,wBADI;AAEZ0C,MAAAA,KAAK,EAAE1C;AAFK,KADA;AAKdiE,IAAAA,SAAS,EAAE;AACTxB,MAAAA,MAAM,EAAEzC,wBADC;AAET0C,MAAAA,KAAK,EAAE1C;AAFE,KALG;AASdoC,IAAAA,SAAS,EAAE,EATG;AAUd8B,IAAAA,gBAAgB,EAAE,EAVJ;AAWdC,IAAAA,IAAI,EAAE,EAXQ;AAYdC,IAAAA,OAAO,EAAE;AACPC,MAAAA,UAAU,EAAE;AADL,KAZK;AAedC,IAAAA,WAAW,EAAE;AACX7B,MAAAA,MAAM,EAAE,EADG;AAEX8B,MAAAA,SAAS,EAAE,EAFA;AAGX7B,MAAAA,KAAK,EAAE;AAHI,KAfC;AAoBd8B,IAAAA,GAAG,EAAE,EApBS;AAqBdC,IAAAA,KAAK,EAAE,EArBO;AAsBdC,IAAAA,eAAe,EAAE,EAtBH;AAuBdC,IAAAA,UAAU,EAAE;AAvBE,GA9DiB;AAuFjCC,EAAAA,MAAM,gCACD3E,MADC,CAvF2B;AA0FjC4E,EAAAA,UAAU,EAAE;AACVzC,IAAAA,SAAS,EAAE,EADD;AAEV0C,IAAAA,IAAI,EAAE;AAFI,GA1FqB;AA8FjCC,EAAAA,mBAAmB,EAAE;AACnBC,IAAAA,gBAAgB,EAAE,EADC;AAEnBC,IAAAA,cAAc,EAAE,EAFG;AAGnBC,IAAAA,YAAY,EAAE;AAHK,GA9FY;AAmGjCC,EAAAA,WAAW,EAAE;AACX/C,IAAAA,SAAS,EAAE,EADA;AAEXL,IAAAA,KAAK,EAAE;AACLqD,MAAAA,UAAU,EAAE;AADP;AAFI,GAnGoB;AAyGjCC,EAAAA,SAAS,EAAE;AACThD,IAAAA,IAAI,EAAE,EADG;AAETiD,IAAAA,SAAS,EAAE,EAFF;AAGTC,IAAAA,WAAW,EAAE;AAHJ,GAzGsB;AA8GjCC,EAAAA,UAAU,EAAE;AACVpD,IAAAA,SAAS,EAAE,EADD;AAEVL,IAAAA,KAAK,EAAE;AAFG,GA9GqB;AAkHjC0D,EAAAA,YAAY,EAAE;AACZC,IAAAA,MAAM,EAAE;AACNC,MAAAA,eAAe,EAAE,EADX;AAENvD,MAAAA,SAAS,EAAE,EAFL;AAGNwD,MAAAA,cAAc,EAAE,EAHV;AAINC,MAAAA,cAAc,EAAE,EAJV;AAKNC,MAAAA,aAAa,EAAE,EALT;AAMNC,MAAAA,cAAc,EAAE;AANV,KADI;AASZC,IAAAA,IAAI,EAAE;AACJ9B,MAAAA,gBAAgB,EAAE,EADd;AAEJ+B,MAAAA,UAAU,EAAE,EAFR;AAGJC,MAAAA,iBAAiB,EAAE,EAHf;AAIJC,MAAAA,SAAS,EAAE,EAJP;AAKJC,MAAAA,MAAM,EAAE,EALJ;AAMJC,MAAAA,UAAU,EAAE,EANR;AAOJpF,MAAAA,OAAO,EAAE;AAPL,KATM;AAkBZqF,IAAAA,MAAM,EAAE;AACNX,MAAAA,eAAe,EAAE,EADX;AAENvD,MAAAA,SAAS,EAAE,EAFL;AAGNmE,MAAAA,QAAQ,EAAE,EAHJ;AAINV,MAAAA,cAAc,EAAE,EAJV;AAKNC,MAAAA,aAAa,EAAE,EALT;AAMNC,MAAAA,cAAc,EAAE,EANV;AAONS,MAAAA,YAAY,EAAE;AAPR,KAlBI;AA2BZC,IAAAA,YAAY,EAAE;AACZC,MAAAA,iBAAiB,EAAE,EADP;AAEZC,MAAAA,WAAW,EAAE,EAFD;AAGZC,MAAAA,cAAc,EAAE;AAHJ;AA3BF,GAlHmB;AAmJjCC,EAAAA,mBAAmB,EAAE;AACnBzE,IAAAA,SAAS,EAAE,EADQ;AAEnB0C,IAAAA,IAAI,EAAE;AAFa,GAnJY;AAuJjCgC,EAAAA,WAAW,EAAE;AACX1E,IAAAA,SAAS,EAAE,EADA;AAEX2E,IAAAA,UAAU,EAAE,EAFD;AAGXC,IAAAA,OAAO,EAAE;AAHE,GAvJoB;AA4JjCC,EAAAA,qBAAqB,EAAE;AACrB7E,IAAAA,SAAS,EAAE,EADU;AAErBN,IAAAA,SAAS,EAAE,EAFU;AAGrBoF,IAAAA,SAAS,EAAE;AAHU,GA5JU;AAiKjCC,EAAAA,gBAAgB,EAAE;AAChB/E,IAAAA,SAAS,EAAE,EADK;AAEhBgF,IAAAA,WAAW,EAAE;AAFG,GAjKe;AAqKjCC,EAAAA,YAAY,EAAE;AACZC,IAAAA,YAAY,EAAE,EADF;AAEZC,IAAAA,qBAAqB,EAAE,EAFX;AAGZpF,IAAAA,sBAAsB,EAAE,EAHZ;AAIZqF,IAAAA,0BAA0B,EAAE,EAJhB;AAKZC,IAAAA,cAAc,EAAE,EALJ;AAMZC,IAAAA,uBAAuB,EAAE,EANb;AAOZC,IAAAA,iBAAiB,EAAE,EAPP;AAQZvF,IAAAA,SAAS,EAAE,EARC;AASZwF,IAAAA,aAAa,EAAE;AACbxF,MAAAA,SAAS,EAAE,EADE;AAEb0C,MAAAA,IAAI,EAAE;AAFO,KATH;AAaZ+C,IAAAA,mBAAmB,EAAE,EAbT;AAcZC,IAAAA,gBAAgB,EAAE,EAdN;AAeZC,IAAAA,qBAAqB,EAAE,EAfX;AAgBZC,IAAAA,kBAAkB,EAAE;AAClBF,MAAAA,gBAAgB,EAAE,EADA;AAElBC,MAAAA,qBAAqB,EAAE;AAFL,KAhBR;AAoBZE,IAAAA,iBAAiB,EAAE;AACjBC,MAAAA,OAAO,EAAE,EADQ;AAEjBC,MAAAA,aAAa,EAAE,EAFE;AAGjBC,MAAAA,oBAAoB,EAAE,EAHL;AAIjBC,MAAAA,YAAY,EAAE,EAJG;AAKjBC,MAAAA,YAAY,EAAE,EALG;AAMjBC,MAAAA,iBAAiB,EAAE,EANF;AAOjBhF,MAAAA,QAAQ,EAAE;AAPO,KApBP;AA6BZiF,IAAAA,iBAAiB,EAAE;AACjBC,MAAAA,cAAc,EAAE,EADC;AAEjBC,MAAAA,SAAS,EAAE;AAFM,KA7BP;AAiCZC,IAAAA,kBAAkB,EAAE;AAClBT,MAAAA,OAAO,EAAE,EADS;AAElB3E,MAAAA,QAAQ,EAAE,EAFQ;AAGlBqF,MAAAA,aAAa,EAAE,EAHG;AAIlBC,MAAAA,MAAM,EAAE;AAJU,KAjCR;AAuCZC,IAAAA,QAAQ,EAAE,EAvCE;AAwCZC,IAAAA,iBAAiB,EAAE,EAxCP;AAyCZC,IAAAA,iBAAiB,EAAE,EAzCP;AA0CZC,IAAAA,gBAAgB,EAAE,EA1CN;AA2CZC,IAAAA,cAAc,EAAE,EA3CJ;AA4CZC,IAAAA,UAAU,EAAE,EA5CA;AA6CZC,IAAAA,mBAAmB,EAAE,EA7CT;AA8CZC,IAAAA,8BAA8B,EAAE;AAC9BjH,MAAAA,SAAS,EAAE,EADmB;AAE9B0C,MAAAA,IAAI,EAAE;AAFwB,KA9CpB;AAkDZwE,IAAAA,gCAAgC,EAAE;AAChCpH,MAAAA,KAAK,EAAE,EADyB;AAEhCqH,MAAAA,cAAc,EAAE,EAFgB;AAGhCC,MAAAA,gBAAgB,EAAE,EAHc;AAIhCpH,MAAAA,SAAS,EAAE,EAJqB;AAKhCyD,MAAAA,cAAc,EAAE,EALgB;AAMhCf,MAAAA,IAAI,EAAE;AAN0B,KAlDtB;AA0DZ2E,IAAAA,WAAW,EAAE;AACXC,MAAAA,OAAO,EAAE;AACPC,QAAAA,IAAI,EAAE,EADC;AAEPvH,QAAAA,SAAS,EAAE,EAFJ;AAGPwH,QAAAA,aAAa,EAAE,EAHR;AAIPnF,QAAAA,KAAK,EAAE;AAJA,OADE;AAOXrC,MAAAA,SAAS,EAAE;AACTyH,QAAAA,SAAS,EAAE,eAAG,EAAH;AADF,OAPA;AAUXC,MAAAA,KAAK,EAAE;AACL1H,QAAAA,SAAS,EAAE,EADN;AAEL0C,QAAAA,IAAI,EAAE;AAFD,OAVI;AAcXwB,MAAAA,MAAM,EAAE;AACNlE,QAAAA,SAAS,EAAE,EADL;AAENqC,QAAAA,KAAK,EAAE;AAFD,OAdG;AAkBXsF,MAAAA,IAAI,EAAE,EAlBK;AAmBXC,MAAAA,OAAO,EAAE;AACPC,QAAAA,UAAU,EAAE,EADL;AAEPC,QAAAA,MAAM,EAAE,EAFD;AAGP9H,QAAAA,SAAS,EAAE,EAHJ;AAIP+H,QAAAA,IAAI,EAAE,EAJC;AAKPC,QAAAA,GAAG,EAAE;AALE;AAnBE,KA1DD;AAqFZC,IAAAA,wBAAwB,EAAE;AACxBjI,MAAAA,SAAS,EAAE,EADa;AAExBkI,MAAAA,QAAQ,EAAE;AAFc,KArFd;AAyFZC,IAAAA,uBAAuB,EAAE;AACvBnI,MAAAA,SAAS,EAAE,EADY;AAEvBnB,MAAAA,OAAO,EAAE;AAFc;AAzFb,GArKmB;AAmQjCuJ,EAAAA,WAAW,EAAE;AACXpI,IAAAA,SAAS,EAAE,EADA;AAEX8B,IAAAA,gBAAgB,EAAE,EAFP;AAGXuG,IAAAA,iBAAiB,EAAE,EAHR;AAIXC,IAAAA,qBAAqB,EAAE,EAJZ;AAKXC,IAAAA,qBAAqB,EAAE;AACrBvI,MAAAA,SAAS,EAAE,EADU;AAErB0C,MAAAA,IAAI,EAAE;AAFe,KALZ;AASX8F,IAAAA,aAAa,EAAE,EATJ;AAUXC,IAAAA,aAAa,EAAE;AACbzI,MAAAA,SAAS,EAAE,EADE;AAEbmE,MAAAA,QAAQ,EAAE,EAFG;AAGbuE,MAAAA,IAAI,EAAE,EAHO;AAIbhG,MAAAA,IAAI,EAAE,EAJO;AAKbiG,MAAAA,aAAa,EAAE;AALF,KAVJ;AAiBXC,IAAAA,oBAAoB,EAAE;AACpB5I,MAAAA,SAAS,EAAE,EADS;AAEpB6I,MAAAA,SAAS,EAAE,EAFS;AAGpBC,MAAAA,gCAAgC,EAAE,EAHd;AAIpBC,MAAAA,2BAA2B,EAAE,EAJT;AAKpBC,MAAAA,OAAO,EAAE;AALW,KAjBX;AAwBXC,IAAAA,wBAAwB,EAAE;AAxBf,GAnQoB;AA6RjCC,EAAAA,aAAa,EAAE;AACbC,IAAAA,OAAO,EAAE;AACPC,MAAAA,MAAM,EAAE,EADD;AAEPC,MAAAA,UAAU,EAAE,EAFL;AAGPrJ,MAAAA,SAAS,EAAE;AAHJ,KADI;AAMbsJ,IAAAA,aAAa,EAAE;AACbtJ,MAAAA,SAAS,EAAE,EADE;AAEbuJ,MAAAA,SAAS,EAAE;AACTC,QAAAA,WAAW,EAAE;AADJ,OAFE;AAKbC,MAAAA,UAAU,EAAE;AACVC,QAAAA,UAAU,EAAE;AADF,OALC;AAQbC,MAAAA,MAAM,EAAE;AACNtJ,QAAAA,MAAM,EAAE,EADF;AAENC,QAAAA,KAAK,EAAE;AAFD;AARK,KANF;AAmBbsJ,IAAAA,IAAI,EAAE;AACJC,MAAAA,UAAU,EAAE,EADR;AAEJC,MAAAA,mBAAmB,EAAE,EAFjB;AAGJC,MAAAA,gBAAgB,EAAE,EAHd;AAIJC,MAAAA,yBAAyB,EAAE,EAJvB;AAKJC,MAAAA,cAAc,EAAE,EALZ;AAMJjK,MAAAA,SAAS,EAAE,EANP;AAOJkK,MAAAA,KAAK,EAAE,EAPH;AAQJ5G,MAAAA,MAAM,EAAE;AACN6G,QAAAA,WAAW,EAAE,EADP;AAEN9H,QAAAA,KAAK,EAAE;AACLJ,UAAAA,UAAU,EAAE;AADP;AAFD,OARJ;AAcJmI,MAAAA,KAAK,EAAE;AACLC,QAAAA,eAAe,EAAE,CADZ;AAELC,QAAAA,WAAW,EAAE;AAFR,OAdH;AAkBJC,MAAAA,eAAe,EAAE;AACfjG,QAAAA,iBAAiB,EAAE,EADJ;AAEfC,QAAAA,WAAW,EAAE,EAFE;AAGfC,QAAAA,cAAc,EAAE;AAHD,OAlBb;AAuBJgG,MAAAA,QAAQ,EAAE;AACRnK,QAAAA,MAAM,EAAE,EADA;AAERC,QAAAA,KAAK,EAAE;AAFC;AAvBN,KAnBO;AA+CbN,IAAAA,SAAS,EAAE,EA/CE;AAgDbyK,IAAAA,OAAO,EAAE;AACPzK,MAAAA,SAAS,EAAE;AACT0K,QAAAA,aAAa,EAAE,EADN;AAETC,QAAAA,aAAa,EAAE;AAFN,OADJ;AAKPC,MAAAA,cAAc,EAAE,EALT;AAMPC,MAAAA,gBAAgB,EAAE,EANX;AAOPC,MAAAA,qBAAqB,EAAE,EAPhB;AAQPC,MAAAA,eAAe,EAAE;AACfC,QAAAA,iBAAiB,EAAE;AADJ,OARV;AAWPC,MAAAA,WAAW,EAAE;AACXC,QAAAA,EAAE,EAAE;AACFC,UAAAA,QAAQ,EAAE,EADR;AAEFC,UAAAA,SAAS,EAAE,QAFT;AAGFnJ,UAAAA,UAAU,EAAE;AAHV;AADO,OAXN;AAkBPxC,MAAAA,cAAc,EAAE;AACd4L,QAAAA,YAAY,EAAE,EADA;AAEdC,QAAAA,UAAU,EAAE;AAFE,OAlBT;AAsBPC,MAAAA,SAAS,EAAE;AACTlL,QAAAA,MAAM,EAAE,EADC;AAETC,QAAAA,KAAK,EAAE;AAFE,OAtBJ;AA0BPkL,MAAAA,kBAAkB,EAAE;AAClBC,QAAAA,MAAM,EAAE,CAAC,CADS;AAElBC,QAAAA,QAAQ,EAAE,UAFQ;AAGlBC,QAAAA,KAAK,EAAE,CAAC;AAHU,OA1Bb;AA+BPC,MAAAA,OAAO,EAAE;AACPvL,QAAAA,MAAM,EAAE,EADD;AAEPC,QAAAA,KAAK,EAAE;AAFA,OA/BF;AAmCPuL,MAAAA,QAAQ,EAAE,EAnCH;AAoCPC,MAAAA,WAAW,EAAE;AACXX,QAAAA,QAAQ,EAAE,EADC;AAEXlJ,QAAAA,UAAU,EAAE,KAFD;AAGXoJ,QAAAA,YAAY,EAAE;AAHH,OApCN;AAyCPU,MAAAA,aAAa,EAAE;AACbC,QAAAA,aAAa,EAAE,KADF;AAEbC,QAAAA,SAAS,EAAE;AAFE,OAzCR;AA6CPC,MAAAA,QAAQ,EAAE;AACRf,QAAAA,QAAQ,EAAE;AADF,OA7CH;AAgDPgB,MAAAA,WAAW,EAAE,EAhDN;AAiDPrF,MAAAA,cAAc,EAAE,EAjDT;AAkDP6B,MAAAA,aAAa,EAAE;AACbyD,QAAAA,iBAAiB,EAAE;AAAE1J,UAAAA,IAAI,EAAE;AAAEyI,YAAAA,QAAQ,EAAE;AAAZ;AAAR;AADN,OAlDR;AAqDPnC,MAAAA,OAAO,EAAE;AArDF,KAhDI;AAuGbqD,IAAAA,IAAI,EAAE;AACJrM,MAAAA,SAAS,EAAE,EADP;AAEJsM,MAAAA,OAAO,EAAE,EAFL;AAGJC,MAAAA,QAAQ,EAAE,EAHN;AAIJtM,MAAAA,IAAI,EAAE,EAJF;AAKJoC,MAAAA,KAAK,EAAE;AALH,KAvGO;AA8GbmK,IAAAA,mBAAmB,EAAE;AACnBxM,MAAAA,SAAS,EAAE;AADQ,KA9GR;AAiHbyM,IAAAA,OAAO,EAAE;AACPC,MAAAA,gBAAgB,EAAE,EADX;AAEPC,MAAAA,iBAAiB,EAAE,EAFZ;AAGPC,MAAAA,UAAU,EAAE,GAHL;AAIPC,MAAAA,SAAS,EAAE,GAJJ;AAKPlN,MAAAA,KAAK,EAAE,EALA;AAMPmN,MAAAA,cAAc,EAAE,EANT;AAOPrF,MAAAA,SAAS,EAAE,GAPJ;AAQPsF,MAAAA,QAAQ,EAAE,GARH;AASPC,MAAAA,SAAS,EAAE,GATJ;AAUPC,MAAAA,QAAQ,EAAE,GAVH;AAWPC,MAAAA,mBAAmB,EAAE,EAXd;AAYPC,MAAAA,cAAc,EAAE;AAZT,KAjHI;AA+HbC,IAAAA,KAAK,EAAE;AACLC,MAAAA,eAAe,EAAE,EADZ;AAELC,MAAAA,MAAM,EAAE,EAFH;AAGLtN,MAAAA,SAAS,EAAE,EAHN;AAILoN,MAAAA,KAAK,EAAE,EAJF;AAKL/G,MAAAA,cAAc,EAAE,EALX;AAMLkH,MAAAA,eAAe,EAAE,EANZ;AAOLC,MAAAA,gBAAgB,EAAE,EAPb;AAQLC,MAAAA,SAAS,EAAE,EARN;AASLC,MAAAA,aAAa,EAAE,EATV;AAULxJ,MAAAA,MAAM,EAAE,EAVH;AAWLyJ,MAAAA,kBAAkB,EAAE,EAXf;AAYLC,MAAAA,IAAI,EAAE,EAZD;AAaLC,MAAAA,OAAO,EAAE,EAbJ;AAcLxL,MAAAA,KAAK,EAAE;AAdF,KA/HM;AA+Ib0C,IAAAA,gBAAgB,EAAE;AAChB/E,MAAAA,SAAS,EAAE,EADK;AAEhBuE,MAAAA,WAAW,EAAE;AAFG,KA/IL;AAmJbuJ,IAAAA,YAAY,EAAE;AACZ9N,MAAAA,SAAS,EAAE,EADC;AAEZ+N,MAAAA,KAAK,EAAE;AAFK,KAnJD;AAuJbC,IAAAA,YAAY,EAAE;AACZhO,MAAAA,SAAS,EAAE,EADC;AAEZiO,MAAAA,UAAU,EAAE,EAFA;AAGZC,MAAAA,MAAM,EAAE,CAHI;AAIZC,MAAAA,cAAc,EAAE,EAJJ;AAKZC,MAAAA,wBAAwB,EAAE,EALd;AAMZC,MAAAA,YAAY,EAAE,EANF;AAOZC,MAAAA,UAAU,EAAE;AAPA,KAvJD;AAgKbC,IAAAA,OAAO,EAAE;AACPrO,MAAAA,MAAM,EAAE,EADD;AAEPsO,MAAAA,uBAAuB,EAAE,EAFlB;AAGPC,MAAAA,qBAAqB,EAAE,EAHhB;AAIPzO,MAAAA,SAAS,EAAE,EAJJ;AAKP0O,MAAAA,oBAAoB,EAAE,EALf;AAMPC,MAAAA,SAAS,EAAE,EANJ;AAOPC,MAAAA,kBAAkB,EAAE,EAPb;AAQPC,MAAAA,qBAAqB,EAAE,EARhB;AASPC,MAAAA,UAAU,EAAE;AATL,KAhKI;AA2KbC,IAAAA,MAAM,EAAE;AACNnN,MAAAA,YAAY,EAAE;AACZvB,QAAAA,MAAM,EAAEzC,wBADI;AAEZ0C,QAAAA,KAAK,EAAE1C;AAFK,OADR;AAKNiE,MAAAA,SAAS,EAAE;AACTxB,QAAAA,MAAM,EAAEzC,wBADC;AAET0C,QAAAA,KAAK,EAAE1C;AAFE,OALL;AASNoR,MAAAA,WAAW,EAAE,EATP;AAUNC,MAAAA,eAAe,EAAE,EAVX;AAWNC,MAAAA,QAAQ,EAAE;AACR7O,QAAAA,MAAM,EAAEzC,wBADA;AAER0C,QAAAA,KAAK,EAAE1C;AAFC;AAXJ,KA3KK;AA2LbuR,IAAAA,uBAAuB,EAAE,EA3LZ;AA4LbC,IAAAA,cAAc,EAAE;AACdpP,MAAAA,SAAS,EAAE,EADG;AAEduE,MAAAA,WAAW,EAAE;AAFC;AA5LH,GA7RkB;AA8djC1F,EAAAA,OAAO,EAAE;AACPmB,IAAAA,SAAS,EAAE,EADJ;AAEPqP,IAAAA,cAAc,EAAE;AACdC,MAAAA,eAAe,EAAE,EADH;AAEdrP,MAAAA,IAAI,EAAE,EAFQ;AAGdoC,MAAAA,KAAK,EAAE;AAHO,KAFT;AAOPkN,IAAAA,OAAO,EAAE,CAPF;AAQPC,IAAAA,SAAS,EAAE;AACTC,MAAAA,eAAe,EAAE,EADR;AAETC,MAAAA,UAAU,EAAE,EAFH;AAGT7H,MAAAA,UAAU,EAAE,EAHH;AAIT7H,MAAAA,SAAS,EAAE,EAJF;AAKT2P,MAAAA,iBAAiB,EAAE,EALV;AAMTzB,MAAAA,MAAM,EAAE,CANC;AAOTC,MAAAA,cAAc,EAAE,EAPP;AAQTC,MAAAA,wBAAwB,EAAE,EARjB;AAST/L,MAAAA,KAAK,EAAE;AATE,KARJ;AAmBPuN,IAAAA,aAAa,EAAE;AACb1B,MAAAA,MAAM,EAAE,GADK;AAEb2B,MAAAA,QAAQ,EAAE,EAFG;AAGb7B,MAAAA,YAAY,EAAE,EAHD;AAIbK,MAAAA,YAAY,EAAE;AAJD;AAnBR,GA9dwB;AAwfjCyB,EAAAA,KAAK,EAAE;AACL9P,IAAAA,SAAS,EAAE,EADN;AAEL+P,IAAAA,uBAAuB,EAAE,EAFpB;AAGLC,IAAAA,eAAe,EAAE,EAHZ;AAILC,IAAAA,cAAc,EAAE,EAJX;AAKLC,IAAAA,gBAAgB,EAAE,EALb;AAMLvH,IAAAA,aAAa,EAAE;AANV,GAxf0B;AAggBjCwH,EAAAA,aAAa,EAAE,CAhgBkB;AAigBjCC,EAAAA,OAAO,EAAE,EAjgBwB;AAkgBjCC,EAAAA,MAAM,EAAE;AACNC,IAAAA,SAAS,EAAE;AACT5N,MAAAA,IAAI,EAAE;AADG;AADL,GAlgByB;AAugBjC6N,EAAAA,eAAe,EAAE;AACfvQ,IAAAA,SAAS,EAAE,EADI;AAEf0C,IAAAA,IAAI,EAAE;AACJyI,MAAAA,QAAQ,EAAE;AADN;AAFS;AAvgBgB,CAA5B","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 durationText: TextStyle;\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 videoControl: {\n durationTextStyle: TextStyle;\n roundedView: ViewStyle;\n videoContainer: ViewStyle;\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 playButtonStyle: {\n durationTextStyle: TextStyle;\n roundedView: ViewStyle;\n videoContainer: ViewStyle;\n };\n playIcon: IconProps;\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/main/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 loadingIndicator: {\n container: ViewStyle;\n roundedView: ViewStyle;\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 videoThumbnail: {\n container: ViewStyle;\n roundedView: ViewStyle;\n };\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 durationText: {},\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 videoControl: {\n durationTextStyle: {},\n roundedView: {},\n videoContainer: {},\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 playButtonStyle: {\n durationTextStyle: {},\n roundedView: {},\n videoContainer: {},\n },\n playIcon: {\n height: 24,\n width: 24,\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 loadingIndicator: {\n container: {},\n roundedView: {},\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 videoThumbnail: {\n container: {},\n roundedView: {},\n },\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","durationText","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","videoControl","durationTextStyle","roundedView","videoContainer","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","playButtonStyle","playIcon","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","videoThumbnail","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 durationText: TextStyle;\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 videoControl: {\n durationTextStyle: TextStyle;\n roundedView: ViewStyle;\n videoContainer: ViewStyle;\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 playButtonStyle: {\n durationTextStyle: TextStyle;\n roundedView: ViewStyle;\n videoContainer: ViewStyle;\n };\n playIcon: IconProps;\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/main/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 loadingIndicator: {\n container: ViewStyle;\n roundedView: ViewStyle;\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 videoThumbnail: {\n container: ViewStyle;\n roundedView: ViewStyle;\n };\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 videoThumbnail: {\n container: ViewStyle;\n image: ImageStyle;\n };\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 durationText: {},\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 videoControl: {\n durationTextStyle: {},\n roundedView: {},\n videoContainer: {},\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 playButtonStyle: {\n durationTextStyle: {},\n roundedView: {},\n videoContainer: {},\n },\n playIcon: {\n height: 24,\n width: 24,\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 loadingIndicator: {\n container: {},\n roundedView: {},\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 videoThumbnail: {\n container: {},\n roundedView: {},\n },\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 videoThumbnail: {\n container: {},\n image: {},\n },\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"]}
|