stream-chat-react-native-core 4.7.0-beta.6 → 4.7.1-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/Attachment/Card.js +61 -21
- package/lib/commonjs/components/Attachment/Card.js.map +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
- package/lib/commonjs/components/MessageInput/SendMessageDisallowedIndicator.js +2 -2
- package/lib/commonjs/components/MessageInput/SendMessageDisallowedIndicator.js.map +1 -1
- package/lib/commonjs/components/Reply/Reply.js +12 -12
- package/lib/commonjs/components/Reply/Reply.js.map +1 -1
- package/lib/commonjs/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +2 -2
- package/lib/commonjs/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js.map +1 -1
- package/lib/commonjs/contexts/attachmentPickerContext/AttachmentPickerContext.js +14 -4
- package/lib/commonjs/contexts/attachmentPickerContext/AttachmentPickerContext.js.map +1 -1
- package/lib/commonjs/contexts/channelContext/ChannelContext.js +14 -4
- package/lib/commonjs/contexts/channelContext/ChannelContext.js.map +1 -1
- package/lib/commonjs/contexts/channelsContext/ChannelsContext.js +14 -4
- package/lib/commonjs/contexts/channelsContext/ChannelsContext.js.map +1 -1
- package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js +15 -9
- package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -1
- package/lib/commonjs/contexts/chatContext/ChatContext.js +14 -4
- package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
- package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js +14 -4
- package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
- package/lib/commonjs/contexts/keyboardContext/KeyboardContext.js +2 -2
- package/lib/commonjs/contexts/keyboardContext/KeyboardContext.js.map +1 -1
- package/lib/commonjs/contexts/messageContext/MessageContext.js +14 -4
- package/lib/commonjs/contexts/messageContext/MessageContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +16 -6
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js +14 -4
- package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
- package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.test.js +4 -4
- package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.test.js.map +1 -1
- package/lib/commonjs/contexts/messagesContext/MessagesContext.js +14 -4
- package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/commonjs/contexts/overlayContext/OverlayContext.js +13 -3
- package/lib/commonjs/contexts/overlayContext/OverlayContext.js.map +1 -1
- package/lib/commonjs/contexts/overlayContext/OverlayProvider.js +12 -12
- package/lib/commonjs/contexts/overlayContext/OverlayProvider.js.map +1 -1
- package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +13 -3
- package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js.map +1 -1
- package/lib/commonjs/contexts/paginatedMessageListContext/PaginatedMessageListContext.js +14 -4
- package/lib/commonjs/contexts/paginatedMessageListContext/PaginatedMessageListContext.js.map +1 -1
- package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js +14 -4
- package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
- package/lib/commonjs/contexts/themeContext/ThemeContext.js +13 -7
- package/lib/commonjs/contexts/themeContext/ThemeContext.js.map +1 -1
- package/lib/commonjs/contexts/themeContext/utils/theme.js +9 -0
- package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/commonjs/contexts/threadContext/ThreadContext.js +14 -4
- package/lib/commonjs/contexts/threadContext/ThreadContext.js.map +1 -1
- package/lib/commonjs/contexts/translationContext/TranslationContext.js +15 -6
- package/lib/commonjs/contexts/translationContext/TranslationContext.js.map +1 -1
- package/lib/commonjs/contexts/typingContext/TypingContext.js +14 -4
- package/lib/commonjs/contexts/typingContext/TypingContext.js.map +1 -1
- package/lib/commonjs/contexts/utils/defaultBaseContextValue.js +7 -0
- package/lib/commonjs/contexts/utils/defaultBaseContextValue.js.map +1 -0
- package/lib/commonjs/contexts/utils/isTestEnvironment.js +11 -0
- package/lib/commonjs/contexts/utils/isTestEnvironment.js.map +1 -0
- package/lib/commonjs/mock-builders/mock.js +30 -5
- package/lib/commonjs/mock-builders/mock.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/Card.js +61 -21
- package/lib/module/components/Attachment/Card.js.map +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
- package/lib/module/components/MessageInput/SendMessageDisallowedIndicator.js +2 -2
- package/lib/module/components/MessageInput/SendMessageDisallowedIndicator.js.map +1 -1
- package/lib/module/components/Reply/Reply.js +12 -12
- package/lib/module/components/Reply/Reply.js.map +1 -1
- package/lib/module/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +2 -2
- package/lib/module/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js.map +1 -1
- package/lib/module/contexts/attachmentPickerContext/AttachmentPickerContext.js +14 -4
- package/lib/module/contexts/attachmentPickerContext/AttachmentPickerContext.js.map +1 -1
- package/lib/module/contexts/channelContext/ChannelContext.js +14 -4
- package/lib/module/contexts/channelContext/ChannelContext.js.map +1 -1
- package/lib/module/contexts/channelsContext/ChannelsContext.js +14 -4
- package/lib/module/contexts/channelsContext/ChannelsContext.js.map +1 -1
- package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js +15 -9
- package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -1
- package/lib/module/contexts/chatContext/ChatContext.js +14 -4
- package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
- package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js +14 -4
- package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
- package/lib/module/contexts/keyboardContext/KeyboardContext.js +2 -2
- package/lib/module/contexts/keyboardContext/KeyboardContext.js.map +1 -1
- package/lib/module/contexts/messageContext/MessageContext.js +14 -4
- package/lib/module/contexts/messageContext/MessageContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js +16 -6
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js +14 -4
- package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
- package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.test.js +4 -4
- package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.test.js.map +1 -1
- package/lib/module/contexts/messagesContext/MessagesContext.js +14 -4
- package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/module/contexts/overlayContext/OverlayContext.js +13 -3
- package/lib/module/contexts/overlayContext/OverlayContext.js.map +1 -1
- package/lib/module/contexts/overlayContext/OverlayProvider.js +12 -12
- package/lib/module/contexts/overlayContext/OverlayProvider.js.map +1 -1
- package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +13 -3
- package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js.map +1 -1
- package/lib/module/contexts/paginatedMessageListContext/PaginatedMessageListContext.js +14 -4
- package/lib/module/contexts/paginatedMessageListContext/PaginatedMessageListContext.js.map +1 -1
- package/lib/module/contexts/suggestionsContext/SuggestionsContext.js +14 -4
- package/lib/module/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
- package/lib/module/contexts/themeContext/ThemeContext.js +13 -7
- package/lib/module/contexts/themeContext/ThemeContext.js.map +1 -1
- package/lib/module/contexts/themeContext/utils/theme.js +9 -0
- package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/module/contexts/threadContext/ThreadContext.js +14 -4
- package/lib/module/contexts/threadContext/ThreadContext.js.map +1 -1
- package/lib/module/contexts/translationContext/TranslationContext.js +15 -6
- package/lib/module/contexts/translationContext/TranslationContext.js.map +1 -1
- package/lib/module/contexts/typingContext/TypingContext.js +14 -4
- package/lib/module/contexts/typingContext/TypingContext.js.map +1 -1
- package/lib/module/contexts/utils/defaultBaseContextValue.js +7 -0
- package/lib/module/contexts/utils/defaultBaseContextValue.js.map +1 -0
- package/lib/module/contexts/utils/isTestEnvironment.js +11 -0
- package/lib/module/contexts/utils/isTestEnvironment.js.map +1 -0
- package/lib/module/mock-builders/mock.js +30 -5
- package/lib/module/mock-builders/mock.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/contexts/__tests__/index.test.d.ts +1 -0
- package/lib/typescript/contexts/keyboardContext/KeyboardContext.d.ts +6 -2
- package/lib/typescript/contexts/themeContext/ThemeContext.d.ts +5 -2
- package/lib/typescript/contexts/themeContext/utils/theme.d.ts +6 -0
- package/lib/typescript/contexts/utils/defaultBaseContextValue.d.ts +1 -0
- package/lib/typescript/contexts/utils/isTestEnvironment.d.ts +1 -0
- package/lib/typescript/mock-builders/mock.d.ts +2 -2
- package/package.json +1 -1
- package/src/components/Attachment/Card.tsx +29 -6
- package/src/components/Attachment/__tests__/Attachment.test.js +0 -14
- package/src/components/Attachment/__tests__/Giphy.test.js +9 -5
- package/src/components/AutoCompleteInput/AutoCompleteSuggestionList.tsx +1 -0
- package/src/components/ImageGallery/components/__tests__/ImageGalleryHeader.test.tsx +5 -3
- package/src/components/MessageInput/SendMessageDisallowedIndicator.tsx +1 -0
- package/src/components/MessageInput/__tests__/FileUploadPreview.test.js +1 -1
- package/src/components/Reply/Reply.tsx +6 -3
- package/src/contexts/__tests__/index.test.tsx +103 -0
- package/src/contexts/activeChannelsRefContext/ActiveChannelsRefContext.tsx +1 -0
- package/src/contexts/attachmentPickerContext/AttachmentPickerContext.tsx +18 -4
- package/src/contexts/channelContext/ChannelContext.tsx +18 -2
- package/src/contexts/channelsContext/ChannelsContext.tsx +18 -2
- package/src/contexts/channelsStateContext/ChannelsStateContext.tsx +19 -10
- package/src/contexts/chatContext/ChatContext.tsx +15 -2
- package/src/contexts/imageGalleryContext/ImageGalleryContext.tsx +18 -3
- package/src/contexts/keyboardContext/KeyboardContext.tsx +2 -1
- package/src/contexts/messageContext/MessageContext.tsx +19 -2
- package/src/contexts/messageInputContext/MessageInputContext.tsx +22 -4
- package/src/contexts/messageOverlayContext/MessageOverlayContext.tsx +19 -3
- package/src/contexts/messageOverlayContext/hooks/useResettableState.test.tsx +1 -0
- package/src/contexts/messagesContext/MessagesContext.tsx +19 -2
- package/src/contexts/overlayContext/OverlayContext.tsx +17 -2
- package/src/contexts/overlayContext/OverlayProvider.tsx +1 -0
- package/src/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.tsx +18 -3
- package/src/contexts/paginatedMessageListContext/PaginatedMessageListContext.tsx +15 -3
- package/src/contexts/suggestionsContext/SuggestionsContext.tsx +19 -2
- package/src/contexts/suggestionsContext/__tests__/Suggestions.test.js +1 -0
- package/src/contexts/themeContext/ThemeContext.tsx +19 -5
- package/src/contexts/themeContext/utils/theme.ts +15 -0
- package/src/contexts/threadContext/ThreadContext.tsx +16 -2
- package/src/contexts/translationContext/TranslationContext.tsx +18 -4
- package/src/contexts/typingContext/TypingContext.tsx +17 -2
- package/src/contexts/utils/defaultBaseContextValue.ts +1 -0
- package/src/contexts/utils/isTestEnvironment.ts +1 -0
- package/src/mock-builders/mock.js +16 -3
- package/src/version.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MessagesContext.tsx"],"names":["MessagesContext","React","createContext","MessagesProvider","children","value","useMessagesContext","withMessagesContext","Component","WithMessagesContextComponent","props","messagesContext","displayName"],"mappings":";;;;;;;;;;;AAAA;;AAmDA;;;;;;;;;AA6ZO,IAAMA,eAAe,GAAGC,kBAAMC,aAAN,CAAoB,EAApB,CAAxB;;;;AAEA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB;AAAA,MAG9BC,QAH8B,QAG9BA,QAH8B;AAAA,MAI9BC,KAJ8B,QAI9BA,KAJ8B;AAAA,SAQ9B,gCAAC,eAAD,CAAiB,QAAjB;AAA0B,IAAA,KAAK,EAAEA,KAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGD,QADH,CAR8B;AAAA,CAAzB;;;;AAaA,IAAME,kBAAkB,GAAG,SAArBA,kBAAqB;AAAA,SAE3B,uBAAWN,eAAX,CAF2B;AAAA,CAA3B;;;;AASA,IAAMO,mBAAmB,GAAG,SAAtBA,mBAAsB,CAIjCC,SAJiC,EAKqC;AACtE,MAAMC,4BAA4B,GAAG,SAA/BA,4BAA+B,CACnCC,KADmC,EAEhC;AACH,QAAMC,eAAe,GAAGL,kBAAkB,EAA1C;AAEA,WAAO,gCAAC,SAAD,gCAAgBI,KAAhB,EAAiCC,eAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAP;AACD,GAND;;AAOAF,EAAAA,4BAA4B,CAACG,WAA7B,2BAAiE,oCAAeJ,SAAf,CAAjE;AACA,SAAOC,4BAAP;AACD,CAfM","sourcesContent":["import React, { PropsWithChildren, useContext } from 'react';\n\nimport type { TouchableOpacityProps } from 'react-native';\n\nimport type { MessagePinnedHeaderProps } from 'src/components/Message/MessageSimple/MessagePinnedHeader';\n\nimport type { Attachment, ChannelState, MessageResponse } from 'stream-chat';\n\nimport type { AttachmentProps } from '../../components/Attachment/Attachment';\nimport type { AttachmentActionsProps } from '../../components/Attachment/AttachmentActions';\nimport type { CardProps } from '../../components/Attachment/Card';\nimport type { FileAttachmentProps } from '../../components/Attachment/FileAttachment';\nimport type { FileAttachmentGroupProps } from '../../components/Attachment/FileAttachmentGroup';\nimport type { FileIconProps } from '../../components/Attachment/FileIcon';\nimport type { GalleryProps } from '../../components/Attachment/Gallery';\nimport type { GiphyProps } from '../../components/Attachment/Giphy';\nimport type { VideoThumbnailProps } from '../../components/Attachment/VideoThumbnail';\nimport type {\n MessageProps,\n MessageTouchableHandlerPayload,\n} from '../../components/Message/Message';\nimport type { MessageAvatarProps } from '../../components/Message/MessageSimple/MessageAvatar';\nimport type { MessageContentProps } from '../../components/Message/MessageSimple/MessageContent';\nimport type { MessageDeletedProps } from '../../components/Message/MessageSimple/MessageDeleted';\nimport type { MessageFooterProps } from '../../components/Message/MessageSimple/MessageFooter';\n\nimport type { MessageRepliesProps } from '../../components/Message/MessageSimple/MessageReplies';\nimport type { MessageRepliesAvatarsProps } from '../../components/Message/MessageSimple/MessageRepliesAvatars';\nimport type { MessageSimpleProps } from '../../components/Message/MessageSimple/MessageSimple';\nimport type { MessageStatusProps } from '../../components/Message/MessageSimple/MessageStatus';\nimport type { MessageTextProps } from '../../components/Message/MessageSimple/MessageTextContainer';\nimport type { ReactionListProps } from '../../components/Message/MessageSimple/ReactionList';\nimport type { MarkdownRules } from '../../components/Message/MessageSimple/utils/renderText';\nimport type { MessageActionsParams } from '../../components/Message/utils/messageActions';\nimport type { DateHeaderProps } from '../../components/MessageList/DateHeader';\nimport type { MessageType } from '../../components/MessageList/hooks/useMessageList';\nimport type { InlineDateSeparatorProps } from '../../components/MessageList/InlineDateSeparator';\nimport type { MessageListProps } from '../../components/MessageList/MessageList';\nimport type { MessageSystemProps } from '../../components/MessageList/MessageSystem';\nimport type { ScrollToBottomButtonProps } from '../../components/MessageList/ScrollToBottomButton';\nimport type { MessageActionType } from '../../components/MessageOverlay/MessageActionListItem';\nimport type { OverlayReactionListProps } from '../../components/MessageOverlay/OverlayReactionList';\nimport type { ReplyProps } from '../../components/Reply/Reply';\nimport type { FlatList } from '../../native';\nimport type { DefaultStreamChatGenerics, UnknownType } from '../../types/types';\nimport type { ReactionData } from '../../utils/utils';\nimport type { Alignment } from '../messageContext/MessageContext';\nimport type { SuggestionCommand } from '../suggestionsContext/SuggestionsContext';\nimport type { DeepPartial } from '../themeContext/ThemeContext';\nimport type { Theme } from '../themeContext/utils/theme';\nimport type { TDateTimeParserInput } from '../translationContext/TranslationContext';\nimport { getDisplayName } from '../utils/getDisplayName';\n\nexport type MessageContentType = 'attachments' | 'files' | 'gallery' | 'quoted_reply' | 'text';\n\nexport type MessagesContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /**\n * UI component for Attachment.\n * Defaults to: [Attachment](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Attachment/Attachment.tsx)\n */\n Attachment: React.ComponentType<AttachmentProps<StreamChatGenerics>>;\n /**\n * UI component to display AttachmentActions. e.g., send, shuffle, cancel in case of giphy\n * Defaults to: [AttachmentActions](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Attachment/AttachmentActions.tsx)\n */\n AttachmentActions: React.ComponentType<AttachmentActionsProps<StreamChatGenerics>>;\n /**\n * UI component to display generic media type e.g. giphy, url preview etc\n * Defaults to: [Card](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Attachment/Card.tsx)\n */\n Card: React.ComponentType<CardProps<StreamChatGenerics>>;\n /**\n * UI component for DateHeader\n * Defaults to: [DateHeader](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageList/DateHeader.tsx)\n **/\n DateHeader: React.ComponentType<DateHeaderProps>;\n\n /** Should keyboard be dismissed when messaged is touched */\n dismissKeyboardOnMessageTouch: boolean;\n\n enableMessageGroupingByUser: boolean;\n\n /**\n * UI component to display File type attachment.\n * Defaults to: [FileAttachment](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Attachment/FileAttachment.tsx)\n */\n FileAttachment: React.ComponentType<FileAttachmentProps<StreamChatGenerics>>;\n /**\n * UI component to display group of File type attachments or multiple file attachments (in single message).\n * Defaults to: [FileAttachmentGroup](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Attachment/FileAttachmentGroup.tsx)\n */\n FileAttachmentGroup: React.ComponentType<FileAttachmentGroupProps<StreamChatGenerics>>;\n /**\n * UI component for attachment icon for type 'file' attachment.\n * Defaults to: https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Attachment/FileIcon.tsx\n */\n FileAttachmentIcon: React.ComponentType<FileIconProps>;\n FlatList: typeof FlatList;\n /**\n * UI component to display image attachments\n * Defaults to: [Gallery](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Attachment/Gallery.tsx)\n */\n Gallery: React.ComponentType<GalleryProps<StreamChatGenerics>>;\n /**\n * UI component for Giphy\n * Defaults to: [Giphy](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Attachment/Giphy.tsx)\n */\n Giphy: React.ComponentType<GiphyProps<StreamChatGenerics>>;\n /**\n * The giphy version to render - check the keys of the [Image Object](https://developers.giphy.com/docs/api/schema#image-object) for possible values. Uses 'fixed_height' by default\n * */\n giphyVersion: keyof NonNullable<Attachment['giphy']>;\n /**\n * When true, messageList will be scrolled at first unread message, when opened.\n */\n initialScrollToFirstUnreadMessage: boolean;\n /**\n * UI component for Message Date Separator Component\n * Defaults to: [InlineDateSeparator](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageList/InlineDateSeparator.tsx)\n */\n InlineDateSeparator: React.ComponentType<InlineDateSeparatorProps>;\n /**\n * UI component for InlineUnreadIndicator\n * Defaults to: [InlineUnreadIndicator](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Message/MessageSimple/InlineUnreadIndicator.tsx)\n **/\n InlineUnreadIndicator: React.ComponentType;\n Message: React.ComponentType<MessageProps<StreamChatGenerics>>;\n /**\n * UI component for MessageAvatar\n * Defaults to: [MessageAvatar](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Message/MessageSimple/MessageAvatar.tsx)\n **/\n MessageAvatar: React.ComponentType<MessageAvatarProps<StreamChatGenerics>>;\n /**\n * UI component for MessageContent\n * Defaults to: [MessageContent](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Message/MessageSimple/MessageContent.tsx)\n */\n MessageContent: React.ComponentType<MessageContentProps<StreamChatGenerics>>;\n /** Order to render the message content */\n messageContentOrder: MessageContentType[];\n /**\n * UI component for MessageDeleted\n * Defaults to: [MessageDeleted](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageSimple/MessageDeleted.tsx)\n */\n MessageDeleted: React.ComponentType<MessageDeletedProps<StreamChatGenerics>>;\n /**\n * Custom message footer component\n */\n MessageFooter: React.ComponentType<MessageFooterProps<StreamChatGenerics>>;\n MessageList: React.ComponentType<MessageListProps<StreamChatGenerics>>;\n /**\n * Custom message pinned component\n */\n MessagePinnedHeader: React.ComponentType<MessagePinnedHeaderProps<StreamChatGenerics>>;\n /**\n * UI component for MessageReplies\n * Defaults to: [MessageReplies](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageSimple/MessageReplies.tsx)\n */\n\n MessageReplies: React.ComponentType<MessageRepliesProps<StreamChatGenerics>>;\n /**\n * UI Component for MessageRepliesAvatars\n * Defaults to: [MessageRepliesAvatars](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageSimple/MessageRepliesAvatars.tsx)\n */\n MessageRepliesAvatars: React.ComponentType<MessageRepliesAvatarsProps<StreamChatGenerics>>;\n /**\n * UI component for MessageSimple\n * Defaults to: [MessageSimple](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Message/MessageSimple/MessageSimple.tsx)\n */\n MessageSimple: React.ComponentType<MessageSimpleProps<StreamChatGenerics>>;\n /**\n * UI component for MessageStatus (delivered/read)\n * Defaults to: [MessageStatus](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Message/MessageSimple/MessageStatus.tsx)\n */\n MessageStatus: React.ComponentType<MessageStatusProps<StreamChatGenerics>>;\n /**\n * UI component for MessageSystem\n * Defaults to: [MessageSystem](https://getstream.github.io/stream-chat-react-native/v3/#messagesystem)\n */\n MessageSystem: React.ComponentType<MessageSystemProps<StreamChatGenerics>>;\n /**\n * UI component for OverlayReactionList\n */\n OverlayReactionList: React.ComponentType<OverlayReactionListProps<StreamChatGenerics>>;\n /**\n * UI component for ReactionList\n * Defaults to: [ReactionList](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Reaction/ReactionList.tsx)\n */\n ReactionList: React.ComponentType<ReactionListProps<StreamChatGenerics>>;\n removeMessage: (message: { id: string; parent_id?: string }) => void;\n /**\n * UI component for Reply\n * Defaults to: [Reply](https://getstream.github.io/stream-chat-react-native/v3/#reply)\n */\n Reply: React.ComponentType<ReplyProps<StreamChatGenerics>>;\n /**\n * Override the api request for retry message functionality.\n */\n retrySendMessage: (message: MessageResponse<StreamChatGenerics>) => Promise<void>;\n /**\n * UI component for ScrollToBottomButton\n * Defaults to: [ScrollToBottomButton](https://getstream.github.io/stream-chat-react-native/v3/#ScrollToBottomButton)\n */\n ScrollToBottomButton: React.ComponentType<ScrollToBottomButtonProps>;\n setEditingState: (message: MessageType<StreamChatGenerics>) => void;\n setQuotedMessageState: (message: MessageType<StreamChatGenerics>) => void;\n supportedReactions: ReactionData[];\n /**\n * UI component for TypingIndicator\n * Defaults to: [TypingIndicator](https://getstream.github.io/stream-chat-react-native/v3/#typingindicator)\n */\n TypingIndicator: React.ComponentType;\n /**\n * UI component for TypingIndicatorContainer\n * Defaults to: [TypingIndicatorContainer](https://getstream.github.io/stream-chat-react-native/v3/#typingindicatorcontainer)\n */\n TypingIndicatorContainer: React.ComponentType;\n updateMessage: (\n updatedMessage: MessageResponse<StreamChatGenerics>,\n extraState?: {\n commands?: SuggestionCommand<StreamChatGenerics>[];\n messageInput?: string;\n threadMessages?: ChannelState<StreamChatGenerics>['threads'][string];\n },\n ) => void;\n /**\n * Custom UI component to display enriched url preview.\n * Defaults to https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Attachment/Card.tsx\n */\n UrlPreview: React.ComponentType<CardProps<StreamChatGenerics>>;\n VideoThumbnail: React.ComponentType<VideoThumbnailProps>;\n /**\n * Provide any additional props for `TouchableOpacity` which wraps inner MessageContent component here.\n * Please check docs for TouchableOpacity for supported props - https://reactnative.dev/docs/touchableopacity#props\n *\n * @overrideType Object\n */\n additionalTouchableProps?: Omit<TouchableOpacityProps, 'style'>;\n /**\n * Custom UI component to override default cover (between Header and Footer) of Card component.\n * Accepts the same props as Card component.\n */\n CardCover?: React.ComponentType<CardProps<StreamChatGenerics>>;\n /**\n * Custom UI component to override default Footer of Card component.\n * Accepts the same props as Card component.\n */\n CardFooter?: React.ComponentType<CardProps<StreamChatGenerics>>;\n /**\n * Custom UI component to override default header of Card component.\n * Accepts the same props as Card component.\n */\n CardHeader?: React.ComponentType<CardProps<StreamChatGenerics>>;\n\n /**\n * Full override of the delete message button in the Message Actions\n *\n * Please check [cookbook](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#override-or-intercept-message-actions-edit-delete-reaction-reply-etc) for details.\n */\n\n /** Control if the deleted message is visible to both the send and reciever, either of them or none */\n deletedMessagesVisibilityType?: 'always' | 'never' | 'receiver' | 'sender';\n\n disableTypingIndicator?: boolean;\n\n /**\n * Whether messages should be aligned to right or left part of screen.\n * By default, messages will be received messages will be aligned to left and\n * sent messages will be aligned to right.\n */\n forceAlignMessages?: Alignment | boolean;\n /**\n * Optional function to custom format the message date\n */\n formatDate?: (date: TDateTimeParserInput) => string;\n handleBlock?: (message: MessageType<StreamChatGenerics>) => Promise<void>;\n /** Handler to access when a copy message action is invoked */\n handleCopy?: (message: MessageType<StreamChatGenerics>) => Promise<void>;\n /** Handler to access when a delete message action is invoked */\n handleDelete?: (message: MessageType<StreamChatGenerics>) => Promise<void>;\n /** Handler to access when an edit message action is invoked */\n handleEdit?: (message: MessageType<StreamChatGenerics>) => void;\n /** Handler to access when a flag message action is invoked */\n handleFlag?: (message: MessageType<StreamChatGenerics>) => Promise<void>;\n /** Handler to access when a mute user action is invoked */\n handleMute?: (message: MessageType<StreamChatGenerics>) => Promise<void>;\n /** Handler to access when a pin/unpin user action is invoked*/\n handlePinMessage?: ((message: MessageType<StreamChatGenerics>) => MessageActionType) | null;\n /** Handler to access when a quoted reply action is invoked */\n handleQuotedReply?: (message: MessageType<StreamChatGenerics>) => Promise<void>;\n /** Handler to process a reaction */\n handleReaction?: (\n message: MessageType<StreamChatGenerics>,\n reactionType: string,\n ) => Promise<void>;\n /** Handler to access when a retry action is invoked */\n handleRetry?: (message: MessageType<StreamChatGenerics>) => Promise<void>;\n /** Handler to access when a thread reply action is invoked */\n handleThreadReply?: (message: MessageType<StreamChatGenerics>) => Promise<void>;\n /** Handler to deal with custom memoization logic of Attachment */\n isAttachmentEqual?: (\n prevAttachment: Attachment<StreamChatGenerics>,\n nextAttachment: Attachment<StreamChatGenerics>,\n ) => boolean;\n legacyImageViewerSwipeBehaviour?: boolean;\n /** Object specifying rules defined within simple-markdown https://github.com/Khan/simple-markdown#adding-a-simple-extension */\n markdownRules?: MarkdownRules;\n /**\n * Use this prop to override message actions (which pop-up in message overlay).\n *\n * You can either completely override the default messageActions object.\n *\n * ```\n * <Channel\n * messageActions=[\n * {\n * action: () => { someAction() };\n * title: \"Pin Message\";\n * icon: PinIcon;\n * titleStyle: {};\n * },\n * {\n * action: () => { someAction() };\n * title: \"Delete Message\";\n * icon: PinIcon;\n * titleStyle: {};\n * }\n * ]\n * >\n * </Channel>\n * ```\n *\n * Or you can selectly keep certain action and remove some:\n *\n * e.g. Lets say you only want to keep threadReply and copyMessage actions\n *\n * ```\n * <Channel\n * messageActions={({\n * blockUser,\n * copyMessage,\n * deleteMessage,\n * editMessage,\n * flagMessage,\n * muteUser,\n * quotedReply,\n * retry,\n * threadReply,\n * }) => ([\n * threadReply, copyMessage\n * ])}\n * >\n * </Channel>\n * ```\n *\n * @overrideType Function | Array<Objects>\n */\n messageActions?: (param: MessageActionsParams<StreamChatGenerics>) => MessageActionType[];\n /**\n * Custom message header component\n */\n MessageHeader?: React.ComponentType<MessageFooterProps<StreamChatGenerics>>;\n /** Custom UI component for message text */\n MessageText?: React.ComponentType<MessageTextProps<StreamChatGenerics>>;\n\n /**\n * Theme provided only to messages that are the current users\n */\n myMessageTheme?: DeepPartial<Theme>;\n /**\n * Override default handler for onLongPress on message. You have access to payload of that handler as param:\n *\n * ```\n * <Channel\n * onLongPressMessage={({\n * actionHandlers: {\n * deleteMessage, // () => Promise<void>;\n * editMessage, // () => void;\n * quotedReply, // () => void;\n * resendMessage, // () => Promise<void>;\n * showMessageOverlay, // () => void;\n * toggleBanUser, // () => Promise<void>;\n * toggleMuteUser, // () => Promise<void>;\n * toggleReaction, // (reactionType: string) => Promise<void>;\n * },\n * defaultHandler, // () => void\n * event, // any event object corresponding to touchable feedback\n * emitter, // which component trigged this touchable feedback e.g. card, fileAttachment, gallery, message ... etc\n * message // message object on which longPress occured\n * }) => {\n * // Your custom action\n * }}\n * />\n * ```\n */\n onLongPressMessage?: (payload: MessageTouchableHandlerPayload<StreamChatGenerics>) => void;\n /**\n * Add onPressIn handler for attachments. You have access to payload of that handler as param:\n *\n * ```\n * <Channel\n * onPressInMessage={({\n * actionHandlers: {\n * deleteMessage, // () => Promise<void>;\n * editMessage, // () => void;\n * quotedReply, // () => void;\n * resendMessage, // () => Promise<void>;\n * showMessageOverlay, // () => void;\n * toggleBanUser, // () => Promise<void>;\n * toggleMuteUser, // () => Promise<void>;\n * toggleReaction, // (reactionType: string) => Promise<void>;\n * },\n * defaultHandler, // () => void\n * event, // any event object corresponding to touchable feedback\n * emitter, // which component trigged this touchable feedback e.g. card, fileAttachment, gallery, message ... etc\n * message // message object on which longPress occured\n * }) => {\n * // Your custom action\n * }}\n * />\n * ```\n */\n onPressInMessage?: (payload: MessageTouchableHandlerPayload<StreamChatGenerics>) => void;\n /**\n * Override onPress handler for message. You have access to payload of that handler as param:\n *\n * ```\n * <Channel\n * onPressMessage={({\n * actionHandlers: {\n * deleteMessage, // () => Promise<void>;\n * editMessage, // () => void;\n * quotedReply, // () => void;\n * resendMessage, // () => Promise<void>;\n * showMessageOverlay, // () => void;\n * toggleBanUser, // () => Promise<void>;\n * toggleMuteUser, // () => Promise<void>;\n * toggleReaction, // (reactionType: string) => Promise<void>;\n * },\n * defaultHandler, // () => void\n * event, // any event object corresponding to touchable feedback\n * emitter, // which component trigged this touchable feedback e.g. card, fileAttachment, gallery, message ... etc\n * message // message object on which longPress occurred\n * }) => {\n * // Your custom action\n * }}\n * />\n * ```\n */\n onPressMessage?: (payload: MessageTouchableHandlerPayload<StreamChatGenerics>) => void;\n\n /**\n * Full override of the reaction function on Message and Message Overlay\n *\n * Please check [cookbook](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#override-or-intercept-message-actions-edit-delete-reaction-reply-etc) for details.\n * */\n selectReaction?: (\n message: MessageType<StreamChatGenerics>,\n ) => (reactionType: string) => Promise<void>;\n\n targetedMessage?: string;\n};\n\nexport const MessagesContext = React.createContext({} as MessagesContextValue);\n\nexport const MessagesProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n children,\n value,\n}: PropsWithChildren<{\n value?: MessagesContextValue<StreamChatGenerics>;\n}>) => (\n <MessagesContext.Provider value={value as unknown as MessagesContextValue}>\n {children}\n </MessagesContext.Provider>\n);\n\nexport const useMessagesContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => useContext(MessagesContext) as unknown as MessagesContextValue<StreamChatGenerics>;\n\n/**\n * Typescript currently does not support partial inference so if MessagesContext\n * typing is desired while using the HOC withMessagesContext the Props for the\n * wrapped component must be provided as the first generic.\n */\nexport const withMessagesContext = <\n P extends UnknownType,\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n Component: React.ComponentType<P>,\n): React.FC<Omit<P, keyof MessagesContextValue<StreamChatGenerics>>> => {\n const WithMessagesContextComponent = (\n props: Omit<P, keyof MessagesContextValue<StreamChatGenerics>>,\n ) => {\n const messagesContext = useMessagesContext<StreamChatGenerics>();\n\n return <Component {...(props as P)} {...messagesContext} />;\n };\n WithMessagesContextComponent.displayName = `WithMessagesContext${getDisplayName(Component)}`;\n return WithMessagesContextComponent;\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["MessagesContext.tsx"],"names":["MessagesContext","React","createContext","DEFAULT_BASE_CONTEXT_VALUE","MessagesProvider","children","value","useMessagesContext","contextValue","Error","withMessagesContext","Component","WithMessagesContextComponent","props","messagesContext","displayName"],"mappings":";;;;;;;;;;;AAAA;;AAmDA;;AAEA;;AACA;;;;;;;;;AA6ZO,IAAMA,eAAe,GAAGC,kBAAMC,aAAN,CAC7BC,mDAD6B,CAAxB;;;;AAIA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB;AAAA,MAG9BC,QAH8B,QAG9BA,QAH8B;AAAA,MAI9BC,KAJ8B,QAI9BA,KAJ8B;AAAA,SAQ9B,gCAAC,eAAD,CAAiB,QAAjB;AAA0B,IAAA,KAAK,EAAEA,KAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGD,QADH,CAR8B;AAAA,CAAzB;;;;AAaA,IAAME,kBAAkB,GAAG,SAArBA,kBAAqB,GAE3B;AACL,MAAMC,YAAY,GAAG,uBACnBR,eADmB,CAArB;;AAIA,MAAIQ,YAAY,KAAKL,mDAAjB,IAA+C,CAAC,2CAApD,EAAyE;AACvE,UAAM,IAAIM,KAAJ,yOAAN;AAGD;;AAED,SAAOD,YAAP;AACD,CAdM;;;;AAqBA,IAAME,mBAAmB,GAAG,SAAtBA,mBAAsB,CAIjCC,SAJiC,EAKqC;AACtE,MAAMC,4BAA4B,GAAG,SAA/BA,4BAA+B,CACnCC,KADmC,EAEhC;AACH,QAAMC,eAAe,GAAGP,kBAAkB,EAA1C;AAEA,WAAO,gCAAC,SAAD,gCAAgBM,KAAhB,EAAiCC,eAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAP;AACD,GAND;;AAOAF,EAAAA,4BAA4B,CAACG,WAA7B,2BAAiE,oCAAeJ,SAAf,CAAjE;AACA,SAAOC,4BAAP;AACD,CAfM","sourcesContent":["import React, { PropsWithChildren, useContext } from 'react';\n\nimport type { TouchableOpacityProps } from 'react-native';\n\nimport type { MessagePinnedHeaderProps } from 'src/components/Message/MessageSimple/MessagePinnedHeader';\n\nimport type { Attachment, ChannelState, MessageResponse } from 'stream-chat';\n\nimport type { AttachmentProps } from '../../components/Attachment/Attachment';\nimport type { AttachmentActionsProps } from '../../components/Attachment/AttachmentActions';\nimport type { CardProps } from '../../components/Attachment/Card';\nimport type { FileAttachmentProps } from '../../components/Attachment/FileAttachment';\nimport type { FileAttachmentGroupProps } from '../../components/Attachment/FileAttachmentGroup';\nimport type { FileIconProps } from '../../components/Attachment/FileIcon';\nimport type { GalleryProps } from '../../components/Attachment/Gallery';\nimport type { GiphyProps } from '../../components/Attachment/Giphy';\nimport type { VideoThumbnailProps } from '../../components/Attachment/VideoThumbnail';\nimport type {\n MessageProps,\n MessageTouchableHandlerPayload,\n} from '../../components/Message/Message';\nimport type { MessageAvatarProps } from '../../components/Message/MessageSimple/MessageAvatar';\nimport type { MessageContentProps } from '../../components/Message/MessageSimple/MessageContent';\nimport type { MessageDeletedProps } from '../../components/Message/MessageSimple/MessageDeleted';\nimport type { MessageFooterProps } from '../../components/Message/MessageSimple/MessageFooter';\n\nimport type { MessageRepliesProps } from '../../components/Message/MessageSimple/MessageReplies';\nimport type { MessageRepliesAvatarsProps } from '../../components/Message/MessageSimple/MessageRepliesAvatars';\nimport type { MessageSimpleProps } from '../../components/Message/MessageSimple/MessageSimple';\nimport type { MessageStatusProps } from '../../components/Message/MessageSimple/MessageStatus';\nimport type { MessageTextProps } from '../../components/Message/MessageSimple/MessageTextContainer';\nimport type { ReactionListProps } from '../../components/Message/MessageSimple/ReactionList';\nimport type { MarkdownRules } from '../../components/Message/MessageSimple/utils/renderText';\nimport type { MessageActionsParams } from '../../components/Message/utils/messageActions';\nimport type { DateHeaderProps } from '../../components/MessageList/DateHeader';\nimport type { MessageType } from '../../components/MessageList/hooks/useMessageList';\nimport type { InlineDateSeparatorProps } from '../../components/MessageList/InlineDateSeparator';\nimport type { MessageListProps } from '../../components/MessageList/MessageList';\nimport type { MessageSystemProps } from '../../components/MessageList/MessageSystem';\nimport type { ScrollToBottomButtonProps } from '../../components/MessageList/ScrollToBottomButton';\nimport type { MessageActionType } from '../../components/MessageOverlay/MessageActionListItem';\nimport type { OverlayReactionListProps } from '../../components/MessageOverlay/OverlayReactionList';\nimport type { ReplyProps } from '../../components/Reply/Reply';\nimport type { FlatList } from '../../native';\nimport type { DefaultStreamChatGenerics, UnknownType } from '../../types/types';\nimport type { ReactionData } from '../../utils/utils';\nimport type { Alignment } from '../messageContext/MessageContext';\nimport type { SuggestionCommand } from '../suggestionsContext/SuggestionsContext';\nimport type { DeepPartial } from '../themeContext/ThemeContext';\nimport type { Theme } from '../themeContext/utils/theme';\nimport type { TDateTimeParserInput } 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 MessageContentType = 'attachments' | 'files' | 'gallery' | 'quoted_reply' | 'text';\n\nexport type MessagesContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /**\n * UI component for Attachment.\n * Defaults to: [Attachment](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Attachment/Attachment.tsx)\n */\n Attachment: React.ComponentType<AttachmentProps<StreamChatGenerics>>;\n /**\n * UI component to display AttachmentActions. e.g., send, shuffle, cancel in case of giphy\n * Defaults to: [AttachmentActions](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Attachment/AttachmentActions.tsx)\n */\n AttachmentActions: React.ComponentType<AttachmentActionsProps<StreamChatGenerics>>;\n /**\n * UI component to display generic media type e.g. giphy, url preview etc\n * Defaults to: [Card](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Attachment/Card.tsx)\n */\n Card: React.ComponentType<CardProps<StreamChatGenerics>>;\n /**\n * UI component for DateHeader\n * Defaults to: [DateHeader](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageList/DateHeader.tsx)\n **/\n DateHeader: React.ComponentType<DateHeaderProps>;\n\n /** Should keyboard be dismissed when messaged is touched */\n dismissKeyboardOnMessageTouch: boolean;\n\n enableMessageGroupingByUser: boolean;\n\n /**\n * UI component to display File type attachment.\n * Defaults to: [FileAttachment](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Attachment/FileAttachment.tsx)\n */\n FileAttachment: React.ComponentType<FileAttachmentProps<StreamChatGenerics>>;\n /**\n * UI component to display group of File type attachments or multiple file attachments (in single message).\n * Defaults to: [FileAttachmentGroup](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Attachment/FileAttachmentGroup.tsx)\n */\n FileAttachmentGroup: React.ComponentType<FileAttachmentGroupProps<StreamChatGenerics>>;\n /**\n * UI component for attachment icon for type 'file' attachment.\n * Defaults to: https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Attachment/FileIcon.tsx\n */\n FileAttachmentIcon: React.ComponentType<FileIconProps>;\n FlatList: typeof FlatList;\n /**\n * UI component to display image attachments\n * Defaults to: [Gallery](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Attachment/Gallery.tsx)\n */\n Gallery: React.ComponentType<GalleryProps<StreamChatGenerics>>;\n /**\n * UI component for Giphy\n * Defaults to: [Giphy](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Attachment/Giphy.tsx)\n */\n Giphy: React.ComponentType<GiphyProps<StreamChatGenerics>>;\n /**\n * The giphy version to render - check the keys of the [Image Object](https://developers.giphy.com/docs/api/schema#image-object) for possible values. Uses 'fixed_height' by default\n * */\n giphyVersion: keyof NonNullable<Attachment['giphy']>;\n /**\n * When true, messageList will be scrolled at first unread message, when opened.\n */\n initialScrollToFirstUnreadMessage: boolean;\n /**\n * UI component for Message Date Separator Component\n * Defaults to: [InlineDateSeparator](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageList/InlineDateSeparator.tsx)\n */\n InlineDateSeparator: React.ComponentType<InlineDateSeparatorProps>;\n /**\n * UI component for InlineUnreadIndicator\n * Defaults to: [InlineUnreadIndicator](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Message/MessageSimple/InlineUnreadIndicator.tsx)\n **/\n InlineUnreadIndicator: React.ComponentType;\n Message: React.ComponentType<MessageProps<StreamChatGenerics>>;\n /**\n * UI component for MessageAvatar\n * Defaults to: [MessageAvatar](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Message/MessageSimple/MessageAvatar.tsx)\n **/\n MessageAvatar: React.ComponentType<MessageAvatarProps<StreamChatGenerics>>;\n /**\n * UI component for MessageContent\n * Defaults to: [MessageContent](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Message/MessageSimple/MessageContent.tsx)\n */\n MessageContent: React.ComponentType<MessageContentProps<StreamChatGenerics>>;\n /** Order to render the message content */\n messageContentOrder: MessageContentType[];\n /**\n * UI component for MessageDeleted\n * Defaults to: [MessageDeleted](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageSimple/MessageDeleted.tsx)\n */\n MessageDeleted: React.ComponentType<MessageDeletedProps<StreamChatGenerics>>;\n /**\n * Custom message footer component\n */\n MessageFooter: React.ComponentType<MessageFooterProps<StreamChatGenerics>>;\n MessageList: React.ComponentType<MessageListProps<StreamChatGenerics>>;\n /**\n * Custom message pinned component\n */\n MessagePinnedHeader: React.ComponentType<MessagePinnedHeaderProps<StreamChatGenerics>>;\n /**\n * UI component for MessageReplies\n * Defaults to: [MessageReplies](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageSimple/MessageReplies.tsx)\n */\n\n MessageReplies: React.ComponentType<MessageRepliesProps<StreamChatGenerics>>;\n /**\n * UI Component for MessageRepliesAvatars\n * Defaults to: [MessageRepliesAvatars](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageSimple/MessageRepliesAvatars.tsx)\n */\n MessageRepliesAvatars: React.ComponentType<MessageRepliesAvatarsProps<StreamChatGenerics>>;\n /**\n * UI component for MessageSimple\n * Defaults to: [MessageSimple](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Message/MessageSimple/MessageSimple.tsx)\n */\n MessageSimple: React.ComponentType<MessageSimpleProps<StreamChatGenerics>>;\n /**\n * UI component for MessageStatus (delivered/read)\n * Defaults to: [MessageStatus](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Message/MessageSimple/MessageStatus.tsx)\n */\n MessageStatus: React.ComponentType<MessageStatusProps<StreamChatGenerics>>;\n /**\n * UI component for MessageSystem\n * Defaults to: [MessageSystem](https://getstream.github.io/stream-chat-react-native/v3/#messagesystem)\n */\n MessageSystem: React.ComponentType<MessageSystemProps<StreamChatGenerics>>;\n /**\n * UI component for OverlayReactionList\n */\n OverlayReactionList: React.ComponentType<OverlayReactionListProps<StreamChatGenerics>>;\n /**\n * UI component for ReactionList\n * Defaults to: [ReactionList](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Reaction/ReactionList.tsx)\n */\n ReactionList: React.ComponentType<ReactionListProps<StreamChatGenerics>>;\n removeMessage: (message: { id: string; parent_id?: string }) => void;\n /**\n * UI component for Reply\n * Defaults to: [Reply](https://getstream.github.io/stream-chat-react-native/v3/#reply)\n */\n Reply: React.ComponentType<ReplyProps<StreamChatGenerics>>;\n /**\n * Override the api request for retry message functionality.\n */\n retrySendMessage: (message: MessageResponse<StreamChatGenerics>) => Promise<void>;\n /**\n * UI component for ScrollToBottomButton\n * Defaults to: [ScrollToBottomButton](https://getstream.github.io/stream-chat-react-native/v3/#ScrollToBottomButton)\n */\n ScrollToBottomButton: React.ComponentType<ScrollToBottomButtonProps>;\n setEditingState: (message: MessageType<StreamChatGenerics>) => void;\n setQuotedMessageState: (message: MessageType<StreamChatGenerics>) => void;\n supportedReactions: ReactionData[];\n /**\n * UI component for TypingIndicator\n * Defaults to: [TypingIndicator](https://getstream.github.io/stream-chat-react-native/v3/#typingindicator)\n */\n TypingIndicator: React.ComponentType;\n /**\n * UI component for TypingIndicatorContainer\n * Defaults to: [TypingIndicatorContainer](https://getstream.github.io/stream-chat-react-native/v3/#typingindicatorcontainer)\n */\n TypingIndicatorContainer: React.ComponentType;\n updateMessage: (\n updatedMessage: MessageResponse<StreamChatGenerics>,\n extraState?: {\n commands?: SuggestionCommand<StreamChatGenerics>[];\n messageInput?: string;\n threadMessages?: ChannelState<StreamChatGenerics>['threads'][string];\n },\n ) => void;\n /**\n * Custom UI component to display enriched url preview.\n * Defaults to https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Attachment/Card.tsx\n */\n UrlPreview: React.ComponentType<CardProps<StreamChatGenerics>>;\n VideoThumbnail: React.ComponentType<VideoThumbnailProps>;\n /**\n * Provide any additional props for `TouchableOpacity` which wraps inner MessageContent component here.\n * Please check docs for TouchableOpacity for supported props - https://reactnative.dev/docs/touchableopacity#props\n *\n * @overrideType Object\n */\n additionalTouchableProps?: Omit<TouchableOpacityProps, 'style'>;\n /**\n * Custom UI component to override default cover (between Header and Footer) of Card component.\n * Accepts the same props as Card component.\n */\n CardCover?: React.ComponentType<CardProps<StreamChatGenerics>>;\n /**\n * Custom UI component to override default Footer of Card component.\n * Accepts the same props as Card component.\n */\n CardFooter?: React.ComponentType<CardProps<StreamChatGenerics>>;\n /**\n * Custom UI component to override default header of Card component.\n * Accepts the same props as Card component.\n */\n CardHeader?: React.ComponentType<CardProps<StreamChatGenerics>>;\n\n /**\n * Full override of the delete message button in the Message Actions\n *\n * Please check [cookbook](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#override-or-intercept-message-actions-edit-delete-reaction-reply-etc) for details.\n */\n\n /** Control if the deleted message is visible to both the send and reciever, either of them or none */\n deletedMessagesVisibilityType?: 'always' | 'never' | 'receiver' | 'sender';\n\n disableTypingIndicator?: boolean;\n\n /**\n * Whether messages should be aligned to right or left part of screen.\n * By default, messages will be received messages will be aligned to left and\n * sent messages will be aligned to right.\n */\n forceAlignMessages?: Alignment | boolean;\n /**\n * Optional function to custom format the message date\n */\n formatDate?: (date: TDateTimeParserInput) => string;\n handleBlock?: (message: MessageType<StreamChatGenerics>) => Promise<void>;\n /** Handler to access when a copy message action is invoked */\n handleCopy?: (message: MessageType<StreamChatGenerics>) => Promise<void>;\n /** Handler to access when a delete message action is invoked */\n handleDelete?: (message: MessageType<StreamChatGenerics>) => Promise<void>;\n /** Handler to access when an edit message action is invoked */\n handleEdit?: (message: MessageType<StreamChatGenerics>) => void;\n /** Handler to access when a flag message action is invoked */\n handleFlag?: (message: MessageType<StreamChatGenerics>) => Promise<void>;\n /** Handler to access when a mute user action is invoked */\n handleMute?: (message: MessageType<StreamChatGenerics>) => Promise<void>;\n /** Handler to access when a pin/unpin user action is invoked*/\n handlePinMessage?: ((message: MessageType<StreamChatGenerics>) => MessageActionType) | null;\n /** Handler to access when a quoted reply action is invoked */\n handleQuotedReply?: (message: MessageType<StreamChatGenerics>) => Promise<void>;\n /** Handler to process a reaction */\n handleReaction?: (\n message: MessageType<StreamChatGenerics>,\n reactionType: string,\n ) => Promise<void>;\n /** Handler to access when a retry action is invoked */\n handleRetry?: (message: MessageType<StreamChatGenerics>) => Promise<void>;\n /** Handler to access when a thread reply action is invoked */\n handleThreadReply?: (message: MessageType<StreamChatGenerics>) => Promise<void>;\n /** Handler to deal with custom memoization logic of Attachment */\n isAttachmentEqual?: (\n prevAttachment: Attachment<StreamChatGenerics>,\n nextAttachment: Attachment<StreamChatGenerics>,\n ) => boolean;\n legacyImageViewerSwipeBehaviour?: boolean;\n /** Object specifying rules defined within simple-markdown https://github.com/Khan/simple-markdown#adding-a-simple-extension */\n markdownRules?: MarkdownRules;\n /**\n * Use this prop to override message actions (which pop-up in message overlay).\n *\n * You can either completely override the default messageActions object.\n *\n * ```\n * <Channel\n * messageActions=[\n * {\n * action: () => { someAction() };\n * title: \"Pin Message\";\n * icon: PinIcon;\n * titleStyle: {};\n * },\n * {\n * action: () => { someAction() };\n * title: \"Delete Message\";\n * icon: PinIcon;\n * titleStyle: {};\n * }\n * ]\n * >\n * </Channel>\n * ```\n *\n * Or you can selectly keep certain action and remove some:\n *\n * e.g. Lets say you only want to keep threadReply and copyMessage actions\n *\n * ```\n * <Channel\n * messageActions={({\n * blockUser,\n * copyMessage,\n * deleteMessage,\n * editMessage,\n * flagMessage,\n * muteUser,\n * quotedReply,\n * retry,\n * threadReply,\n * }) => ([\n * threadReply, copyMessage\n * ])}\n * >\n * </Channel>\n * ```\n *\n * @overrideType Function | Array<Objects>\n */\n messageActions?: (param: MessageActionsParams<StreamChatGenerics>) => MessageActionType[];\n /**\n * Custom message header component\n */\n MessageHeader?: React.ComponentType<MessageFooterProps<StreamChatGenerics>>;\n /** Custom UI component for message text */\n MessageText?: React.ComponentType<MessageTextProps<StreamChatGenerics>>;\n\n /**\n * Theme provided only to messages that are the current users\n */\n myMessageTheme?: DeepPartial<Theme>;\n /**\n * Override default handler for onLongPress on message. You have access to payload of that handler as param:\n *\n * ```\n * <Channel\n * onLongPressMessage={({\n * actionHandlers: {\n * deleteMessage, // () => Promise<void>;\n * editMessage, // () => void;\n * quotedReply, // () => void;\n * resendMessage, // () => Promise<void>;\n * showMessageOverlay, // () => void;\n * toggleBanUser, // () => Promise<void>;\n * toggleMuteUser, // () => Promise<void>;\n * toggleReaction, // (reactionType: string) => Promise<void>;\n * },\n * defaultHandler, // () => void\n * event, // any event object corresponding to touchable feedback\n * emitter, // which component trigged this touchable feedback e.g. card, fileAttachment, gallery, message ... etc\n * message // message object on which longPress occured\n * }) => {\n * // Your custom action\n * }}\n * />\n * ```\n */\n onLongPressMessage?: (payload: MessageTouchableHandlerPayload<StreamChatGenerics>) => void;\n /**\n * Add onPressIn handler for attachments. You have access to payload of that handler as param:\n *\n * ```\n * <Channel\n * onPressInMessage={({\n * actionHandlers: {\n * deleteMessage, // () => Promise<void>;\n * editMessage, // () => void;\n * quotedReply, // () => void;\n * resendMessage, // () => Promise<void>;\n * showMessageOverlay, // () => void;\n * toggleBanUser, // () => Promise<void>;\n * toggleMuteUser, // () => Promise<void>;\n * toggleReaction, // (reactionType: string) => Promise<void>;\n * },\n * defaultHandler, // () => void\n * event, // any event object corresponding to touchable feedback\n * emitter, // which component trigged this touchable feedback e.g. card, fileAttachment, gallery, message ... etc\n * message // message object on which longPress occured\n * }) => {\n * // Your custom action\n * }}\n * />\n * ```\n */\n onPressInMessage?: (payload: MessageTouchableHandlerPayload<StreamChatGenerics>) => void;\n /**\n * Override onPress handler for message. You have access to payload of that handler as param:\n *\n * ```\n * <Channel\n * onPressMessage={({\n * actionHandlers: {\n * deleteMessage, // () => Promise<void>;\n * editMessage, // () => void;\n * quotedReply, // () => void;\n * resendMessage, // () => Promise<void>;\n * showMessageOverlay, // () => void;\n * toggleBanUser, // () => Promise<void>;\n * toggleMuteUser, // () => Promise<void>;\n * toggleReaction, // (reactionType: string) => Promise<void>;\n * },\n * defaultHandler, // () => void\n * event, // any event object corresponding to touchable feedback\n * emitter, // which component trigged this touchable feedback e.g. card, fileAttachment, gallery, message ... etc\n * message // message object on which longPress occurred\n * }) => {\n * // Your custom action\n * }}\n * />\n * ```\n */\n onPressMessage?: (payload: MessageTouchableHandlerPayload<StreamChatGenerics>) => void;\n\n /**\n * Full override of the reaction function on Message and Message Overlay\n *\n * Please check [cookbook](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#override-or-intercept-message-actions-edit-delete-reaction-reply-etc) for details.\n * */\n selectReaction?: (\n message: MessageType<StreamChatGenerics>,\n ) => (reactionType: string) => Promise<void>;\n\n targetedMessage?: string;\n};\n\nexport const MessagesContext = React.createContext(\n DEFAULT_BASE_CONTEXT_VALUE as MessagesContextValue,\n);\n\nexport const MessagesProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n children,\n value,\n}: PropsWithChildren<{\n value?: MessagesContextValue<StreamChatGenerics>;\n}>) => (\n <MessagesContext.Provider value={value as unknown as MessagesContextValue}>\n {children}\n </MessagesContext.Provider>\n);\n\nexport const useMessagesContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => {\n const contextValue = useContext(\n MessagesContext,\n ) as unknown as MessagesContextValue<StreamChatGenerics>;\n\n if (contextValue === DEFAULT_BASE_CONTEXT_VALUE && !isTestEnvironment()) {\n throw new Error(\n `The useMessagesContext hook was called outside of the MessagesContext provider. Make sure you have configured MessageList component correctly - https://getstream.io/chat/docs/sdk/reactnative/basics/hello_stream_chat/#message-list`,\n );\n }\n\n return contextValue;\n};\n\n/**\n * Typescript currently does not support partial inference so if MessagesContext\n * typing is desired while using the HOC withMessagesContext the Props for the\n * wrapped component must be provided as the first generic.\n */\nexport const withMessagesContext = <\n P extends UnknownType,\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n Component: React.ComponentType<P>,\n): React.FC<Omit<P, keyof MessagesContextValue<StreamChatGenerics>>> => {\n const WithMessagesContextComponent = (\n props: Omit<P, keyof MessagesContextValue<StreamChatGenerics>>,\n ) => {\n const messagesContext = useMessagesContext<StreamChatGenerics>();\n\n return <Component {...(props as P)} {...messagesContext} />;\n };\n WithMessagesContextComponent.displayName = `WithMessagesContext${getDisplayName(Component)}`;\n return WithMessagesContextComponent;\n};\n"]}
|
|
@@ -11,8 +11,12 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
11
11
|
|
|
12
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
13
|
|
|
14
|
+
var _defaultBaseContextValue = require("../utils/defaultBaseContextValue");
|
|
15
|
+
|
|
14
16
|
var _getDisplayName = require("../utils/getDisplayName");
|
|
15
17
|
|
|
18
|
+
var _isTestEnvironment = require("../utils/isTestEnvironment");
|
|
19
|
+
|
|
16
20
|
var _this = this,
|
|
17
21
|
_jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/contexts/overlayContext/OverlayContext.tsx";
|
|
18
22
|
|
|
@@ -20,12 +24,18 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
20
24
|
|
|
21
25
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
22
26
|
|
|
23
|
-
var OverlayContext = _react["default"].createContext(
|
|
27
|
+
var OverlayContext = _react["default"].createContext(_defaultBaseContextValue.DEFAULT_BASE_CONTEXT_VALUE);
|
|
24
28
|
|
|
25
29
|
exports.OverlayContext = OverlayContext;
|
|
26
30
|
|
|
27
31
|
var useOverlayContext = function useOverlayContext() {
|
|
28
|
-
|
|
32
|
+
var contextValue = (0, _react.useContext)(OverlayContext);
|
|
33
|
+
|
|
34
|
+
if (contextValue === _defaultBaseContextValue.DEFAULT_BASE_CONTEXT_VALUE && !(0, _isTestEnvironment.isTestEnvironment)()) {
|
|
35
|
+
throw new Error("The useOverlayContext hook was called outside the OverlayContext Provider. Make sure you have configured OverlayProvider component correctly - https://getstream.io/chat/docs/sdk/reactnative/basics/hello_stream_chat/#overlay-provider");
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return contextValue;
|
|
29
39
|
};
|
|
30
40
|
|
|
31
41
|
exports.useOverlayContext = useOverlayContext;
|
|
@@ -37,7 +47,7 @@ var withOverlayContext = function withOverlayContext(Component) {
|
|
|
37
47
|
__self: _this,
|
|
38
48
|
__source: {
|
|
39
49
|
fileName: _jsxFileName,
|
|
40
|
-
lineNumber:
|
|
50
|
+
lineNumber: 103,
|
|
41
51
|
columnNumber: 12
|
|
42
52
|
}
|
|
43
53
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["OverlayContext.tsx"],"names":["OverlayContext","React","createContext","useOverlayContext","withOverlayContext","Component","WithOverlayContextComponent","props","overlayContext","displayName"],"mappings":";;;;;;;;;;;AAAA;;AAeA;;;;;;;;;AAWO,IAAMA,cAAc,GAAGC,kBAAMC,aAAN,
|
|
1
|
+
{"version":3,"sources":["OverlayContext.tsx"],"names":["OverlayContext","React","createContext","DEFAULT_BASE_CONTEXT_VALUE","useOverlayContext","contextValue","Error","withOverlayContext","Component","WithOverlayContextComponent","props","overlayContext","displayName"],"mappings":";;;;;;;;;;;AAAA;;AAeA;;AAEA;;AACA;;;;;;;;;AAWO,IAAMA,cAAc,GAAGC,kBAAMC,aAAN,CAC5BC,mDAD4B,CAAvB;;;;AAmDA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,GAAM;AACrC,MAAMC,YAAY,GAAG,uBAAWL,cAAX,CAArB;;AAEA,MAAIK,YAAY,KAAKF,mDAAjB,IAA+C,CAAC,2CAApD,EAAyE;AACvE,UAAM,IAAIG,KAAJ,4OAAN;AAGD;;AAED,SAAOD,YAAP;AACD,CAVM;;;;AAYA,IAAME,kBAAkB,GAAG,SAArBA,kBAAqB,CAGhCC,SAHgC,EAIkC;AAClE,MAAMC,2BAA2B,GAAG,SAA9BA,2BAA8B,CAClCC,KADkC,EAE/B;AACH,QAAMC,cAAc,GAAGP,iBAAiB,EAAxC;AAEA,WAAO,gCAAC,SAAD,gCAAgBM,KAAhB,EAAkDC,cAAlD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAP;AACD,GAND;;AAOAF,EAAAA,2BAA2B,CAACG,WAA5B,0BAA+D,oCAC7DJ,SAD6D,CAA/D;AAGA,SAAOC,2BAAP;AACD,CAhBM","sourcesContent":["import React, { useContext } from 'react';\n\nimport type { BottomSheetMethods } from '@gorhom/bottom-sheet/lib/typescript/types';\nimport type { Attachment } from 'stream-chat';\n\nimport type { AttachmentPickerProps } from '../../components/AttachmentPicker/AttachmentPicker';\nimport type { ImageGalleryCustomComponents } from '../../components/ImageGallery/ImageGallery';\n\nimport type { MessageType } from '../../components/MessageList/hooks/useMessageList';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport type { Streami18n } from '../../utils/Streami18n';\nimport type { AttachmentPickerContextValue } from '../attachmentPickerContext/AttachmentPickerContext';\nimport type { MessageOverlayContextValue } from '../messageOverlayContext/MessageOverlayContext';\nimport type { DeepPartial } from '../themeContext/ThemeContext';\nimport type { Theme } from '../themeContext/utils/theme';\nimport { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';\n\nimport { getDisplayName } from '../utils/getDisplayName';\nimport { isTestEnvironment } from '../utils/isTestEnvironment';\n\nexport type Overlay = 'alert' | 'gallery' | 'message' | 'none';\n\nexport type OverlayContextValue = {\n overlay: Overlay;\n setOverlay: React.Dispatch<React.SetStateAction<Overlay>>;\n style?: DeepPartial<Theme>;\n translucentStatusBar?: boolean;\n};\n\nexport const OverlayContext = React.createContext(\n DEFAULT_BASE_CONTEXT_VALUE as OverlayContextValue,\n);\n\nexport type OverlayProviderProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<AttachmentPickerProps> &\n Partial<\n Pick<\n AttachmentPickerContextValue,\n | 'attachmentPickerBottomSheetHeight'\n | 'attachmentSelectionBarHeight'\n | 'bottomInset'\n | 'CameraSelectorIcon'\n | 'FileSelectorIcon'\n | 'ImageSelectorIcon'\n | 'topInset'\n >\n > &\n ImageGalleryCustomComponents<StreamChatGenerics> &\n Partial<\n Pick<\n MessageOverlayContextValue<StreamChatGenerics>,\n | 'MessageActionList'\n | 'MessageActionListItem'\n | 'OverlayReactionList'\n | 'OverlayReactions'\n | 'OverlayReactionsAvatar'\n >\n > &\n Pick<OverlayContextValue, 'translucentStatusBar'> & {\n /**\n * The giphy version to render - check the keys of the [Image Object](https://developers.giphy.com/docs/api/schema#image-object) for possible values. Uses 'fixed_height' by default\n * */\n closePicker?: (ref: React.RefObject<BottomSheetMethods>) => void;\n error?: boolean | Error;\n giphyVersion?: keyof NonNullable<Attachment['giphy']>;\n /** https://github.com/GetStream/stream-chat-react-native/wiki/Internationalization-(i18n) */\n i18nInstance?: Streami18n;\n imageGalleryGridHandleHeight?: number;\n imageGalleryGridSnapPoints?: [string | number, string | number];\n isMyMessage?: boolean;\n isThreadMessage?: boolean;\n message?: MessageType<StreamChatGenerics>;\n messageReactions?: boolean;\n messageTextNumberOfLines?: number;\n numberOfImageGalleryGridColumns?: number;\n openPicker?: (ref: React.RefObject<BottomSheetMethods>) => void;\n value?: Partial<OverlayContextValue>;\n };\n\nexport const useOverlayContext = () => {\n const contextValue = useContext(OverlayContext);\n\n if (contextValue === DEFAULT_BASE_CONTEXT_VALUE && !isTestEnvironment()) {\n throw new Error(\n `The useOverlayContext hook was called outside the OverlayContext Provider. Make sure you have configured OverlayProvider component correctly - https://getstream.io/chat/docs/sdk/reactnative/basics/hello_stream_chat/#overlay-provider`,\n );\n }\n\n return contextValue;\n};\n\nexport const withOverlayContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n Component: React.ComponentType<StreamChatGenerics>,\n): React.FC<Omit<StreamChatGenerics, keyof OverlayContextValue>> => {\n const WithOverlayContextComponent = (\n props: Omit<StreamChatGenerics, keyof OverlayContextValue>,\n ) => {\n const overlayContext = useOverlayContext();\n\n return <Component {...(props as StreamChatGenerics)} {...overlayContext} />;\n };\n WithOverlayContextComponent.displayName = `WithOverlayContext${getDisplayName(\n Component as React.ComponentType,\n )}`;\n return WithOverlayContextComponent;\n};\n"]}
|
|
@@ -228,7 +228,7 @@ var OverlayProvider = function OverlayProvider(props) {
|
|
|
228
228
|
__self: _this,
|
|
229
229
|
__source: {
|
|
230
230
|
fileName: _jsxFileName,
|
|
231
|
-
lineNumber:
|
|
231
|
+
lineNumber: 201,
|
|
232
232
|
columnNumber: 5
|
|
233
233
|
}
|
|
234
234
|
}, _react["default"].createElement(_OverlayContext.OverlayContext.Provider, {
|
|
@@ -236,14 +236,14 @@ var OverlayProvider = function OverlayProvider(props) {
|
|
|
236
236
|
__self: _this,
|
|
237
237
|
__source: {
|
|
238
238
|
fileName: _jsxFileName,
|
|
239
|
-
lineNumber:
|
|
239
|
+
lineNumber: 202,
|
|
240
240
|
columnNumber: 7
|
|
241
241
|
}
|
|
242
242
|
}, _react["default"].createElement(_MessageOverlayContext.MessageOverlayProvider, {
|
|
243
243
|
__self: _this,
|
|
244
244
|
__source: {
|
|
245
245
|
fileName: _jsxFileName,
|
|
246
|
-
lineNumber:
|
|
246
|
+
lineNumber: 203,
|
|
247
247
|
columnNumber: 9
|
|
248
248
|
}
|
|
249
249
|
}, _react["default"].createElement(_AttachmentPickerContext.AttachmentPickerProvider, {
|
|
@@ -251,21 +251,21 @@ var OverlayProvider = function OverlayProvider(props) {
|
|
|
251
251
|
__self: _this,
|
|
252
252
|
__source: {
|
|
253
253
|
fileName: _jsxFileName,
|
|
254
|
-
lineNumber:
|
|
254
|
+
lineNumber: 204,
|
|
255
255
|
columnNumber: 11
|
|
256
256
|
}
|
|
257
257
|
}, _react["default"].createElement(_ImageGalleryContext.ImageGalleryProvider, {
|
|
258
258
|
__self: _this,
|
|
259
259
|
__source: {
|
|
260
260
|
fileName: _jsxFileName,
|
|
261
|
-
lineNumber:
|
|
261
|
+
lineNumber: 205,
|
|
262
262
|
columnNumber: 13
|
|
263
263
|
}
|
|
264
264
|
}, _react["default"].createElement(_ChannelsStateContext.ChannelsStateProvider, {
|
|
265
265
|
__self: _this,
|
|
266
266
|
__source: {
|
|
267
267
|
fileName: _jsxFileName,
|
|
268
|
-
lineNumber:
|
|
268
|
+
lineNumber: 206,
|
|
269
269
|
columnNumber: 15
|
|
270
270
|
}
|
|
271
271
|
}, children), _react["default"].createElement(_ThemeContext.ThemeProvider, {
|
|
@@ -273,7 +273,7 @@ var OverlayProvider = function OverlayProvider(props) {
|
|
|
273
273
|
__self: _this,
|
|
274
274
|
__source: {
|
|
275
275
|
fileName: _jsxFileName,
|
|
276
|
-
lineNumber:
|
|
276
|
+
lineNumber: 207,
|
|
277
277
|
columnNumber: 15
|
|
278
278
|
}
|
|
279
279
|
}, _react["default"].createElement(_reactNativeReanimated["default"].View, {
|
|
@@ -282,7 +282,7 @@ var OverlayProvider = function OverlayProvider(props) {
|
|
|
282
282
|
__self: _this,
|
|
283
283
|
__source: {
|
|
284
284
|
fileName: _jsxFileName,
|
|
285
|
-
lineNumber:
|
|
285
|
+
lineNumber: 208,
|
|
286
286
|
columnNumber: 17
|
|
287
287
|
}
|
|
288
288
|
}, _react["default"].createElement(_OverlayBackdrop.OverlayBackdrop, {
|
|
@@ -293,7 +293,7 @@ var OverlayProvider = function OverlayProvider(props) {
|
|
|
293
293
|
__self: _this,
|
|
294
294
|
__source: {
|
|
295
295
|
fileName: _jsxFileName,
|
|
296
|
-
lineNumber:
|
|
296
|
+
lineNumber: 212,
|
|
297
297
|
columnNumber: 19
|
|
298
298
|
}
|
|
299
299
|
})), overlay === 'message' && _react["default"].createElement(_MessageOverlay.MessageOverlay, {
|
|
@@ -307,7 +307,7 @@ var OverlayProvider = function OverlayProvider(props) {
|
|
|
307
307
|
__self: _this,
|
|
308
308
|
__source: {
|
|
309
309
|
fileName: _jsxFileName,
|
|
310
|
-
lineNumber:
|
|
310
|
+
lineNumber: 215,
|
|
311
311
|
columnNumber: 19
|
|
312
312
|
}
|
|
313
313
|
}), overlay === 'gallery' && _react["default"].createElement(_ImageGallery.ImageGallery, {
|
|
@@ -320,7 +320,7 @@ var OverlayProvider = function OverlayProvider(props) {
|
|
|
320
320
|
__self: _this,
|
|
321
321
|
__source: {
|
|
322
322
|
fileName: _jsxFileName,
|
|
323
|
-
lineNumber:
|
|
323
|
+
lineNumber: 226,
|
|
324
324
|
columnNumber: 19
|
|
325
325
|
}
|
|
326
326
|
}), _react["default"].createElement(_AttachmentPicker.AttachmentPicker, (0, _extends2["default"])({
|
|
@@ -329,7 +329,7 @@ var OverlayProvider = function OverlayProvider(props) {
|
|
|
329
329
|
__self: _this,
|
|
330
330
|
__source: {
|
|
331
331
|
fileName: _jsxFileName,
|
|
332
|
-
lineNumber:
|
|
332
|
+
lineNumber: 235,
|
|
333
333
|
columnNumber: 17
|
|
334
334
|
}
|
|
335
335
|
}))))))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["OverlayProvider.tsx"],"names":["OverlayProvider","props","AttachmentPickerBottomSheetHandle","DefaultAttachmentPickerBottomSheetHandle","attachmentPickerBottomSheetHandleHeight","attachmentPickerBottomSheetHeight","AttachmentPickerError","DefaultAttachmentPickerError","attachmentPickerErrorButtonText","AttachmentPickerErrorImage","DefaultAttachmentPickerErrorImage","attachmentPickerErrorText","attachmentSelectionBarHeight","bottomInset","CameraSelectorIcon","DefaultCameraSelectorIcon","children","closePicker","ref","current","close","FileSelectorIcon","DefaultFileSelectorIcon","giphyVersion","i18nInstance","imageGalleryCustomComponents","imageGalleryGridHandleHeight","imageGalleryGridSnapPoints","ImageOverlaySelectedComponent","DefaultImageOverlaySelectedComponent","ImageSelectorIcon","DefaultImageSelectorIcon","MessageActionList","MessageActionListItem","messageTextNumberOfLines","numberOfAttachmentImagesToLoadPerCall","numberOfAttachmentPickerImageColumns","numberOfImageGalleryGridColumns","openPicker","snapToIndex","console","warn","topInset","translucentStatusBar","OverlayReactionList","OverlayReactions","OverlayReactionsAvatar","value","attachmentPickerProps","bottomSheetRef","t","key","tDateTimeParser","input","translators","setTranslators","overlay","setOverlay","overlayOpacity","Dimensions","get","height","width","loadingTranslators","backAction","backHandler","BackHandler","addEventListener","remove","attachmentPickerContext","overlayStyle","opacity","overlayContext","style","StyleSheet","absoluteFill"],"mappings":"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","sourcesContent":["import React, { PropsWithChildren, useEffect, useRef, useState } from 'react';\nimport { BackHandler, Dimensions, StyleSheet, ViewStyle } from 'react-native';\n\nimport Animated, {\n cancelAnimation,\n useAnimatedStyle,\n useSharedValue,\n withTiming,\n} from 'react-native-reanimated';\n\nimport type BottomSheet from '@gorhom/bottom-sheet';\nimport Dayjs from 'dayjs';\n\nimport { OverlayContext, OverlayProviderProps } from './OverlayContext';\n\nimport { AttachmentPicker } from '../../components/AttachmentPicker/AttachmentPicker';\n\nimport { AttachmentPickerBottomSheetHandle as DefaultAttachmentPickerBottomSheetHandle } from '../../components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle';\nimport { AttachmentPickerError as DefaultAttachmentPickerError } from '../../components/AttachmentPicker/components/AttachmentPickerError';\nimport { AttachmentPickerErrorImage as DefaultAttachmentPickerErrorImage } from '../../components/AttachmentPicker/components/AttachmentPickerErrorImage';\nimport { CameraSelectorIcon as DefaultCameraSelectorIcon } from '../../components/AttachmentPicker/components/CameraSelectorIcon';\nimport { FileSelectorIcon as DefaultFileSelectorIcon } from '../../components/AttachmentPicker/components/FileSelectorIcon';\nimport { ImageOverlaySelectedComponent as DefaultImageOverlaySelectedComponent } from '../../components/AttachmentPicker/components/ImageOverlaySelectedComponent';\nimport { ImageSelectorIcon as DefaultImageSelectorIcon } from '../../components/AttachmentPicker/components/ImageSelectorIcon';\nimport { ImageGallery } from '../../components/ImageGallery/ImageGallery';\nimport { MessageOverlay } from '../../components/MessageOverlay/MessageOverlay';\nimport { OverlayBackdrop } from '../../components/MessageOverlay/OverlayBackdrop';\nimport { ChannelsStateProvider } from '../../contexts/channelsStateContext/ChannelsStateContext';\nimport { useStreami18n } from '../../hooks/useStreami18n';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { AttachmentPickerProvider } from '../attachmentPickerContext/AttachmentPickerContext';\nimport { ImageGalleryProvider } from '../imageGalleryContext/ImageGalleryContext';\nimport { MessageOverlayProvider } from '../messageOverlayContext/MessageOverlayContext';\nimport { ThemeProvider } from '../themeContext/ThemeContext';\nimport {\n TranslationContextValue,\n TranslationProvider,\n} from '../translationContext/TranslationContext';\n\n/**\n * - The highest level of these components is the `OverlayProvider`. The `OverlayProvider` allows users to interact with messages on long press above the underlying views, use the full screen image viewer, and use the `AttachmentPicker` as a keyboard-esk view.\n * Because these views must exist above all others `OverlayProvider` should wrap your navigation stack as well. Assuming [`React Navigation`](https://reactnavigation.org/) is being used, your highest level navigation stack should be wrapped in the provider:\n *\n * ```js\n * <NavigationContainer>\n * <OverlayProvider>\n * <Stack.Navigator>\n * <Stack.Screen />\n * </Stack.Navigator>\n * </OverlayProvider>\n * </NavigationContainer>\n * ```\n *\n * - Don't forget to check our cookbook section of [OverlayProvider](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#overlayprovider)\n *\n * - Also check the [visual component guide](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#custom-components), to learn about component customizations.\n *\n * @example ./OverlayProvider.md\n */\nexport const OverlayProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: PropsWithChildren<OverlayProviderProps<StreamChatGenerics>>,\n) => {\n const {\n AttachmentPickerBottomSheetHandle = DefaultAttachmentPickerBottomSheetHandle,\n attachmentPickerBottomSheetHandleHeight,\n attachmentPickerBottomSheetHeight,\n AttachmentPickerError = DefaultAttachmentPickerError,\n attachmentPickerErrorButtonText,\n AttachmentPickerErrorImage = DefaultAttachmentPickerErrorImage,\n attachmentPickerErrorText,\n attachmentSelectionBarHeight,\n bottomInset,\n CameraSelectorIcon = DefaultCameraSelectorIcon,\n children,\n closePicker = (ref) => {\n if (ref.current) {\n ref.current.close();\n }\n },\n FileSelectorIcon = DefaultFileSelectorIcon,\n giphyVersion,\n i18nInstance,\n imageGalleryCustomComponents,\n imageGalleryGridHandleHeight,\n imageGalleryGridSnapPoints,\n ImageOverlaySelectedComponent = DefaultImageOverlaySelectedComponent,\n ImageSelectorIcon = DefaultImageSelectorIcon,\n MessageActionList,\n MessageActionListItem,\n messageTextNumberOfLines,\n numberOfAttachmentImagesToLoadPerCall,\n numberOfAttachmentPickerImageColumns,\n numberOfImageGalleryGridColumns,\n openPicker = (ref) => {\n if (ref.current?.snapToIndex) {\n ref.current.snapToIndex(0);\n } else {\n console.warn('bottom and top insets must be set for the image picker to work correctly');\n }\n },\n topInset,\n translucentStatusBar,\n OverlayReactionList,\n OverlayReactions,\n OverlayReactionsAvatar,\n value,\n } = props;\n\n const attachmentPickerProps = {\n AttachmentPickerBottomSheetHandle,\n attachmentPickerBottomSheetHandleHeight,\n attachmentPickerBottomSheetHeight,\n AttachmentPickerError,\n attachmentPickerErrorButtonText,\n AttachmentPickerErrorImage,\n attachmentPickerErrorText,\n attachmentSelectionBarHeight,\n ImageOverlaySelectedComponent,\n numberOfAttachmentImagesToLoadPerCall,\n numberOfAttachmentPickerImageColumns,\n translucentStatusBar,\n };\n\n const bottomSheetRef = useRef<BottomSheet>(null);\n\n const [translators, setTranslators] = useState<TranslationContextValue>({\n t: (key: string) => key,\n tDateTimeParser: (input?: string | number | Date) => Dayjs(input),\n });\n const [overlay, setOverlay] = useState(value?.overlay || 'none');\n\n const overlayOpacity = useSharedValue(0);\n const { height, width } = Dimensions.get('screen');\n\n // Setup translators\n const loadingTranslators = useStreami18n({ i18nInstance, setTranslators });\n\n useEffect(() => {\n const backAction = () => {\n if (overlay !== 'none') {\n setOverlay('none');\n return true;\n }\n\n return false;\n };\n\n const backHandler = BackHandler.addEventListener('hardwareBackPress', backAction);\n\n return () => backHandler.remove();\n }, [overlay]);\n\n useEffect(() => {\n if (bottomSheetRef.current) {\n bottomSheetRef.current.close?.();\n }\n cancelAnimation(overlayOpacity);\n if (overlay !== 'none') {\n overlayOpacity.value = withTiming(1);\n } else {\n overlayOpacity.value = withTiming(0);\n }\n }, [overlay]);\n\n // Setup translators\n useStreami18n({ i18nInstance, setTranslators });\n\n const attachmentPickerContext = {\n attachmentPickerBottomSheetHeight,\n attachmentSelectionBarHeight,\n bottomInset,\n CameraSelectorIcon,\n closePicker: () => closePicker(bottomSheetRef),\n FileSelectorIcon,\n ImageSelectorIcon,\n openPicker: () => openPicker(bottomSheetRef),\n topInset,\n };\n\n const overlayStyle = useAnimatedStyle<ViewStyle>(\n () => ({\n opacity: overlayOpacity.value,\n }),\n [],\n );\n\n const overlayContext = {\n overlay,\n setOverlay,\n style: value?.style,\n translucentStatusBar,\n };\n\n if (loadingTranslators) return null;\n\n return (\n <TranslationProvider value={translators}>\n <OverlayContext.Provider value={overlayContext}>\n <MessageOverlayProvider<StreamChatGenerics>>\n <AttachmentPickerProvider value={attachmentPickerContext}>\n <ImageGalleryProvider>\n <ChannelsStateProvider<StreamChatGenerics>>{children}</ChannelsStateProvider>\n <ThemeProvider style={overlayContext.style}>\n <Animated.View\n pointerEvents={overlay === 'none' ? 'none' : 'auto'}\n style={[StyleSheet.absoluteFill, overlayStyle]}\n >\n <OverlayBackdrop style={[StyleSheet.absoluteFill, { height, width }]} />\n </Animated.View>\n {overlay === 'message' && (\n <MessageOverlay<StreamChatGenerics>\n MessageActionList={MessageActionList}\n MessageActionListItem={MessageActionListItem}\n messageTextNumberOfLines={messageTextNumberOfLines}\n overlayOpacity={overlayOpacity}\n OverlayReactionList={OverlayReactionList}\n OverlayReactions={OverlayReactions}\n OverlayReactionsAvatar={OverlayReactionsAvatar}\n />\n )}\n {overlay === 'gallery' && (\n <ImageGallery<StreamChatGenerics>\n giphyVersion={giphyVersion}\n imageGalleryCustomComponents={imageGalleryCustomComponents}\n imageGalleryGridHandleHeight={imageGalleryGridHandleHeight}\n imageGalleryGridSnapPoints={imageGalleryGridSnapPoints}\n numberOfImageGalleryGridColumns={numberOfImageGalleryGridColumns}\n overlayOpacity={overlayOpacity}\n />\n )}\n <AttachmentPicker ref={bottomSheetRef} {...attachmentPickerProps} />\n </ThemeProvider>\n </ImageGalleryProvider>\n </AttachmentPickerProvider>\n </MessageOverlayProvider>\n </OverlayContext.Provider>\n </TranslationProvider>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["OverlayProvider.tsx"],"names":["OverlayProvider","props","AttachmentPickerBottomSheetHandle","DefaultAttachmentPickerBottomSheetHandle","attachmentPickerBottomSheetHandleHeight","attachmentPickerBottomSheetHeight","AttachmentPickerError","DefaultAttachmentPickerError","attachmentPickerErrorButtonText","AttachmentPickerErrorImage","DefaultAttachmentPickerErrorImage","attachmentPickerErrorText","attachmentSelectionBarHeight","bottomInset","CameraSelectorIcon","DefaultCameraSelectorIcon","children","closePicker","ref","current","close","FileSelectorIcon","DefaultFileSelectorIcon","giphyVersion","i18nInstance","imageGalleryCustomComponents","imageGalleryGridHandleHeight","imageGalleryGridSnapPoints","ImageOverlaySelectedComponent","DefaultImageOverlaySelectedComponent","ImageSelectorIcon","DefaultImageSelectorIcon","MessageActionList","MessageActionListItem","messageTextNumberOfLines","numberOfAttachmentImagesToLoadPerCall","numberOfAttachmentPickerImageColumns","numberOfImageGalleryGridColumns","openPicker","snapToIndex","console","warn","topInset","translucentStatusBar","OverlayReactionList","OverlayReactions","OverlayReactionsAvatar","value","attachmentPickerProps","bottomSheetRef","t","key","tDateTimeParser","input","translators","setTranslators","overlay","setOverlay","overlayOpacity","Dimensions","get","height","width","loadingTranslators","backAction","backHandler","BackHandler","addEventListener","remove","attachmentPickerContext","overlayStyle","opacity","overlayContext","style","StyleSheet","absoluteFill"],"mappings":"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","sourcesContent":["import React, { PropsWithChildren, useEffect, useRef, useState } from 'react';\n\nimport { BackHandler, Dimensions, StyleSheet, ViewStyle } from 'react-native';\n\nimport Animated, {\n cancelAnimation,\n useAnimatedStyle,\n useSharedValue,\n withTiming,\n} from 'react-native-reanimated';\n\nimport type BottomSheet from '@gorhom/bottom-sheet';\nimport Dayjs from 'dayjs';\n\nimport { OverlayContext, OverlayProviderProps } from './OverlayContext';\n\nimport { AttachmentPicker } from '../../components/AttachmentPicker/AttachmentPicker';\n\nimport { AttachmentPickerBottomSheetHandle as DefaultAttachmentPickerBottomSheetHandle } from '../../components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle';\nimport { AttachmentPickerError as DefaultAttachmentPickerError } from '../../components/AttachmentPicker/components/AttachmentPickerError';\nimport { AttachmentPickerErrorImage as DefaultAttachmentPickerErrorImage } from '../../components/AttachmentPicker/components/AttachmentPickerErrorImage';\nimport { CameraSelectorIcon as DefaultCameraSelectorIcon } from '../../components/AttachmentPicker/components/CameraSelectorIcon';\nimport { FileSelectorIcon as DefaultFileSelectorIcon } from '../../components/AttachmentPicker/components/FileSelectorIcon';\nimport { ImageOverlaySelectedComponent as DefaultImageOverlaySelectedComponent } from '../../components/AttachmentPicker/components/ImageOverlaySelectedComponent';\nimport { ImageSelectorIcon as DefaultImageSelectorIcon } from '../../components/AttachmentPicker/components/ImageSelectorIcon';\nimport { ImageGallery } from '../../components/ImageGallery/ImageGallery';\nimport { MessageOverlay } from '../../components/MessageOverlay/MessageOverlay';\nimport { OverlayBackdrop } from '../../components/MessageOverlay/OverlayBackdrop';\nimport { ChannelsStateProvider } from '../../contexts/channelsStateContext/ChannelsStateContext';\nimport { useStreami18n } from '../../hooks/useStreami18n';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { AttachmentPickerProvider } from '../attachmentPickerContext/AttachmentPickerContext';\nimport { ImageGalleryProvider } from '../imageGalleryContext/ImageGalleryContext';\nimport { MessageOverlayProvider } from '../messageOverlayContext/MessageOverlayContext';\nimport { ThemeProvider } from '../themeContext/ThemeContext';\nimport {\n TranslationContextValue,\n TranslationProvider,\n} from '../translationContext/TranslationContext';\n\n/**\n * - The highest level of these components is the `OverlayProvider`. The `OverlayProvider` allows users to interact with messages on long press above the underlying views, use the full screen image viewer, and use the `AttachmentPicker` as a keyboard-esk view.\n * Because these views must exist above all others `OverlayProvider` should wrap your navigation stack as well. Assuming [`React Navigation`](https://reactnavigation.org/) is being used, your highest level navigation stack should be wrapped in the provider:\n *\n * ```js\n * <NavigationContainer>\n * <OverlayProvider>\n * <Stack.Navigator>\n * <Stack.Screen />\n * </Stack.Navigator>\n * </OverlayProvider>\n * </NavigationContainer>\n * ```\n *\n * - Don't forget to check our cookbook section of [OverlayProvider](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#overlayprovider)\n *\n * - Also check the [visual component guide](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#custom-components), to learn about component customizations.\n *\n * @example ./OverlayProvider.md\n */\nexport const OverlayProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: PropsWithChildren<OverlayProviderProps<StreamChatGenerics>>,\n) => {\n const {\n AttachmentPickerBottomSheetHandle = DefaultAttachmentPickerBottomSheetHandle,\n attachmentPickerBottomSheetHandleHeight,\n attachmentPickerBottomSheetHeight,\n AttachmentPickerError = DefaultAttachmentPickerError,\n attachmentPickerErrorButtonText,\n AttachmentPickerErrorImage = DefaultAttachmentPickerErrorImage,\n attachmentPickerErrorText,\n attachmentSelectionBarHeight,\n bottomInset,\n CameraSelectorIcon = DefaultCameraSelectorIcon,\n children,\n closePicker = (ref) => {\n if (ref.current) {\n ref.current.close();\n }\n },\n FileSelectorIcon = DefaultFileSelectorIcon,\n giphyVersion,\n i18nInstance,\n imageGalleryCustomComponents,\n imageGalleryGridHandleHeight,\n imageGalleryGridSnapPoints,\n ImageOverlaySelectedComponent = DefaultImageOverlaySelectedComponent,\n ImageSelectorIcon = DefaultImageSelectorIcon,\n MessageActionList,\n MessageActionListItem,\n messageTextNumberOfLines,\n numberOfAttachmentImagesToLoadPerCall,\n numberOfAttachmentPickerImageColumns,\n numberOfImageGalleryGridColumns,\n openPicker = (ref) => {\n if (ref.current?.snapToIndex) {\n ref.current.snapToIndex(0);\n } else {\n console.warn('bottom and top insets must be set for the image picker to work correctly');\n }\n },\n topInset,\n translucentStatusBar,\n OverlayReactionList,\n OverlayReactions,\n OverlayReactionsAvatar,\n value,\n } = props;\n\n const attachmentPickerProps = {\n AttachmentPickerBottomSheetHandle,\n attachmentPickerBottomSheetHandleHeight,\n attachmentPickerBottomSheetHeight,\n AttachmentPickerError,\n attachmentPickerErrorButtonText,\n AttachmentPickerErrorImage,\n attachmentPickerErrorText,\n attachmentSelectionBarHeight,\n ImageOverlaySelectedComponent,\n numberOfAttachmentImagesToLoadPerCall,\n numberOfAttachmentPickerImageColumns,\n translucentStatusBar,\n };\n\n const bottomSheetRef = useRef<BottomSheet>(null);\n\n const [translators, setTranslators] = useState<TranslationContextValue>({\n t: (key: string) => key,\n tDateTimeParser: (input?: string | number | Date) => Dayjs(input),\n });\n const [overlay, setOverlay] = useState(value?.overlay || 'none');\n\n const overlayOpacity = useSharedValue(0);\n const { height, width } = Dimensions.get('screen');\n\n // Setup translators\n const loadingTranslators = useStreami18n({ i18nInstance, setTranslators });\n\n useEffect(() => {\n const backAction = () => {\n if (overlay !== 'none') {\n setOverlay('none');\n return true;\n }\n\n return false;\n };\n\n const backHandler = BackHandler.addEventListener('hardwareBackPress', backAction);\n\n return () => backHandler.remove();\n }, [overlay]);\n\n useEffect(() => {\n if (bottomSheetRef.current) {\n bottomSheetRef.current.close?.();\n }\n cancelAnimation(overlayOpacity);\n if (overlay !== 'none') {\n overlayOpacity.value = withTiming(1);\n } else {\n overlayOpacity.value = withTiming(0);\n }\n }, [overlay]);\n\n // Setup translators\n useStreami18n({ i18nInstance, setTranslators });\n\n const attachmentPickerContext = {\n attachmentPickerBottomSheetHeight,\n attachmentSelectionBarHeight,\n bottomInset,\n CameraSelectorIcon,\n closePicker: () => closePicker(bottomSheetRef),\n FileSelectorIcon,\n ImageSelectorIcon,\n openPicker: () => openPicker(bottomSheetRef),\n topInset,\n };\n\n const overlayStyle = useAnimatedStyle<ViewStyle>(\n () => ({\n opacity: overlayOpacity.value,\n }),\n [],\n );\n\n const overlayContext = {\n overlay,\n setOverlay,\n style: value?.style,\n translucentStatusBar,\n };\n\n if (loadingTranslators) return null;\n\n return (\n <TranslationProvider value={translators}>\n <OverlayContext.Provider value={overlayContext}>\n <MessageOverlayProvider<StreamChatGenerics>>\n <AttachmentPickerProvider value={attachmentPickerContext}>\n <ImageGalleryProvider>\n <ChannelsStateProvider<StreamChatGenerics>>{children}</ChannelsStateProvider>\n <ThemeProvider style={overlayContext.style}>\n <Animated.View\n pointerEvents={overlay === 'none' ? 'none' : 'auto'}\n style={[StyleSheet.absoluteFill, overlayStyle]}\n >\n <OverlayBackdrop style={[StyleSheet.absoluteFill, { height, width }]} />\n </Animated.View>\n {overlay === 'message' && (\n <MessageOverlay<StreamChatGenerics>\n MessageActionList={MessageActionList}\n MessageActionListItem={MessageActionListItem}\n messageTextNumberOfLines={messageTextNumberOfLines}\n overlayOpacity={overlayOpacity}\n OverlayReactionList={OverlayReactionList}\n OverlayReactions={OverlayReactions}\n OverlayReactionsAvatar={OverlayReactionsAvatar}\n />\n )}\n {overlay === 'gallery' && (\n <ImageGallery<StreamChatGenerics>\n giphyVersion={giphyVersion}\n imageGalleryCustomComponents={imageGalleryCustomComponents}\n imageGalleryGridHandleHeight={imageGalleryGridHandleHeight}\n imageGalleryGridSnapPoints={imageGalleryGridSnapPoints}\n numberOfImageGalleryGridColumns={numberOfImageGalleryGridColumns}\n overlayOpacity={overlayOpacity}\n />\n )}\n <AttachmentPicker ref={bottomSheetRef} {...attachmentPickerProps} />\n </ThemeProvider>\n </ImageGalleryProvider>\n </AttachmentPickerProvider>\n </MessageOverlayProvider>\n </OverlayContext.Provider>\n </TranslationProvider>\n );\n};\n"]}
|
|
@@ -7,6 +7,10 @@ exports.useOwnCapabilitiesContext = exports.allOwnCapabilities = exports.OwnCapa
|
|
|
7
7
|
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
|
|
10
|
+
var _defaultBaseContextValue = require("../utils/defaultBaseContextValue");
|
|
11
|
+
|
|
12
|
+
var _isTestEnvironment = require("../utils/isTestEnvironment");
|
|
13
|
+
|
|
10
14
|
var _this = this,
|
|
11
15
|
_jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.tsx";
|
|
12
16
|
|
|
@@ -33,7 +37,7 @@ var allOwnCapabilities = {
|
|
|
33
37
|
};
|
|
34
38
|
exports.allOwnCapabilities = allOwnCapabilities;
|
|
35
39
|
|
|
36
|
-
var OwnCapabilitiesContext = _react["default"].createContext(
|
|
40
|
+
var OwnCapabilitiesContext = _react["default"].createContext(_defaultBaseContextValue.DEFAULT_BASE_CONTEXT_VALUE);
|
|
37
41
|
|
|
38
42
|
exports.OwnCapabilitiesContext = OwnCapabilitiesContext;
|
|
39
43
|
|
|
@@ -45,7 +49,7 @@ var OwnCapabilitiesProvider = function OwnCapabilitiesProvider(_ref) {
|
|
|
45
49
|
__self: _this,
|
|
46
50
|
__source: {
|
|
47
51
|
fileName: _jsxFileName,
|
|
48
|
-
lineNumber:
|
|
52
|
+
lineNumber: 38,
|
|
49
53
|
columnNumber: 3
|
|
50
54
|
}
|
|
51
55
|
}, children);
|
|
@@ -54,7 +58,13 @@ var OwnCapabilitiesProvider = function OwnCapabilitiesProvider(_ref) {
|
|
|
54
58
|
exports.OwnCapabilitiesProvider = OwnCapabilitiesProvider;
|
|
55
59
|
|
|
56
60
|
var useOwnCapabilitiesContext = function useOwnCapabilitiesContext() {
|
|
57
|
-
|
|
61
|
+
var contextValue = (0, _react.useContext)(OwnCapabilitiesContext);
|
|
62
|
+
|
|
63
|
+
if (contextValue === _defaultBaseContextValue.DEFAULT_BASE_CONTEXT_VALUE && !(0, _isTestEnvironment.isTestEnvironment)()) {
|
|
64
|
+
throw new Error("The useOwnCapabilitiesContext hook was called outside the Channel Component. Make sure you have configured Channel component correctly - https://getstream.io/chat/docs/sdk/reactnative/basics/hello_stream_chat/#channel");
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return contextValue;
|
|
58
68
|
};
|
|
59
69
|
|
|
60
70
|
exports.useOwnCapabilitiesContext = useOwnCapabilitiesContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["OwnCapabilitiesContext.tsx"],"names":["allOwnCapabilities","banChannelMembers","deleteAnyMessage","deleteOwnMessage","flagMessage","pinMessage","quoteMessage","readEvents","sendLinks","sendMessage","sendReaction","sendReply","sendTypingEvents","updateAnyMessage","updateOwnMessage","uploadFile","OwnCapabilitiesContext","React","createContext","OwnCapabilitiesProvider","children","value","useOwnCapabilitiesContext"],"mappings":";;;;;;;AAAA;;;;;;;;;AAEO,IAAMA,kBAAkB,GAAG;AAChCC,EAAAA,iBAAiB,EAAE,qBADa;AAEhCC,EAAAA,gBAAgB,EAAE,oBAFc;AAGhCC,EAAAA,gBAAgB,EAAE,oBAHc;AAIhCC,EAAAA,WAAW,EAAE,cAJmB;AAKhCC,EAAAA,UAAU,EAAE,aALoB;AAMhCC,EAAAA,YAAY,EAAE,eANkB;AAOhCC,EAAAA,UAAU,EAAE,aAPoB;AAQhCC,EAAAA,SAAS,EAAE,YARqB;AAShCC,EAAAA,WAAW,EAAE,cATmB;AAUhCC,EAAAA,YAAY,EAAE,eAVkB;AAWhCC,EAAAA,SAAS,EAAE,YAXqB;AAYhCC,EAAAA,gBAAgB,EAAE,oBAZc;AAahCC,EAAAA,gBAAgB,EAAE,oBAbc;AAchCC,EAAAA,gBAAgB,EAAE,oBAdc;AAehCC,EAAAA,UAAU,EAAE;AAfoB,CAA3B;;;AAqBA,IAAMC,sBAAsB,GAAGC,kBAAMC,aAAN,
|
|
1
|
+
{"version":3,"sources":["OwnCapabilitiesContext.tsx"],"names":["allOwnCapabilities","banChannelMembers","deleteAnyMessage","deleteOwnMessage","flagMessage","pinMessage","quoteMessage","readEvents","sendLinks","sendMessage","sendReaction","sendReply","sendTypingEvents","updateAnyMessage","updateOwnMessage","uploadFile","OwnCapabilitiesContext","React","createContext","DEFAULT_BASE_CONTEXT_VALUE","OwnCapabilitiesProvider","children","value","useOwnCapabilitiesContext","contextValue","Error"],"mappings":";;;;;;;AAAA;;AAEA;;AAEA;;;;;;;;;AAEO,IAAMA,kBAAkB,GAAG;AAChCC,EAAAA,iBAAiB,EAAE,qBADa;AAEhCC,EAAAA,gBAAgB,EAAE,oBAFc;AAGhCC,EAAAA,gBAAgB,EAAE,oBAHc;AAIhCC,EAAAA,WAAW,EAAE,cAJmB;AAKhCC,EAAAA,UAAU,EAAE,aALoB;AAMhCC,EAAAA,YAAY,EAAE,eANkB;AAOhCC,EAAAA,UAAU,EAAE,aAPoB;AAQhCC,EAAAA,SAAS,EAAE,YARqB;AAShCC,EAAAA,WAAW,EAAE,cATmB;AAUhCC,EAAAA,YAAY,EAAE,eAVkB;AAWhCC,EAAAA,SAAS,EAAE,YAXqB;AAYhCC,EAAAA,gBAAgB,EAAE,oBAZc;AAahCC,EAAAA,gBAAgB,EAAE,oBAbc;AAchCC,EAAAA,gBAAgB,EAAE,oBAdc;AAehCC,EAAAA,UAAU,EAAE;AAfoB,CAA3B;;;AAqBA,IAAMC,sBAAsB,GAAGC,kBAAMC,aAAN,CACpCC,mDADoC,CAA/B;;;;AAIA,IAAMC,uBAAuB,GAAG,SAA1BA,uBAA0B;AAAA,MACrCC,QADqC,QACrCA,QADqC;AAAA,MAErCC,KAFqC,QAErCA,KAFqC;AAAA,SAMrC,gCAAC,sBAAD,CAAwB,QAAxB;AAAiC,IAAA,KAAK,EAAEA,KAAxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGD,QADH,CANqC;AAAA,CAAhC;;;;AAWA,IAAME,yBAAyB,GAAG,SAA5BA,yBAA4B,GAAM;AAC7C,MAAMC,YAAY,GAAG,uBAAWR,sBAAX,CAArB;;AAEA,MAAIQ,YAAY,KAAKL,mDAAjB,IAA+C,CAAC,2CAApD,EAAyE;AACvE,UAAM,IAAIM,KAAJ,6NAAN;AAGD;;AAED,SAAOD,YAAP;AACD,CAVM","sourcesContent":["import React, { PropsWithChildren, useContext } from 'react';\n\nimport { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';\n\nimport { isTestEnvironment } from '../utils/isTestEnvironment';\n\nexport const allOwnCapabilities = {\n banChannelMembers: 'ban-channel-members',\n deleteAnyMessage: 'delete-any-message',\n deleteOwnMessage: 'delete-own-message',\n flagMessage: 'flag-message',\n pinMessage: 'pin-message',\n quoteMessage: 'quote-message',\n readEvents: 'read-events',\n sendLinks: 'send-links',\n sendMessage: 'send-message',\n sendReaction: 'send-reaction',\n sendReply: 'send-reply',\n sendTypingEvents: 'send-typing-events',\n updateAnyMessage: 'update-any-message',\n updateOwnMessage: 'update-own-message',\n uploadFile: 'upload-file',\n};\n\nexport type OwnCapability = keyof typeof allOwnCapabilities;\n\nexport type OwnCapabilitiesContextValue = Record<OwnCapability, boolean>;\nexport const OwnCapabilitiesContext = React.createContext(\n DEFAULT_BASE_CONTEXT_VALUE as OwnCapabilitiesContextValue,\n);\n\nexport const OwnCapabilitiesProvider = ({\n children,\n value,\n}: PropsWithChildren<{\n value: OwnCapabilitiesContextValue;\n}>) => (\n <OwnCapabilitiesContext.Provider value={value as unknown as OwnCapabilitiesContextValue}>\n {children}\n </OwnCapabilitiesContext.Provider>\n);\n\nexport const useOwnCapabilitiesContext = () => {\n const contextValue = useContext(OwnCapabilitiesContext);\n\n if (contextValue === DEFAULT_BASE_CONTEXT_VALUE && !isTestEnvironment()) {\n throw new Error(\n `The useOwnCapabilitiesContext hook was called outside the Channel Component. 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"]}
|
|
@@ -11,8 +11,12 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
11
11
|
|
|
12
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
13
|
|
|
14
|
+
var _defaultBaseContextValue = require("../utils/defaultBaseContextValue");
|
|
15
|
+
|
|
14
16
|
var _getDisplayName = require("../utils/getDisplayName");
|
|
15
17
|
|
|
18
|
+
var _isTestEnvironment = require("../utils/isTestEnvironment");
|
|
19
|
+
|
|
16
20
|
var _this = this,
|
|
17
21
|
_jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/contexts/paginatedMessageListContext/PaginatedMessageListContext.tsx";
|
|
18
22
|
|
|
@@ -20,7 +24,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
20
24
|
|
|
21
25
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
22
26
|
|
|
23
|
-
var PaginatedMessageListContext = _react["default"].createContext(
|
|
27
|
+
var PaginatedMessageListContext = _react["default"].createContext(_defaultBaseContextValue.DEFAULT_BASE_CONTEXT_VALUE);
|
|
24
28
|
|
|
25
29
|
exports.PaginatedMessageListContext = PaginatedMessageListContext;
|
|
26
30
|
|
|
@@ -32,7 +36,7 @@ var PaginatedMessageListProvider = function PaginatedMessageListProvider(_ref) {
|
|
|
32
36
|
__self: _this,
|
|
33
37
|
__source: {
|
|
34
38
|
fileName: _jsxFileName,
|
|
35
|
-
lineNumber:
|
|
39
|
+
lineNumber: 60,
|
|
36
40
|
columnNumber: 3
|
|
37
41
|
}
|
|
38
42
|
}, children);
|
|
@@ -41,7 +45,13 @@ var PaginatedMessageListProvider = function PaginatedMessageListProvider(_ref) {
|
|
|
41
45
|
exports.PaginatedMessageListProvider = PaginatedMessageListProvider;
|
|
42
46
|
|
|
43
47
|
var usePaginatedMessageListContext = function usePaginatedMessageListContext() {
|
|
44
|
-
|
|
48
|
+
var contextValue = (0, _react.useContext)(PaginatedMessageListContext);
|
|
49
|
+
|
|
50
|
+
if (contextValue === _defaultBaseContextValue.DEFAULT_BASE_CONTEXT_VALUE && !(0, _isTestEnvironment.isTestEnvironment)()) {
|
|
51
|
+
throw new Error("The usePaginatedMessageListContext hook was called outside of the PaginatedMessageList provider. Make sure you have configured Channel component correctly - https://getstream.io/chat/docs/sdk/reactnative/basics/hello_stream_chat/#channel");
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return contextValue;
|
|
45
55
|
};
|
|
46
56
|
|
|
47
57
|
exports.usePaginatedMessageListContext = usePaginatedMessageListContext;
|
|
@@ -53,7 +63,7 @@ var withPaginatedMessageListContext = function withPaginatedMessageListContext(C
|
|
|
53
63
|
__self: _this,
|
|
54
64
|
__source: {
|
|
55
65
|
fileName: _jsxFileName,
|
|
56
|
-
lineNumber:
|
|
66
|
+
lineNumber: 99,
|
|
57
67
|
columnNumber: 12
|
|
58
68
|
}
|
|
59
69
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["PaginatedMessageListContext.tsx"],"names":["PaginatedMessageListContext","React","createContext","PaginatedMessageListProvider","children","value","usePaginatedMessageListContext","withPaginatedMessageListContext","Component","WithPaginatedMessageListContextComponent","props","paginatedMessageListContext","displayName"],"mappings":";;;;;;;;;;;AAAA;;AAKA;;;;;;;;;AAuCO,IAAMA,2BAA2B,GAAGC,kBAAMC,aAAN,
|
|
1
|
+
{"version":3,"sources":["PaginatedMessageListContext.tsx"],"names":["PaginatedMessageListContext","React","createContext","DEFAULT_BASE_CONTEXT_VALUE","PaginatedMessageListProvider","children","value","usePaginatedMessageListContext","contextValue","Error","withPaginatedMessageListContext","Component","WithPaginatedMessageListContextComponent","props","paginatedMessageListContext","displayName"],"mappings":";;;;;;;;;;;AAAA;;AAKA;;AAEA;;AACA;;;;;;;;;AAuCO,IAAMA,2BAA2B,GAAGC,kBAAMC,aAAN,CACzCC,mDADyC,CAApC;;;;AAIA,IAAMC,4BAA4B,GAAG,SAA/BA,4BAA+B;AAAA,MAG1CC,QAH0C,QAG1CA,QAH0C;AAAA,MAI1CC,KAJ0C,QAI1CA,KAJ0C;AAAA,SAQ1C,gCAAC,2BAAD,CAA6B,QAA7B;AACE,IAAA,KAAK,EAAEA,KADT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAGGD,QAHH,CAR0C;AAAA,CAArC;;;;AAeA,IAAME,8BAA8B,GAAG,SAAjCA,8BAAiC,GAEvC;AACL,MAAMC,YAAY,GAAG,uBACnBR,2BADmB,CAArB;;AAIA,MAAIQ,YAAY,KAAKL,mDAAjB,IAA+C,CAAC,2CAApD,EAAyE;AACvE,UAAM,IAAIM,KAAJ,iPAAN;AAGD;;AAED,SAAOD,YAAP;AACD,CAdM;;;;AAqBA,IAAME,+BAA+B,GAAG,SAAlCA,+BAAkC,CAI7CC,SAJ6C,EAKqC;AAClF,MAAMC,wCAAwC,GAAG,SAA3CA,wCAA2C,CAC/CC,KAD+C,EAE5C;AACH,QAAMC,2BAA2B,GAAGP,8BAA8B,EAAlE;AAEA,WAAO,gCAAC,SAAD,gCAAgBM,KAAhB,EAAiCC,2BAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAP;AACD,GAND;;AAOAF,EAAAA,wCAAwC,CAACG,WAAzC,uCAAyF,oCACvFJ,SADuF,CAAzF;AAGA,SAAOC,wCAAP;AACD,CAjBM","sourcesContent":["import React, { PropsWithChildren, useContext } from 'react';\n\nimport type { ChannelState } from 'stream-chat';\n\nimport type { DefaultStreamChatGenerics, UnknownType } from '../../types/types';\nimport { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';\n\nimport { getDisplayName } from '../utils/getDisplayName';\nimport { isTestEnvironment } from '../utils/isTestEnvironment';\n\nexport type PaginatedMessageListContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /**\n * Has more messages to load\n */\n hasMore: boolean;\n /**\n * Is loading more messages\n */\n loadingMore: boolean;\n /**\n * Is loading more recent messages\n */\n loadingMoreRecent: boolean;\n /**\n * Load more messages\n */\n loadMore: (limit?: number) => Promise<void>;\n /**\n * Load more recent messages\n */\n loadMoreRecent: (limit?: number) => Promise<void>;\n /**\n * Messages from client state\n */\n messages: ChannelState<StreamChatGenerics>['messages'];\n /**\n * Set loadingMore\n */\n setLoadingMore: React.Dispatch<React.SetStateAction<boolean>>;\n /**\n * Set loadingMoreRecent\n */\n setLoadingMoreRecent: React.Dispatch<React.SetStateAction<boolean>>;\n};\n\nexport const PaginatedMessageListContext = React.createContext(\n DEFAULT_BASE_CONTEXT_VALUE as PaginatedMessageListContextValue,\n);\n\nexport const PaginatedMessageListProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n children,\n value,\n}: PropsWithChildren<{\n value?: PaginatedMessageListContextValue<StreamChatGenerics>;\n}>) => (\n <PaginatedMessageListContext.Provider\n value={value as unknown as PaginatedMessageListContextValue}\n >\n {children}\n </PaginatedMessageListContext.Provider>\n);\n\nexport const usePaginatedMessageListContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => {\n const contextValue = useContext(\n PaginatedMessageListContext,\n ) as unknown as PaginatedMessageListContextValue<StreamChatGenerics>;\n\n if (contextValue === DEFAULT_BASE_CONTEXT_VALUE && !isTestEnvironment()) {\n throw new Error(\n `The usePaginatedMessageListContext hook was called outside of the PaginatedMessageList 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 MessageListContextValue\n * typing is desired while using the HOC withMessageListContext the Props for the\n * wrapped component must be provided as the first generic.\n */\nexport const withPaginatedMessageListContext = <\n P extends UnknownType,\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n Component: React.ComponentType<P>,\n): React.FC<Omit<P, keyof PaginatedMessageListContextValue<StreamChatGenerics>>> => {\n const WithPaginatedMessageListContextComponent = (\n props: Omit<P, keyof PaginatedMessageListContextValue<StreamChatGenerics>>,\n ) => {\n const paginatedMessageListContext = usePaginatedMessageListContext<StreamChatGenerics>();\n\n return <Component {...(props as P)} {...paginatedMessageListContext} />;\n };\n WithPaginatedMessageListContextComponent.displayName = `WithPaginatedMessageListContext${getDisplayName(\n Component,\n )}`;\n return WithPaginatedMessageListContextComponent;\n};\n"]}
|
|
@@ -13,8 +13,12 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
|
|
|
13
13
|
|
|
14
14
|
var _react = _interopRequireWildcard(require("react"));
|
|
15
15
|
|
|
16
|
+
var _defaultBaseContextValue = require("../utils/defaultBaseContextValue");
|
|
17
|
+
|
|
16
18
|
var _getDisplayName = require("../utils/getDisplayName");
|
|
17
19
|
|
|
20
|
+
var _isTestEnvironment = require("../utils/isTestEnvironment");
|
|
21
|
+
|
|
18
22
|
var _this = this,
|
|
19
23
|
_jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/contexts/suggestionsContext/SuggestionsContext.tsx";
|
|
20
24
|
|
|
@@ -40,7 +44,7 @@ var isSuggestionUser = function isSuggestionUser(suggestion) {
|
|
|
40
44
|
|
|
41
45
|
exports.isSuggestionUser = isSuggestionUser;
|
|
42
46
|
|
|
43
|
-
var SuggestionsContext = _react["default"].createContext(
|
|
47
|
+
var SuggestionsContext = _react["default"].createContext(_defaultBaseContextValue.DEFAULT_BASE_CONTEXT_VALUE);
|
|
44
48
|
|
|
45
49
|
exports.SuggestionsContext = SuggestionsContext;
|
|
46
50
|
|
|
@@ -92,7 +96,7 @@ var SuggestionsProvider = function SuggestionsProvider(_ref) {
|
|
|
92
96
|
__self: _this,
|
|
93
97
|
__source: {
|
|
94
98
|
fileName: _jsxFileName,
|
|
95
|
-
lineNumber:
|
|
99
|
+
lineNumber: 130,
|
|
96
100
|
columnNumber: 5
|
|
97
101
|
}
|
|
98
102
|
}, children);
|
|
@@ -101,7 +105,13 @@ var SuggestionsProvider = function SuggestionsProvider(_ref) {
|
|
|
101
105
|
exports.SuggestionsProvider = SuggestionsProvider;
|
|
102
106
|
|
|
103
107
|
var useSuggestionsContext = function useSuggestionsContext() {
|
|
104
|
-
|
|
108
|
+
var contextValue = (0, _react.useContext)(SuggestionsContext);
|
|
109
|
+
|
|
110
|
+
if (contextValue === _defaultBaseContextValue.DEFAULT_BASE_CONTEXT_VALUE && !(0, _isTestEnvironment.isTestEnvironment)()) {
|
|
111
|
+
throw new Error("The useSuggestionsContext hook was called outside of the SuggestionsContext provider. Make sure you have configured Channel component correctly - https://getstream.io/chat/docs/sdk/reactnative/basics/hello_stream_chat/#channel");
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
return contextValue;
|
|
105
115
|
};
|
|
106
116
|
|
|
107
117
|
exports.useSuggestionsContext = useSuggestionsContext;
|
|
@@ -113,7 +123,7 @@ var withSuggestionsContext = function withSuggestionsContext(Component) {
|
|
|
113
123
|
__self: _this,
|
|
114
124
|
__source: {
|
|
115
125
|
fileName: _jsxFileName,
|
|
116
|
-
lineNumber:
|
|
126
|
+
lineNumber: 163,
|
|
117
127
|
columnNumber: 12
|
|
118
128
|
}
|
|
119
129
|
}));
|