stream-chat-react-native-core 4.7.0 → 4.7.1-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/lib/commonjs/components/Attachment/Card.js +61 -21
  2. package/lib/commonjs/components/Attachment/Card.js.map +1 -1
  3. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js +1 -1
  4. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
  5. package/lib/commonjs/components/MessageInput/SendMessageDisallowedIndicator.js +2 -2
  6. package/lib/commonjs/components/MessageInput/SendMessageDisallowedIndicator.js.map +1 -1
  7. package/lib/commonjs/components/Reply/Reply.js +12 -12
  8. package/lib/commonjs/components/Reply/Reply.js.map +1 -1
  9. package/lib/commonjs/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +2 -2
  10. package/lib/commonjs/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js.map +1 -1
  11. package/lib/commonjs/contexts/attachmentPickerContext/AttachmentPickerContext.js +14 -4
  12. package/lib/commonjs/contexts/attachmentPickerContext/AttachmentPickerContext.js.map +1 -1
  13. package/lib/commonjs/contexts/channelContext/ChannelContext.js +14 -4
  14. package/lib/commonjs/contexts/channelContext/ChannelContext.js.map +1 -1
  15. package/lib/commonjs/contexts/channelsContext/ChannelsContext.js +14 -4
  16. package/lib/commonjs/contexts/channelsContext/ChannelsContext.js.map +1 -1
  17. package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js +15 -9
  18. package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -1
  19. package/lib/commonjs/contexts/chatContext/ChatContext.js +14 -4
  20. package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
  21. package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js +14 -4
  22. package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
  23. package/lib/commonjs/contexts/keyboardContext/KeyboardContext.js +2 -2
  24. package/lib/commonjs/contexts/keyboardContext/KeyboardContext.js.map +1 -1
  25. package/lib/commonjs/contexts/messageContext/MessageContext.js +14 -4
  26. package/lib/commonjs/contexts/messageContext/MessageContext.js.map +1 -1
  27. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +14 -4
  28. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  29. package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js +14 -4
  30. package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
  31. package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.test.js +4 -4
  32. package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.test.js.map +1 -1
  33. package/lib/commonjs/contexts/messagesContext/MessagesContext.js +14 -4
  34. package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
  35. package/lib/commonjs/contexts/overlayContext/OverlayContext.js +13 -3
  36. package/lib/commonjs/contexts/overlayContext/OverlayContext.js.map +1 -1
  37. package/lib/commonjs/contexts/overlayContext/OverlayProvider.js +12 -12
  38. package/lib/commonjs/contexts/overlayContext/OverlayProvider.js.map +1 -1
  39. package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +13 -3
  40. package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js.map +1 -1
  41. package/lib/commonjs/contexts/paginatedMessageListContext/PaginatedMessageListContext.js +14 -4
  42. package/lib/commonjs/contexts/paginatedMessageListContext/PaginatedMessageListContext.js.map +1 -1
  43. package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js +14 -4
  44. package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
  45. package/lib/commonjs/contexts/themeContext/ThemeContext.js +13 -7
  46. package/lib/commonjs/contexts/themeContext/ThemeContext.js.map +1 -1
  47. package/lib/commonjs/contexts/themeContext/utils/theme.js +9 -0
  48. package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
  49. package/lib/commonjs/contexts/threadContext/ThreadContext.js +14 -4
  50. package/lib/commonjs/contexts/threadContext/ThreadContext.js.map +1 -1
  51. package/lib/commonjs/contexts/translationContext/TranslationContext.js +15 -6
  52. package/lib/commonjs/contexts/translationContext/TranslationContext.js.map +1 -1
  53. package/lib/commonjs/contexts/typingContext/TypingContext.js +14 -4
  54. package/lib/commonjs/contexts/typingContext/TypingContext.js.map +1 -1
  55. package/lib/commonjs/contexts/utils/defaultBaseContextValue.js +7 -0
  56. package/lib/commonjs/contexts/utils/defaultBaseContextValue.js.map +1 -0
  57. package/lib/commonjs/contexts/utils/isTestEnvironment.js +11 -0
  58. package/lib/commonjs/contexts/utils/isTestEnvironment.js.map +1 -0
  59. package/lib/commonjs/mock-builders/mock.js +30 -5
  60. package/lib/commonjs/mock-builders/mock.js.map +1 -1
  61. package/lib/commonjs/version.json +1 -1
  62. package/lib/module/components/Attachment/Card.js +61 -21
  63. package/lib/module/components/Attachment/Card.js.map +1 -1
  64. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js +1 -1
  65. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
  66. package/lib/module/components/MessageInput/SendMessageDisallowedIndicator.js +2 -2
  67. package/lib/module/components/MessageInput/SendMessageDisallowedIndicator.js.map +1 -1
  68. package/lib/module/components/Reply/Reply.js +12 -12
  69. package/lib/module/components/Reply/Reply.js.map +1 -1
  70. package/lib/module/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +2 -2
  71. package/lib/module/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js.map +1 -1
  72. package/lib/module/contexts/attachmentPickerContext/AttachmentPickerContext.js +14 -4
  73. package/lib/module/contexts/attachmentPickerContext/AttachmentPickerContext.js.map +1 -1
  74. package/lib/module/contexts/channelContext/ChannelContext.js +14 -4
  75. package/lib/module/contexts/channelContext/ChannelContext.js.map +1 -1
  76. package/lib/module/contexts/channelsContext/ChannelsContext.js +14 -4
  77. package/lib/module/contexts/channelsContext/ChannelsContext.js.map +1 -1
  78. package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js +15 -9
  79. package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -1
  80. package/lib/module/contexts/chatContext/ChatContext.js +14 -4
  81. package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
  82. package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js +14 -4
  83. package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
  84. package/lib/module/contexts/keyboardContext/KeyboardContext.js +2 -2
  85. package/lib/module/contexts/keyboardContext/KeyboardContext.js.map +1 -1
  86. package/lib/module/contexts/messageContext/MessageContext.js +14 -4
  87. package/lib/module/contexts/messageContext/MessageContext.js.map +1 -1
  88. package/lib/module/contexts/messageInputContext/MessageInputContext.js +14 -4
  89. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  90. package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js +14 -4
  91. package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
  92. package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.test.js +4 -4
  93. package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.test.js.map +1 -1
  94. package/lib/module/contexts/messagesContext/MessagesContext.js +14 -4
  95. package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
  96. package/lib/module/contexts/overlayContext/OverlayContext.js +13 -3
  97. package/lib/module/contexts/overlayContext/OverlayContext.js.map +1 -1
  98. package/lib/module/contexts/overlayContext/OverlayProvider.js +12 -12
  99. package/lib/module/contexts/overlayContext/OverlayProvider.js.map +1 -1
  100. package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +13 -3
  101. package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js.map +1 -1
  102. package/lib/module/contexts/paginatedMessageListContext/PaginatedMessageListContext.js +14 -4
  103. package/lib/module/contexts/paginatedMessageListContext/PaginatedMessageListContext.js.map +1 -1
  104. package/lib/module/contexts/suggestionsContext/SuggestionsContext.js +14 -4
  105. package/lib/module/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
  106. package/lib/module/contexts/themeContext/ThemeContext.js +13 -7
  107. package/lib/module/contexts/themeContext/ThemeContext.js.map +1 -1
  108. package/lib/module/contexts/themeContext/utils/theme.js +9 -0
  109. package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
  110. package/lib/module/contexts/threadContext/ThreadContext.js +14 -4
  111. package/lib/module/contexts/threadContext/ThreadContext.js.map +1 -1
  112. package/lib/module/contexts/translationContext/TranslationContext.js +15 -6
  113. package/lib/module/contexts/translationContext/TranslationContext.js.map +1 -1
  114. package/lib/module/contexts/typingContext/TypingContext.js +14 -4
  115. package/lib/module/contexts/typingContext/TypingContext.js.map +1 -1
  116. package/lib/module/contexts/utils/defaultBaseContextValue.js +7 -0
  117. package/lib/module/contexts/utils/defaultBaseContextValue.js.map +1 -0
  118. package/lib/module/contexts/utils/isTestEnvironment.js +11 -0
  119. package/lib/module/contexts/utils/isTestEnvironment.js.map +1 -0
  120. package/lib/module/mock-builders/mock.js +30 -5
  121. package/lib/module/mock-builders/mock.js.map +1 -1
  122. package/lib/module/version.json +1 -1
  123. package/lib/typescript/contexts/__tests__/index.test.d.ts +1 -0
  124. package/lib/typescript/contexts/keyboardContext/KeyboardContext.d.ts +6 -2
  125. package/lib/typescript/contexts/themeContext/ThemeContext.d.ts +5 -2
  126. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +6 -0
  127. package/lib/typescript/contexts/utils/defaultBaseContextValue.d.ts +1 -0
  128. package/lib/typescript/contexts/utils/isTestEnvironment.d.ts +1 -0
  129. package/lib/typescript/mock-builders/mock.d.ts +2 -2
  130. package/package.json +1 -1
  131. package/src/components/Attachment/Card.tsx +29 -6
  132. package/src/components/Attachment/__tests__/Attachment.test.js +0 -14
  133. package/src/components/Attachment/__tests__/Giphy.test.js +9 -5
  134. package/src/components/AutoCompleteInput/AutoCompleteSuggestionList.tsx +1 -0
  135. package/src/components/ImageGallery/components/__tests__/ImageGalleryHeader.test.tsx +5 -3
  136. package/src/components/MessageInput/SendMessageDisallowedIndicator.tsx +1 -0
  137. package/src/components/MessageInput/__tests__/FileUploadPreview.test.js +1 -1
  138. package/src/components/Reply/Reply.tsx +6 -3
  139. package/src/contexts/__tests__/index.test.tsx +103 -0
  140. package/src/contexts/activeChannelsRefContext/ActiveChannelsRefContext.tsx +1 -0
  141. package/src/contexts/attachmentPickerContext/AttachmentPickerContext.tsx +18 -4
  142. package/src/contexts/channelContext/ChannelContext.tsx +18 -2
  143. package/src/contexts/channelsContext/ChannelsContext.tsx +18 -2
  144. package/src/contexts/channelsStateContext/ChannelsStateContext.tsx +19 -10
  145. package/src/contexts/chatContext/ChatContext.tsx +15 -2
  146. package/src/contexts/imageGalleryContext/ImageGalleryContext.tsx +18 -3
  147. package/src/contexts/keyboardContext/KeyboardContext.tsx +2 -1
  148. package/src/contexts/messageContext/MessageContext.tsx +19 -2
  149. package/src/contexts/messageInputContext/MessageInputContext.tsx +20 -2
  150. package/src/contexts/messageOverlayContext/MessageOverlayContext.tsx +19 -3
  151. package/src/contexts/messageOverlayContext/hooks/useResettableState.test.tsx +1 -0
  152. package/src/contexts/messagesContext/MessagesContext.tsx +19 -2
  153. package/src/contexts/overlayContext/OverlayContext.tsx +17 -2
  154. package/src/contexts/overlayContext/OverlayProvider.tsx +1 -0
  155. package/src/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.tsx +18 -3
  156. package/src/contexts/paginatedMessageListContext/PaginatedMessageListContext.tsx +15 -3
  157. package/src/contexts/suggestionsContext/SuggestionsContext.tsx +19 -2
  158. package/src/contexts/suggestionsContext/__tests__/Suggestions.test.js +1 -0
  159. package/src/contexts/themeContext/ThemeContext.tsx +19 -5
  160. package/src/contexts/themeContext/utils/theme.ts +15 -0
  161. package/src/contexts/threadContext/ThreadContext.tsx +16 -2
  162. package/src/contexts/translationContext/TranslationContext.tsx +18 -4
  163. package/src/contexts/typingContext/TypingContext.tsx +17 -2
  164. package/src/contexts/utils/defaultBaseContextValue.ts +1 -0
  165. package/src/contexts/utils/isTestEnvironment.ts +1 -0
  166. package/src/mock-builders/mock.js +16 -3
  167. package/src/version.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["ThreadContext.tsx"],"names":["ThreadContext","React","createContext","ThreadProvider","children","value","useThreadContext","withThreadContext","Component","WithThreadContextComponent","props","threadContext","displayName"],"mappings":";;;;;;;;;;;AAAA;;AAMA;;;;;;;;;AAiBO,IAAMA,aAAa,GAAGC,kBAAMC,aAAN,CAAoB,EAApB,CAAtB;;;;AAEA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB;AAAA,MAG5BC,QAH4B,QAG5BA,QAH4B;AAAA,MAI5BC,KAJ4B,QAI5BA,KAJ4B;AAAA,SAQ5B,gCAAC,aAAD,CAAe,QAAf;AAAwB,IAAA,KAAK,EAAEA,KAA/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGD,QADH,CAR4B;AAAA,CAAvB;;;;AAaA,IAAME,gBAAgB,GAAG,SAAnBA,gBAAmB;AAAA,SAEzB,uBAAWN,aAAX,CAFyB;AAAA,CAAzB;;;;AASA,IAAMO,iBAAiB,GAAG,SAApBA,iBAAoB,CAI/BC,SAJ+B,EAKqC;AACpE,MAAMC,0BAA0B,GAAG,SAA7BA,0BAA6B,CACjCC,KADiC,EAE9B;AACH,QAAMC,aAAa,GAAGL,gBAAgB,EAAtC;AAEA,WAAO,gCAAC,SAAD,gCAAgBI,KAAhB,EAAiCC,aAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAP;AACD,GAND;;AAOAF,EAAAA,0BAA0B,CAACG,WAA3B,yBAA6D,oCAAeJ,SAAf,CAA7D;AACA,SAAOC,0BAAP;AACD,CAfM","sourcesContent":["import React, { PropsWithChildren, useContext } from 'react';\n\nimport type { ChannelState } from 'stream-chat';\n\nimport type { MessageType } from '../../components/MessageList/hooks/useMessageList';\nimport type { DefaultStreamChatGenerics, UnknownType } from '../../types/types';\nimport { getDisplayName } from '../utils/getDisplayName';\n\nexport type ThreadContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n allowThreadMessagesInChannel: boolean;\n closeThread: () => void;\n loadMoreThread: () => Promise<void>;\n openThread: (message: MessageType<StreamChatGenerics>) => void;\n reloadThread: () => void;\n setThreadLoadingMore: React.Dispatch<React.SetStateAction<boolean>>;\n thread: MessageType<StreamChatGenerics> | null;\n threadHasMore: boolean;\n threadLoadingMore: boolean;\n threadMessages: ChannelState<StreamChatGenerics>['threads'][string];\n};\n\nexport const ThreadContext = React.createContext({} as ThreadContextValue);\n\nexport const ThreadProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n children,\n value,\n}: PropsWithChildren<{\n value: ThreadContextValue<StreamChatGenerics>;\n}>) => (\n <ThreadContext.Provider value={value as unknown as ThreadContextValue}>\n {children}\n </ThreadContext.Provider>\n);\n\nexport const useThreadContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => useContext(ThreadContext) as unknown as ThreadContextValue<StreamChatGenerics>;\n\n/**\n * Typescript currently does not support partial inference so if ThreadContext\n * typing is desired while using the HOC withThreadContextContext the Props for the\n * wrapped component must be provided as the first generic.\n */\nexport const withThreadContext = <\n P extends UnknownType,\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n Component: React.ComponentType<P>,\n): React.FC<Omit<P, keyof ThreadContextValue<StreamChatGenerics>>> => {\n const WithThreadContextComponent = (\n props: Omit<P, keyof ThreadContextValue<StreamChatGenerics>>,\n ) => {\n const threadContext = useThreadContext<StreamChatGenerics>();\n\n return <Component {...(props as P)} {...threadContext} />;\n };\n WithThreadContextComponent.displayName = `WithThreadContext${getDisplayName(Component)}`;\n return WithThreadContextComponent;\n};\n"]}
1
+ {"version":3,"sources":["ThreadContext.tsx"],"names":["ThreadContext","React","createContext","DEFAULT_BASE_CONTEXT_VALUE","ThreadProvider","children","value","useThreadContext","contextValue","Error","withThreadContext","Component","WithThreadContextComponent","props","threadContext","displayName"],"mappings":";;;;;;;;;;;AAAA;;AAMA;;AAEA;;AACA;;;;;;;;;AAiBO,IAAMA,aAAa,GAAGC,kBAAMC,aAAN,CAAoBC,mDAApB,CAAtB;;;;AAEA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB;AAAA,MAG5BC,QAH4B,QAG5BA,QAH4B;AAAA,MAI5BC,KAJ4B,QAI5BA,KAJ4B;AAAA,SAQ5B,gCAAC,aAAD,CAAe,QAAf;AAAwB,IAAA,KAAK,EAAEA,KAA/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGD,QADH,CAR4B;AAAA,CAAvB;;;;AAaA,IAAME,gBAAgB,GAAG,SAAnBA,gBAAmB,GAEzB;AACL,MAAMC,YAAY,GAAG,uBACnBR,aADmB,CAArB;;AAIA,MAAIQ,YAAY,KAAKL,mDAAjB,IAA+C,CAAC,2CAApD,EAAyE;AACvE,UAAM,IAAIM,KAAJ,4NAAN;AAGD;;AAED,SAAOD,YAAP;AACD,CAdM;;;;AAoBA,IAAME,iBAAiB,GAAG,SAApBA,iBAAoB,CAI/BC,SAJ+B,EAKqC;AACpE,MAAMC,0BAA0B,GAAG,SAA7BA,0BAA6B,CACjCC,KADiC,EAE9B;AACH,QAAMC,aAAa,GAAGP,gBAAgB,EAAtC;AAEA,WAAO,gCAAC,SAAD,gCAAgBM,KAAhB,EAAiCC,aAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAP;AACD,GAND;;AAOAF,EAAAA,0BAA0B,CAACG,WAA3B,yBAA6D,oCAAeJ,SAAf,CAA7D;AACA,SAAOC,0BAAP;AACD,CAfM","sourcesContent":["import React, { PropsWithChildren, useContext } from 'react';\n\nimport type { ChannelState } from 'stream-chat';\n\nimport type { MessageType } from '../../components/MessageList/hooks/useMessageList';\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 ThreadContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n allowThreadMessagesInChannel: boolean;\n closeThread: () => void;\n loadMoreThread: () => Promise<void>;\n openThread: (message: MessageType<StreamChatGenerics>) => void;\n reloadThread: () => void;\n setThreadLoadingMore: React.Dispatch<React.SetStateAction<boolean>>;\n thread: MessageType<StreamChatGenerics> | null;\n threadHasMore: boolean;\n threadLoadingMore: boolean;\n threadMessages: ChannelState<StreamChatGenerics>['threads'][string];\n};\n\nexport const ThreadContext = React.createContext(DEFAULT_BASE_CONTEXT_VALUE as ThreadContextValue);\n\nexport const ThreadProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n children,\n value,\n}: PropsWithChildren<{\n value: ThreadContextValue<StreamChatGenerics>;\n}>) => (\n <ThreadContext.Provider value={value as unknown as ThreadContextValue}>\n {children}\n </ThreadContext.Provider>\n);\n\nexport const useThreadContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => {\n const contextValue = useContext(\n ThreadContext,\n ) as unknown as ThreadContextValue<StreamChatGenerics>;\n\n if (contextValue === DEFAULT_BASE_CONTEXT_VALUE && !isTestEnvironment()) {\n throw new Error(\n `The useThreadContext hook was called outside of the ThreadContext 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 * Typescript currently does not support partial inference so if ThreadContext\n * typing is desired while using the HOC withThreadContextContext the Props for the\n * wrapped component must be provided as the first generic.\n */\nexport const withThreadContext = <\n P extends UnknownType,\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n Component: React.ComponentType<P>,\n): React.FC<Omit<P, keyof ThreadContextValue<StreamChatGenerics>>> => {\n const WithThreadContextComponent = (\n props: Omit<P, keyof ThreadContextValue<StreamChatGenerics>>,\n ) => {\n const threadContext = useThreadContext<StreamChatGenerics>();\n\n return <Component {...(props as P)} {...threadContext} />;\n };\n WithThreadContextComponent.displayName = `WithThreadContext${getDisplayName(Component)}`;\n return WithThreadContextComponent;\n};\n"]}
@@ -15,6 +15,8 @@ var _dayjs = _interopRequireDefault(require("dayjs"));
15
15
 
16
16
  var _getDisplayName = require("../utils/getDisplayName");
17
17
 
18
+ var _isTestEnvironment = require("../utils/isTestEnvironment");
19
+
18
20
  var _this = this,
19
21
  _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/contexts/translationContext/TranslationContext.tsx";
20
22
 
@@ -27,15 +29,16 @@ var isDayOrMoment = function isDayOrMoment(output) {
27
29
  };
28
30
 
29
31
  exports.isDayOrMoment = isDayOrMoment;
30
-
31
- var TranslationContext = _react["default"].createContext({
32
+ var defaultTranslationContextValue = {
32
33
  t: function t(key) {
33
34
  return key;
34
35
  },
35
36
  tDateTimeParser: function tDateTimeParser(input) {
36
37
  return (0, _dayjs["default"])(input);
37
38
  }
38
- });
39
+ };
40
+
41
+ var TranslationContext = _react["default"].createContext(defaultTranslationContextValue);
39
42
 
40
43
  exports.TranslationContext = TranslationContext;
41
44
 
@@ -47,7 +50,7 @@ var TranslationProvider = function TranslationProvider(_ref) {
47
50
  __self: _this,
48
51
  __source: {
49
52
  fileName: _jsxFileName,
50
- lineNumber: 34,
53
+ lineNumber: 38,
51
54
  columnNumber: 3
52
55
  }
53
56
  }, children);
@@ -56,7 +59,13 @@ var TranslationProvider = function TranslationProvider(_ref) {
56
59
  exports.TranslationProvider = TranslationProvider;
57
60
 
58
61
  var useTranslationContext = function useTranslationContext() {
59
- return (0, _react.useContext)(TranslationContext);
62
+ var contextValue = (0, _react.useContext)(TranslationContext);
63
+
64
+ if (contextValue === defaultTranslationContextValue && !(0, _isTestEnvironment.isTestEnvironment)()) {
65
+ throw new Error("The useTranslationContext hook was called outside the TranslationContext Provider. Make sure you have configured OverlayProvider component correctly - https://getstream.io/chat/docs/sdk/reactnative/basics/hello_stream_chat/#overlay-provider)(https://getstream.io/chat/docs/sdk/reactnative/basics/hello_stream_chat/#overlay-provider");
66
+ }
67
+
68
+ return contextValue;
60
69
  };
61
70
 
62
71
  exports.useTranslationContext = useTranslationContext;
@@ -68,7 +77,7 @@ var withTranslationContext = function withTranslationContext(Component) {
68
77
  __self: _this,
69
78
  __source: {
70
79
  fileName: _jsxFileName,
71
- lineNumber: 49,
80
+ lineNumber: 63,
72
81
  columnNumber: 12
73
82
  }
74
83
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["TranslationContext.tsx"],"names":["isDayOrMoment","output","isSame","TranslationContext","React","createContext","t","key","tDateTimeParser","input","TranslationProvider","children","value","useTranslationContext","withTranslationContext","Component","WithTranslationContextComponent","props","translationContext","displayName"],"mappings":";;;;;;;;;;;AAAA;;AAEA;;AAOA;;;;;;;;;AAEO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAACC,MAAD;AAAA,SAC1BA,MAAD,CAAiCC,MAAjC,IAA2C,IADhB;AAAA,CAAtB;;;;AAcA,IAAMC,kBAAkB,GAAGC,kBAAMC,aAAN,CAA6C;AAC7EC,EAAAA,CAAC,EAAE,WAACC,GAAD;AAAA,WAAiBA,GAAjB;AAAA,GAD0E;AAE7EC,EAAAA,eAAe,EAAE,yBAACC,KAAD;AAAA,WAAW,uBAAMA,KAAN,CAAX;AAAA;AAF4D,CAA7C,CAA3B;;;;AAKA,IAAMC,mBAEX,GAAG,SAFQA,mBAER;AAAA,MAAGC,QAAH,QAAGA,QAAH;AAAA,MAAaC,KAAb,QAAaA,KAAb;AAAA,SACH,gCAAC,kBAAD,CAAoB,QAApB;AAA6B,IAAA,KAAK,EAAEA,KAApC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAA4CD,QAA5C,CADG;AAAA,CAFE;;;;AAMA,IAAME,qBAAqB,GAAG,SAAxBA,qBAAwB;AAAA,SAAM,uBAAWV,kBAAX,CAAN;AAAA,CAA9B;;;;AAEA,IAAMW,sBAAsB,GAAG,SAAzBA,sBAAyB,CAGpCC,SAHoC,EAIkC;AACtE,MAAMC,+BAA+B,GAAG,SAAlCA,+BAAkC,CACtCC,KADsC,EAEnC;AACH,QAAMC,kBAAkB,GAAGL,qBAAqB,EAAhD;AAEA,WAAO,gCAAC,SAAD,gCAAgBI,KAAhB,EAAkDC,kBAAlD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAP;AACD,GAND;;AAOAF,EAAAA,+BAA+B,CAACG,WAAhC,8BAAuE,oCACrEJ,SADqE,CAAvE;AAGA,SAAOC,+BAAP;AACD,CAhBM","sourcesContent":["import React, { useContext } from 'react';\n\nimport Dayjs from 'dayjs';\n\nimport type { TFunction } from 'i18next';\nimport type { Moment } from 'moment';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nimport { getDisplayName } from '../utils/getDisplayName';\n\nexport const isDayOrMoment = (output: TDateTimeParserOutput): output is Dayjs.Dayjs | Moment =>\n (output as Dayjs.Dayjs | Moment).isSame != null;\n\nexport type TDateTimeParserInput = string | number | Date;\n\nexport type TDateTimeParserOutput = string | number | Date | Dayjs.Dayjs | Moment;\n\nexport type TDateTimeParser = (input?: TDateTimeParserInput) => TDateTimeParserOutput;\n\nexport type TranslationContextValue = {\n t: TFunction | ((key: string) => string);\n tDateTimeParser: TDateTimeParser;\n};\n\nexport const TranslationContext = React.createContext<TranslationContextValue>({\n t: (key: string) => key,\n tDateTimeParser: (input) => Dayjs(input),\n});\n\nexport const TranslationProvider: React.FC<{\n value: TranslationContextValue;\n}> = ({ children, value }) => (\n <TranslationContext.Provider value={value}>{children}</TranslationContext.Provider>\n);\n\nexport const useTranslationContext = () => useContext(TranslationContext);\n\nexport const withTranslationContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n Component: React.ComponentType<StreamChatGenerics>,\n): React.FC<Omit<StreamChatGenerics, keyof TranslationContextValue>> => {\n const WithTranslationContextComponent = (\n props: Omit<StreamChatGenerics, keyof TranslationContextValue>,\n ) => {\n const translationContext = useTranslationContext();\n\n return <Component {...(props as StreamChatGenerics)} {...translationContext} />;\n };\n WithTranslationContextComponent.displayName = `WithTranslationContext${getDisplayName(\n Component as React.ComponentType,\n )}`;\n return WithTranslationContextComponent;\n};\n"]}
1
+ {"version":3,"sources":["TranslationContext.tsx"],"names":["isDayOrMoment","output","isSame","defaultTranslationContextValue","t","key","tDateTimeParser","input","TranslationContext","React","createContext","TranslationProvider","children","value","useTranslationContext","contextValue","Error","withTranslationContext","Component","WithTranslationContextComponent","props","translationContext","displayName"],"mappings":";;;;;;;;;;;AAAA;;AAEA;;AAMA;;AACA;;;;;;;;;AAEO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAACC,MAAD;AAAA,SAC1BA,MAAD,CAAiCC,MAAjC,IAA2C,IADhB;AAAA,CAAtB;;;AAcP,IAAMC,8BAAuD,GAAG;AAC9DC,EAAAA,CAAC,EAAE,WAACC,GAAD;AAAA,WAAiBA,GAAjB;AAAA,GAD2D;AAE9DC,EAAAA,eAAe,EAAE,yBAACC,KAAD;AAAA,WAAW,uBAAMA,KAAN,CAAX;AAAA;AAF6C,CAAhE;;AAKO,IAAMC,kBAAkB,GAAGC,kBAAMC,aAAN,CAChCP,8BADgC,CAA3B;;;;AAIA,IAAMQ,mBAEX,GAAG,SAFQA,mBAER;AAAA,MAAGC,QAAH,QAAGA,QAAH;AAAA,MAAaC,KAAb,QAAaA,KAAb;AAAA,SACH,gCAAC,kBAAD,CAAoB,QAApB;AAA6B,IAAA,KAAK,EAAEA,KAApC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAA4CD,QAA5C,CADG;AAAA,CAFE;;;;AAMA,IAAME,qBAAqB,GAAG,SAAxBA,qBAAwB,GAAM;AACzC,MAAMC,YAAY,GAAG,uBAAWP,kBAAX,CAArB;;AAEA,MAAIO,YAAY,KAAKZ,8BAAjB,IAAmD,CAAC,2CAAxD,EAA6E;AAC3E,UAAM,IAAIa,KAAJ,+UAAN;AAGD;;AAED,SAAOD,YAAP;AACD,CAVM;;;;AAYA,IAAME,sBAAsB,GAAG,SAAzBA,sBAAyB,CAGpCC,SAHoC,EAIkC;AACtE,MAAMC,+BAA+B,GAAG,SAAlCA,+BAAkC,CACtCC,KADsC,EAEnC;AACH,QAAMC,kBAAkB,GAAGP,qBAAqB,EAAhD;AAEA,WAAO,gCAAC,SAAD,gCAAgBM,KAAhB,EAAkDC,kBAAlD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAP;AACD,GAND;;AAOAF,EAAAA,+BAA+B,CAACG,WAAhC,8BAAuE,oCACrEJ,SADqE,CAAvE;AAGA,SAAOC,+BAAP;AACD,CAhBM","sourcesContent":["import React, { useContext } from 'react';\n\nimport Dayjs from 'dayjs';\n\nimport type { TFunction } from 'i18next';\nimport type { Moment } from 'moment';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { getDisplayName } from '../utils/getDisplayName';\nimport { isTestEnvironment } from '../utils/isTestEnvironment';\n\nexport const isDayOrMoment = (output: TDateTimeParserOutput): output is Dayjs.Dayjs | Moment =>\n (output as Dayjs.Dayjs | Moment).isSame != null;\n\nexport type TDateTimeParserInput = string | number | Date;\n\nexport type TDateTimeParserOutput = string | number | Date | Dayjs.Dayjs | Moment;\n\nexport type TDateTimeParser = (input?: TDateTimeParserInput) => TDateTimeParserOutput;\n\nexport type TranslationContextValue = {\n t: TFunction | ((key: string) => string);\n tDateTimeParser: TDateTimeParser;\n};\n\nconst defaultTranslationContextValue: TranslationContextValue = {\n t: (key: string) => key,\n tDateTimeParser: (input) => Dayjs(input),\n};\n\nexport const TranslationContext = React.createContext<TranslationContextValue>(\n defaultTranslationContextValue,\n);\n\nexport const TranslationProvider: React.FC<{\n value: TranslationContextValue;\n}> = ({ children, value }) => (\n <TranslationContext.Provider value={value}>{children}</TranslationContext.Provider>\n);\n\nexport const useTranslationContext = () => {\n const contextValue = useContext(TranslationContext);\n\n if (contextValue === defaultTranslationContextValue && !isTestEnvironment()) {\n throw new Error(\n `The useTranslationContext hook was called outside the TranslationContext Provider. Make sure you have configured OverlayProvider component correctly - https://getstream.io/chat/docs/sdk/reactnative/basics/hello_stream_chat/#overlay-provider)(https://getstream.io/chat/docs/sdk/reactnative/basics/hello_stream_chat/#overlay-provider`,\n );\n }\n\n return contextValue;\n};\n\nexport const withTranslationContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n Component: React.ComponentType<StreamChatGenerics>,\n): React.FC<Omit<StreamChatGenerics, keyof TranslationContextValue>> => {\n const WithTranslationContextComponent = (\n props: Omit<StreamChatGenerics, keyof TranslationContextValue>,\n ) => {\n const translationContext = useTranslationContext();\n\n return <Component {...(props as StreamChatGenerics)} {...translationContext} />;\n };\n WithTranslationContextComponent.displayName = `WithTranslationContext${getDisplayName(\n Component as React.ComponentType,\n )}`;\n return WithTranslationContextComponent;\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/typingContext/TypingContext.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 TypingContext = _react["default"].createContext({});
27
+ var TypingContext = _react["default"].createContext(_defaultBaseContextValue.DEFAULT_BASE_CONTEXT_VALUE);
24
28
 
25
29
  exports.TypingContext = TypingContext;
26
30
 
@@ -32,7 +36,7 @@ var TypingProvider = function TypingProvider(_ref) {
32
36
  __self: _this,
33
37
  __source: {
34
38
  fileName: _jsxFileName,
35
- lineNumber: 24,
39
+ lineNumber: 27,
36
40
  columnNumber: 3
37
41
  }
38
42
  }, children);
@@ -41,7 +45,13 @@ var TypingProvider = function TypingProvider(_ref) {
41
45
  exports.TypingProvider = TypingProvider;
42
46
 
43
47
  var useTypingContext = function useTypingContext() {
44
- return (0, _react.useContext)(TypingContext);
48
+ var contextValue = (0, _react.useContext)(TypingContext);
49
+
50
+ if (contextValue === _defaultBaseContextValue.DEFAULT_BASE_CONTEXT_VALUE && !(0, _isTestEnvironment.isTestEnvironment)()) {
51
+ throw new Error("The useTypingContext hook was called outside of the TypingContext 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.useTypingContext = useTypingContext;
@@ -53,7 +63,7 @@ var withTypingContext = function withTypingContext(Component) {
53
63
  __self: _this,
54
64
  __source: {
55
65
  fileName: _jsxFileName,
56
- lineNumber: 49,
66
+ lineNumber: 64,
57
67
  columnNumber: 12
58
68
  }
59
69
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["TypingContext.tsx"],"names":["TypingContext","React","createContext","TypingProvider","children","value","useTypingContext","withTypingContext","Component","WithTypingContextComponent","props","typingContext","displayName"],"mappings":";;;;;;;;;;;AAAA;;AAKA;;;;;;;;;AAQO,IAAMA,aAAa,GAAGC,kBAAMC,aAAN,CAAoB,EAApB,CAAtB;;;;AAEA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB;AAAA,MAG5BC,QAH4B,QAG5BA,QAH4B;AAAA,MAI5BC,KAJ4B,QAI5BA,KAJ4B;AAAA,SAQ5B,gCAAC,aAAD,CAAe,QAAf;AAAwB,IAAA,KAAK,EAAEA,KAA/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGD,QADH,CAR4B;AAAA,CAAvB;;;;AAaA,IAAME,gBAAgB,GAAG,SAAnBA,gBAAmB;AAAA,SAEzB,uBAAWN,aAAX,CAFyB;AAAA,CAAzB;;;;AASA,IAAMO,iBAAiB,GAAG,SAApBA,iBAAoB,CAI/BC,SAJ+B,EAKqC;AACpE,MAAMC,0BAA0B,GAAG,SAA7BA,0BAA6B,CACjCC,KADiC,EAE9B;AACH,QAAMC,aAAa,GAAGL,gBAAgB,EAAtC;AAEA,WAAO,gCAAC,SAAD,gCAAgBI,KAAhB,EAAiCC,aAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAP;AACD,GAND;;AAOAF,EAAAA,0BAA0B,CAACG,WAA3B,yBAA6D,oCAAeJ,SAAf,CAA7D;AACA,SAAOC,0BAAP;AACD,CAfM","sourcesContent":["import React, { PropsWithChildren, useContext } from 'react';\n\nimport type { ChannelState } from 'stream-chat';\n\nimport type { DefaultStreamChatGenerics, UnknownType } from '../../types/types';\nimport { getDisplayName } from '../utils/getDisplayName';\n\nexport type TypingContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n typing: ChannelState<StreamChatGenerics>['typing'];\n};\n\nexport const TypingContext = React.createContext({} as TypingContextValue);\n\nexport const TypingProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n children,\n value,\n}: PropsWithChildren<{\n value: TypingContextValue<StreamChatGenerics>;\n}>) => (\n <TypingContext.Provider value={value as unknown as TypingContextValue}>\n {children}\n </TypingContext.Provider>\n);\n\nexport const useTypingContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => useContext(TypingContext) as unknown as TypingContextValue<StreamChatGenerics>;\n\n/**\n * Typescript currently does not support partial inference so if TypingContext\n * typing is desired while using the HOC withTypingContext the Props for the\n * wrapped component must be provided as the first generic.\n */\nexport const withTypingContext = <\n P extends UnknownType,\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n Component: React.ComponentType<P>,\n): React.FC<Omit<P, keyof TypingContextValue<StreamChatGenerics>>> => {\n const WithTypingContextComponent = (\n props: Omit<P, keyof TypingContextValue<StreamChatGenerics>>,\n ) => {\n const typingContext = useTypingContext<StreamChatGenerics>();\n\n return <Component {...(props as P)} {...typingContext} />;\n };\n WithTypingContextComponent.displayName = `WithTypingContext${getDisplayName(Component)}`;\n return WithTypingContextComponent;\n};\n"]}
1
+ {"version":3,"sources":["TypingContext.tsx"],"names":["TypingContext","React","createContext","DEFAULT_BASE_CONTEXT_VALUE","TypingProvider","children","value","useTypingContext","contextValue","Error","withTypingContext","Component","WithTypingContextComponent","props","typingContext","displayName"],"mappings":";;;;;;;;;;;AAAA;;AAKA;;AAEA;;AACA;;;;;;;;;AAQO,IAAMA,aAAa,GAAGC,kBAAMC,aAAN,CAAoBC,mDAApB,CAAtB;;;;AAEA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB;AAAA,MAG5BC,QAH4B,QAG5BA,QAH4B;AAAA,MAI5BC,KAJ4B,QAI5BA,KAJ4B;AAAA,SAQ5B,gCAAC,aAAD,CAAe,QAAf;AAAwB,IAAA,KAAK,EAAEA,KAA/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGD,QADH,CAR4B;AAAA,CAAvB;;;;AAaA,IAAME,gBAAgB,GAAG,SAAnBA,gBAAmB,GAEzB;AACL,MAAMC,YAAY,GAAG,uBACnBR,aADmB,CAArB;;AAIA,MAAIQ,YAAY,KAAKL,mDAAjB,IAA+C,CAAC,2CAApD,EAAyE;AACvE,UAAM,IAAIM,KAAJ,4NAAN;AAGD;;AAED,SAAOD,YAAP;AACD,CAdM;;;;AAqBA,IAAME,iBAAiB,GAAG,SAApBA,iBAAoB,CAI/BC,SAJ+B,EAKqC;AACpE,MAAMC,0BAA0B,GAAG,SAA7BA,0BAA6B,CACjCC,KADiC,EAE9B;AACH,QAAMC,aAAa,GAAGP,gBAAgB,EAAtC;AAEA,WAAO,gCAAC,SAAD,gCAAgBM,KAAhB,EAAiCC,aAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAP;AACD,GAND;;AAOAF,EAAAA,0BAA0B,CAACG,WAA3B,yBAA6D,oCAAeJ,SAAf,CAA7D;AACA,SAAOC,0BAAP;AACD,CAfM","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 TypingContextValue<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n typing: ChannelState<StreamChatGenerics>['typing'];\n};\n\nexport const TypingContext = React.createContext(DEFAULT_BASE_CONTEXT_VALUE as TypingContextValue);\n\nexport const TypingProvider = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n children,\n value,\n}: PropsWithChildren<{\n value: TypingContextValue<StreamChatGenerics>;\n}>) => (\n <TypingContext.Provider value={value as unknown as TypingContextValue}>\n {children}\n </TypingContext.Provider>\n);\n\nexport const useTypingContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>() => {\n const contextValue = useContext(\n TypingContext,\n ) as unknown as TypingContextValue<StreamChatGenerics>;\n\n if (contextValue === DEFAULT_BASE_CONTEXT_VALUE && !isTestEnvironment()) {\n throw new Error(\n `The useTypingContext hook was called outside of the TypingContext 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 TypingContext\n * typing is desired while using the HOC withTypingContext the Props for the\n * wrapped component must be provided as the first generic.\n */\nexport const withTypingContext = <\n P extends UnknownType,\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n Component: React.ComponentType<P>,\n): React.FC<Omit<P, keyof TypingContextValue<StreamChatGenerics>>> => {\n const WithTypingContextComponent = (\n props: Omit<P, keyof TypingContextValue<StreamChatGenerics>>,\n ) => {\n const typingContext = useTypingContext<StreamChatGenerics>();\n\n return <Component {...(props as P)} {...typingContext} />;\n };\n WithTypingContextComponent.displayName = `WithTypingContext${getDisplayName(Component)}`;\n return WithTypingContextComponent;\n};\n"]}
@@ -0,0 +1,7 @@
1
+ Object.defineProperty(exports, "__esModule", {
2
+ value: true
3
+ });
4
+ exports.DEFAULT_BASE_CONTEXT_VALUE = void 0;
5
+ var DEFAULT_BASE_CONTEXT_VALUE = {};
6
+ exports.DEFAULT_BASE_CONTEXT_VALUE = DEFAULT_BASE_CONTEXT_VALUE;
7
+ //# sourceMappingURL=defaultBaseContextValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["defaultBaseContextValue.ts"],"names":["DEFAULT_BASE_CONTEXT_VALUE"],"mappings":";;;;AAAO,IAAMA,0BAA0B,GAAG,EAAnC","sourcesContent":["export const DEFAULT_BASE_CONTEXT_VALUE = {};\n"]}
@@ -0,0 +1,11 @@
1
+ Object.defineProperty(exports, "__esModule", {
2
+ value: true
3
+ });
4
+ exports.isTestEnvironment = void 0;
5
+
6
+ var isTestEnvironment = function isTestEnvironment() {
7
+ return process.env.NODE_ENV === 'test';
8
+ };
9
+
10
+ exports.isTestEnvironment = isTestEnvironment;
11
+ //# sourceMappingURL=isTestEnvironment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["isTestEnvironment.ts"],"names":["isTestEnvironment","process","env","NODE_ENV"],"mappings":";;;;;AAAO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB;AAAA,SAAMC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,MAA/B;AAAA,CAA1B","sourcesContent":["export const isTestEnvironment = () => process.env.NODE_ENV === 'test';\n"]}
@@ -29,6 +29,9 @@ var setUser = function setUser(client, user) {
29
29
  };
30
30
 
31
31
  function mockClient(client) {
32
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
33
+ var _options$disableAppSe = options.disableAppSettings,
34
+ disableAppSettings = _options$disableAppSe === void 0 ? true : _options$disableAppSe;
32
35
  jest.spyOn(client, '_setToken').mockImplementation();
33
36
  jest.spyOn(client, '_setupConnection').mockImplementation();
34
37
  client.tokenManager = {
@@ -40,31 +43,53 @@ function mockClient(client) {
40
43
  })
41
44
  };
42
45
  client.setUser = setUser.bind(null, client);
46
+
47
+ if (disableAppSettings) {
48
+ client.getAppSettings = jest.fn(function () {
49
+ return {};
50
+ });
51
+ }
52
+
43
53
  return client;
44
54
  }
45
55
 
46
56
  var getTestClient = function getTestClient() {
47
- return mockClient(new _streamChat.StreamChat(apiKey));
57
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
58
+ return mockClient(new _streamChat.StreamChat(apiKey), options);
48
59
  };
49
60
 
50
61
  exports.getTestClient = getTestClient;
51
62
 
52
63
  var getTestClientWithUser = function () {
53
64
  var _ref = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(user) {
54
- var client;
65
+ var options,
66
+ _options$disableAppSe2,
67
+ disableAppSettings,
68
+ client,
69
+ _args = arguments;
70
+
55
71
  return _regenerator["default"].wrap(function _callee$(_context) {
56
72
  while (1) {
57
73
  switch (_context.prev = _context.next) {
58
74
  case 0:
75
+ options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
76
+ _options$disableAppSe2 = options.disableAppSettings, disableAppSettings = _options$disableAppSe2 === void 0 ? true : _options$disableAppSe2;
59
77
  client = mockClient(new _streamChat.StreamChat(apiKey));
60
- _context.next = 3;
78
+ _context.next = 5;
61
79
  return setUser(client, user);
62
80
 
63
- case 3:
81
+ case 5:
64
82
  client.wsPromise = Promise.resolve();
83
+
84
+ if (disableAppSettings) {
85
+ client.getAppSettings = jest.fn(function () {
86
+ return {};
87
+ });
88
+ }
89
+
65
90
  return _context.abrupt("return", client);
66
91
 
67
- case 5:
92
+ case 8:
68
93
  case "end":
69
94
  return _context.stop();
70
95
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["mock.js"],"names":["apiKey","token","setUser","client","user","Promise","resolve","connectionId","mutes","_user","userID","id","userToken","mockClient","jest","spyOn","mockImplementation","tokenManager","getToken","fn","tokenReady","bind","getTestClient","StreamChat","getTestClientWithUser","wsPromise","getRandomInt","min","max","Math","ceil","floor","random"],"mappings":";;;;;;;;;;;;;AAGA;;AAEA,IAAMA,MAAM,GAAG,SAAf;AACA,IAAMC,KAAK,GAAG,aAAd;;AAEA,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAACC,MAAD,EAASC,IAAT;AAAA,SACd,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAAa;AACvBH,IAAAA,MAAM,CAACI,YAAP,GAAsB,oBAAtB;AACAJ,IAAAA,MAAM,CAACC,IAAP,GAAcA,IAAd;AACAD,IAAAA,MAAM,CAACC,IAAP,CAAYI,KAAZ,GAAoB,EAApB;AACAL,IAAAA,MAAM,CAACM,KAAP,iCAAoBL,IAApB;AACAD,IAAAA,MAAM,CAACO,MAAP,GAAgBN,IAAI,CAACO,EAArB;AACAR,IAAAA,MAAM,CAACS,SAAP,GAAmBX,KAAnB;AACAK,IAAAA,OAAO;AACR,GARD,CADc;AAAA,CAAhB;;AAWA,SAASO,UAAT,CAAoBV,MAApB,EAA4B;AAC1BW,EAAAA,IAAI,CAACC,KAAL,CAAWZ,MAAX,EAAmB,WAAnB,EAAgCa,kBAAhC;AACAF,EAAAA,IAAI,CAACC,KAAL,CAAWZ,MAAX,EAAmB,kBAAnB,EAAuCa,kBAAvC;AACAb,EAAAA,MAAM,CAACc,YAAP,GAAsB;AACpBC,IAAAA,QAAQ,EAAEJ,IAAI,CAACK,EAAL,CAAQ;AAAA,aAAMlB,KAAN;AAAA,KAAR,CADU;AAEpBmB,IAAAA,UAAU,EAAEN,IAAI,CAACK,EAAL,CAAQ;AAAA,aAAM,IAAN;AAAA,KAAR;AAFQ,GAAtB;AAIAhB,EAAAA,MAAM,CAACD,OAAP,GAAiBA,OAAO,CAACmB,IAAR,CAAa,IAAb,EAAmBlB,MAAnB,CAAjB;AACA,SAAOA,MAAP;AACD;;AAEM,IAAMmB,aAAa,GAAG,SAAhBA,aAAgB;AAAA,SAAMT,UAAU,CAAC,IAAIU,sBAAJ,CAAevB,MAAf,CAAD,CAAhB;AAAA,CAAtB;;;;AAEA,IAAMwB,qBAAqB;AAAA,6EAAG,iBAAOpB,IAAP;AAAA;AAAA;AAAA;AAAA;AAAA;AAC7BD,YAAAA,MAD6B,GACpBU,UAAU,CAAC,IAAIU,sBAAJ,CAAevB,MAAf,CAAD,CADU;AAAA;AAAA,mBAE7BE,OAAO,CAACC,MAAD,EAASC,IAAT,CAFsB;;AAAA;AAGnCD,YAAAA,MAAM,CAACsB,SAAP,GAAmBpB,OAAO,CAACC,OAAR,EAAnB;AAHmC,6CAI5BH,MAJ4B;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAAH;;AAAA,kBAArBqB,qBAAqB;AAAA;AAAA;AAAA,GAA3B;;;;AAOA,IAAME,YAAY,GAAG,SAAfA,YAAe,CAACC,GAAD,EAAMC,GAAN,EAAc;AACxCD,EAAAA,GAAG,GAAGE,IAAI,CAACC,IAAL,CAAUH,GAAV,CAAN;AACAC,EAAAA,GAAG,GAAGC,IAAI,CAACE,KAAL,CAAWH,GAAX,CAAN;AACA,SAAOC,IAAI,CAACE,KAAL,CAAWF,IAAI,CAACG,MAAL,MAAiBJ,GAAG,GAAGD,GAAvB,CAAX,IAA0CA,GAAjD;AACD,CAJM","sourcesContent":["/* eslint no-underscore-dangle: 0 */\n/* eslint no-param-reassign: 0 */\n\nimport { StreamChat } from 'stream-chat';\n\nconst apiKey = 'API_KEY';\nconst token = 'dummy_token';\n\nconst setUser = (client, user) =>\n new Promise((resolve) => {\n client.connectionId = 'dumm_connection_id';\n client.user = user;\n client.user.mutes = [];\n client._user = { ...user };\n client.userID = user.id;\n client.userToken = token;\n resolve();\n });\n\nfunction mockClient(client) {\n jest.spyOn(client, '_setToken').mockImplementation();\n jest.spyOn(client, '_setupConnection').mockImplementation();\n client.tokenManager = {\n getToken: jest.fn(() => token),\n tokenReady: jest.fn(() => true),\n };\n client.setUser = setUser.bind(null, client);\n return client;\n}\n\nexport const getTestClient = () => mockClient(new StreamChat(apiKey));\n\nexport const getTestClientWithUser = async (user) => {\n const client = mockClient(new StreamChat(apiKey));\n await setUser(client, user);\n client.wsPromise = Promise.resolve();\n return client;\n};\n\nexport const getRandomInt = (min, max) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min)) + min; // The maximum is exclusive and the minimum is inclusive\n};\n"]}
1
+ {"version":3,"sources":["mock.js"],"names":["apiKey","token","setUser","client","user","Promise","resolve","connectionId","mutes","_user","userID","id","userToken","mockClient","options","disableAppSettings","jest","spyOn","mockImplementation","tokenManager","getToken","fn","tokenReady","bind","getAppSettings","getTestClient","StreamChat","getTestClientWithUser","wsPromise","getRandomInt","min","max","Math","ceil","floor","random"],"mappings":";;;;;;;;;;;;;AAGA;;AAEA,IAAMA,MAAM,GAAG,SAAf;AACA,IAAMC,KAAK,GAAG,aAAd;;AAEA,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAACC,MAAD,EAASC,IAAT;AAAA,SACd,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAAa;AACvBH,IAAAA,MAAM,CAACI,YAAP,GAAsB,oBAAtB;AACAJ,IAAAA,MAAM,CAACC,IAAP,GAAcA,IAAd;AACAD,IAAAA,MAAM,CAACC,IAAP,CAAYI,KAAZ,GAAoB,EAApB;AACAL,IAAAA,MAAM,CAACM,KAAP,iCAAoBL,IAApB;AACAD,IAAAA,MAAM,CAACO,MAAP,GAAgBN,IAAI,CAACO,EAArB;AACAR,IAAAA,MAAM,CAACS,SAAP,GAAmBX,KAAnB;AACAK,IAAAA,OAAO;AACR,GARD,CADc;AAAA,CAAhB;;AAWA,SAASO,UAAT,CAAoBV,MAApB,EAA0C;AAAA,MAAdW,OAAc,uEAAJ,EAAI;AACxC,8BAAsCA,OAAtC,CAAQC,kBAAR;AAAA,MAAQA,kBAAR,sCAA6B,IAA7B;AAEAC,EAAAA,IAAI,CAACC,KAAL,CAAWd,MAAX,EAAmB,WAAnB,EAAgCe,kBAAhC;AACAF,EAAAA,IAAI,CAACC,KAAL,CAAWd,MAAX,EAAmB,kBAAnB,EAAuCe,kBAAvC;AACAf,EAAAA,MAAM,CAACgB,YAAP,GAAsB;AACpBC,IAAAA,QAAQ,EAAEJ,IAAI,CAACK,EAAL,CAAQ;AAAA,aAAMpB,KAAN;AAAA,KAAR,CADU;AAEpBqB,IAAAA,UAAU,EAAEN,IAAI,CAACK,EAAL,CAAQ;AAAA,aAAM,IAAN;AAAA,KAAR;AAFQ,GAAtB;AAIAlB,EAAAA,MAAM,CAACD,OAAP,GAAiBA,OAAO,CAACqB,IAAR,CAAa,IAAb,EAAmBpB,MAAnB,CAAjB;;AAEA,MAAIY,kBAAJ,EAAwB;AACtBZ,IAAAA,MAAM,CAACqB,cAAP,GAAwBR,IAAI,CAACK,EAAL,CAAQ;AAAA,aAAO,EAAP;AAAA,KAAR,CAAxB;AACD;;AAED,SAAOlB,MAAP;AACD;;AAEM,IAAMsB,aAAa,GAAG,SAAhBA,aAAgB;AAAA,MAACX,OAAD,uEAAW,EAAX;AAAA,SAAkBD,UAAU,CAAC,IAAIa,sBAAJ,CAAe1B,MAAf,CAAD,EAAyBc,OAAzB,CAA5B;AAAA,CAAtB;;;;AAEA,IAAMa,qBAAqB;AAAA,6EAAG,iBAAOvB,IAAP;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAaU,YAAAA,OAAb,2DAAuB,EAAvB;AAAA,qCACGA,OADH,CAC3BC,kBAD2B,EAC3BA,kBAD2B,uCACN,IADM;AAE7BZ,YAAAA,MAF6B,GAEpBU,UAAU,CAAC,IAAIa,sBAAJ,CAAe1B,MAAf,CAAD,CAFU;AAAA;AAAA,mBAG7BE,OAAO,CAACC,MAAD,EAASC,IAAT,CAHsB;;AAAA;AAInCD,YAAAA,MAAM,CAACyB,SAAP,GAAmBvB,OAAO,CAACC,OAAR,EAAnB;;AAEA,gBAAIS,kBAAJ,EAAwB;AACtBZ,cAAAA,MAAM,CAACqB,cAAP,GAAwBR,IAAI,CAACK,EAAL,CAAQ;AAAA,uBAAO,EAAP;AAAA,eAAR,CAAxB;AACD;;AARkC,6CAU5BlB,MAV4B;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAAH;;AAAA,kBAArBwB,qBAAqB;AAAA;AAAA;AAAA,GAA3B;;;;AAaA,IAAME,YAAY,GAAG,SAAfA,YAAe,CAACC,GAAD,EAAMC,GAAN,EAAc;AACxCD,EAAAA,GAAG,GAAGE,IAAI,CAACC,IAAL,CAAUH,GAAV,CAAN;AACAC,EAAAA,GAAG,GAAGC,IAAI,CAACE,KAAL,CAAWH,GAAX,CAAN;AACA,SAAOC,IAAI,CAACE,KAAL,CAAWF,IAAI,CAACG,MAAL,MAAiBJ,GAAG,GAAGD,GAAvB,CAAX,IAA0CA,GAAjD;AACD,CAJM","sourcesContent":["/* eslint no-underscore-dangle: 0 */\n/* eslint no-param-reassign: 0 */\n\nimport { StreamChat } from 'stream-chat';\n\nconst apiKey = 'API_KEY';\nconst token = 'dummy_token';\n\nconst setUser = (client, user) =>\n new Promise((resolve) => {\n client.connectionId = 'dumm_connection_id';\n client.user = user;\n client.user.mutes = [];\n client._user = { ...user };\n client.userID = user.id;\n client.userToken = token;\n resolve();\n });\n\nfunction mockClient(client, options = {}) {\n const { disableAppSettings = true } = options;\n\n jest.spyOn(client, '_setToken').mockImplementation();\n jest.spyOn(client, '_setupConnection').mockImplementation();\n client.tokenManager = {\n getToken: jest.fn(() => token),\n tokenReady: jest.fn(() => true),\n };\n client.setUser = setUser.bind(null, client);\n\n if (disableAppSettings) {\n client.getAppSettings = jest.fn(() => ({}));\n }\n\n return client;\n}\n\nexport const getTestClient = (options = {}) => mockClient(new StreamChat(apiKey), options);\n\nexport const getTestClientWithUser = async (user, options = {}) => {\n const { disableAppSettings = true } = options;\n const client = mockClient(new StreamChat(apiKey));\n await setUser(client, user);\n client.wsPromise = Promise.resolve();\n\n if (disableAppSettings) {\n client.getAppSettings = jest.fn(() => ({}));\n }\n\n return client;\n};\n\nexport const getRandomInt = (min, max) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min)) + min; // The maximum is exclusive and the minimum is inclusive\n};\n"]}
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "4.7.0"
2
+ "version": "4.7.1-beta.1"
3
3
  }
@@ -21,6 +21,8 @@ var _MessagesContext = require("../../contexts/messagesContext/MessagesContext")
21
21
 
22
22
  var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
23
23
 
24
+ var _Play = require("../../icons/Play");
25
+
24
26
  var _utils = require("../../utils/utils");
25
27
 
26
28
  var _excluded = ["description", "title"];
@@ -45,13 +47,15 @@ var styles = _reactNative.StyleSheet.create({
45
47
  },
46
48
  authorNameMask: {
47
49
  bottom: 0,
48
- left: 8,
50
+ left: 2,
49
51
  position: 'absolute'
50
52
  },
51
53
  cardCover: {
54
+ alignItems: 'center',
52
55
  borderRadius: 8,
53
56
  height: 140,
54
- marginHorizontal: 8
57
+ justifyContent: 'center',
58
+ marginHorizontal: 2
55
59
  },
56
60
  cardFooter: {
57
61
  flexDirection: 'row',
@@ -66,6 +70,14 @@ var styles = _reactNative.StyleSheet.create({
66
70
  fontSize: 12,
67
71
  marginHorizontal: 8
68
72
  },
73
+ playButtonStyle: {
74
+ alignItems: 'center',
75
+ borderRadius: 50,
76
+ elevation: 2,
77
+ height: 36,
78
+ justifyContent: 'center',
79
+ width: 36
80
+ },
69
81
  title: {
70
82
  fontSize: 12,
71
83
  marginHorizontal: 8
@@ -88,7 +100,8 @@ var CardWithContext = function CardWithContext(props) {
88
100
  stylesProp = _props$styles === void 0 ? {} : _props$styles,
89
101
  text = props.text,
90
102
  thumb_url = props.thumb_url,
91
- title = props.title;
103
+ title = props.title,
104
+ type = props.type;
92
105
 
93
106
  var _useTheme = (0, _ThemeContext.useTheme)(),
94
107
  _useTheme$theme = _useTheme.theme,
@@ -97,6 +110,7 @@ var CardWithContext = function CardWithContext(props) {
97
110
  black = _useTheme$theme$color.black,
98
111
  blue_alice = _useTheme$theme$color.blue_alice,
99
112
  transparent = _useTheme$theme$color.transparent,
113
+ white = _useTheme$theme$color.white,
100
114
  _useTheme$theme$messa = _useTheme$theme.messageSimple.card,
101
115
  authorName = _useTheme$theme$messa.authorName,
102
116
  authorNameContainer = _useTheme$theme$messa.authorNameContainer,
@@ -109,7 +123,11 @@ var CardWithContext = function CardWithContext(props) {
109
123
  description = _useTheme$theme$messa2.description,
110
124
  titleStyle = _useTheme$theme$messa2.title,
111
125
  footerStyle = (0, _objectWithoutProperties2["default"])(_useTheme$theme$messa2, _excluded),
112
- noURI = _useTheme$theme$messa.noURI;
126
+ noURI = _useTheme$theme$messa.noURI,
127
+ roundedView = _useTheme$theme$messa.playButtonStyle.roundedView,
128
+ _useTheme$theme$messa3 = _useTheme$theme$messa.playIcon,
129
+ height = _useTheme$theme$messa3.height,
130
+ width = _useTheme$theme$messa3.width;
113
131
 
114
132
  var uri = image_url || thumb_url;
115
133
 
@@ -117,6 +135,7 @@ var CardWithContext = function CardWithContext(props) {
117
135
  return (0, _openUrlSafely.openUrlSafely)(og_scrape_url || uri);
118
136
  };
119
137
 
138
+ var isVideoCard = type === 'video' && og_scrape_url;
120
139
  return _react["default"].createElement(_reactNative.TouchableOpacity, (0, _extends2["default"])({
121
140
  disabled: preventPress,
122
141
  onLongPress: function onLongPress(event) {
@@ -160,31 +179,32 @@ var CardWithContext = function CardWithContext(props) {
160
179
  __self: _this,
161
180
  __source: {
162
181
  fileName: _jsxFileName,
163
- lineNumber: 145,
182
+ lineNumber: 161,
164
183
  columnNumber: 5
165
184
  }
166
185
  }), CardHeader && _react["default"].createElement(CardHeader, (0, _extends2["default"])({}, props, {
167
186
  __self: _this,
168
187
  __source: {
169
188
  fileName: _jsxFileName,
170
- lineNumber: 180,
189
+ lineNumber: 196,
171
190
  columnNumber: 22
172
191
  }
173
192
  })), CardCover && _react["default"].createElement(CardCover, (0, _extends2["default"])({}, props, {
174
193
  __self: _this,
175
194
  __source: {
176
195
  fileName: _jsxFileName,
177
- lineNumber: 181,
196
+ lineNumber: 197,
178
197
  columnNumber: 21
179
198
  }
180
199
  })), uri && !CardCover && _react["default"].createElement(_reactNative.View, {
181
200
  __self: _this,
182
201
  __source: {
183
202
  fileName: _jsxFileName,
184
- lineNumber: 183,
203
+ lineNumber: 199,
185
204
  columnNumber: 9
186
205
  }
187
- }, _react["default"].createElement(_reactNative.Image, {
206
+ }, _react["default"].createElement(_reactNative.ImageBackground, {
207
+ imageStyle: styles.cardCover,
188
208
  resizeMode: "cover",
189
209
  source: {
190
210
  uri: (0, _utils.makeImageCompatibleUrl)(uri)
@@ -193,15 +213,35 @@ var CardWithContext = function CardWithContext(props) {
193
213
  __self: _this,
194
214
  __source: {
195
215
  fileName: _jsxFileName,
196
- lineNumber: 184,
216
+ lineNumber: 200,
197
217
  columnNumber: 11
198
218
  }
199
- }), author_name && _react["default"].createElement(_reactNative.View, {
219
+ }, isVideoCard ? _react["default"].createElement(_reactNative.View, {
220
+ style: [styles.playButtonStyle, roundedView, {
221
+ backgroundColor: white
222
+ }],
223
+ __self: _this,
224
+ __source: {
225
+ fileName: _jsxFileName,
226
+ lineNumber: 207,
227
+ columnNumber: 15
228
+ }
229
+ }, _react["default"].createElement(_Play.Play, {
230
+ height: height,
231
+ pathFill: black,
232
+ width: width,
233
+ __self: _this,
234
+ __source: {
235
+ fileName: _jsxFileName,
236
+ lineNumber: 208,
237
+ columnNumber: 17
238
+ }
239
+ })) : null), author_name && _react["default"].createElement(_reactNative.View, {
200
240
  style: [styles.authorNameMask, authorNameMask, stylesProp.authorNameMask],
201
241
  __self: _this,
202
242
  __source: {
203
243
  fileName: _jsxFileName,
204
- lineNumber: 190,
244
+ lineNumber: 213,
205
245
  columnNumber: 13
206
246
  }
207
247
  }, _react["default"].createElement(_reactNative.View, {
@@ -211,7 +251,7 @@ var CardWithContext = function CardWithContext(props) {
211
251
  __self: _this,
212
252
  __source: {
213
253
  fileName: _jsxFileName,
214
- lineNumber: 191,
254
+ lineNumber: 214,
215
255
  columnNumber: 15
216
256
  }
217
257
  }, _react["default"].createElement(_reactNative.Text, {
@@ -221,14 +261,14 @@ var CardWithContext = function CardWithContext(props) {
221
261
  __self: _this,
222
262
  __source: {
223
263
  fileName: _jsxFileName,
224
- lineNumber: 199,
264
+ lineNumber: 222,
225
265
  columnNumber: 17
226
266
  }
227
267
  }, author_name)))), CardFooter ? _react["default"].createElement(CardFooter, (0, _extends2["default"])({}, props, {
228
268
  __self: _this,
229
269
  __source: {
230
270
  fileName: _jsxFileName,
231
- lineNumber: 215,
271
+ lineNumber: 238,
232
272
  columnNumber: 9
233
273
  }
234
274
  })) : _react["default"].createElement(_reactNative.View, {
@@ -236,7 +276,7 @@ var CardWithContext = function CardWithContext(props) {
236
276
  __self: _this,
237
277
  __source: {
238
278
  fileName: _jsxFileName,
239
- lineNumber: 217,
279
+ lineNumber: 240,
240
280
  columnNumber: 9
241
281
  }
242
282
  }, _react["default"].createElement(_reactNative.View, {
@@ -248,7 +288,7 @@ var CardWithContext = function CardWithContext(props) {
248
288
  __self: _this,
249
289
  __source: {
250
290
  fileName: _jsxFileName,
251
- lineNumber: 218,
291
+ lineNumber: 241,
252
292
  columnNumber: 11
253
293
  }
254
294
  }, !uri && author_name && _react["default"].createElement(_reactNative.Text, {
@@ -258,7 +298,7 @@ var CardWithContext = function CardWithContext(props) {
258
298
  __self: _this,
259
299
  __source: {
260
300
  fileName: _jsxFileName,
261
- lineNumber: 227,
301
+ lineNumber: 250,
262
302
  columnNumber: 15
263
303
  }
264
304
  }, author_name), title && _react["default"].createElement(_reactNative.Text, {
@@ -269,7 +309,7 @@ var CardWithContext = function CardWithContext(props) {
269
309
  __self: _this,
270
310
  __source: {
271
311
  fileName: _jsxFileName,
272
- lineNumber: 239,
312
+ lineNumber: 262,
273
313
  columnNumber: 15
274
314
  }
275
315
  }, title), text && _react["default"].createElement(_reactNative.Text, {
@@ -280,7 +320,7 @@ var CardWithContext = function CardWithContext(props) {
280
320
  __self: _this,
281
321
  __source: {
282
322
  fileName: _jsxFileName,
283
- lineNumber: 247,
323
+ lineNumber: 270,
284
324
  columnNumber: 15
285
325
  }
286
326
  }, text))));
@@ -319,7 +359,7 @@ var Card = function Card(props) {
319
359
  __self: _this,
320
360
  __source: {
321
361
  fileName: _jsxFileName,
322
- lineNumber: 288,
362
+ lineNumber: 311,
323
363
  columnNumber: 5
324
364
  }
325
365
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["Card.tsx"],"names":["styles","StyleSheet","create","authorName","fontSize","fontWeight","authorNameContainer","borderTopRightRadius","paddingHorizontal","paddingTop","authorNameFooter","padding","authorNameMask","bottom","left","position","cardCover","borderRadius","height","marginHorizontal","cardFooter","flexDirection","justifyContent","container","overflow","width","description","title","CardWithContext","props","additionalTouchableProps","author_name","CardCover","CardFooter","CardHeader","image_url","og_scrape_url","onLongPress","onPress","onPressIn","preventPress","stylesProp","text","thumb_url","theme","colors","accent_blue","black","blue_alice","transparent","messageSimple","card","authorNameFooterContainer","cover","footer","titleStyle","footerStyle","noURI","uri","defaultOnPress","event","additionalInfo","url","emitter","defaultHandler","backgroundColor","color","borderLeftColor","MemoizedCard","React","memo","Card","message","channelId","cid","messageId","id","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport {\n Image,\n ImageStyle,\n StyleProp,\n StyleSheet,\n Text,\n TextStyle,\n TouchableOpacity,\n View,\n ViewStyle,\n} from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport { openUrlSafely } from './utils/openUrlSafely';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { makeImageCompatibleUrl } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n authorName: { fontSize: 14.5, fontWeight: '600' },\n authorNameContainer: {\n borderTopRightRadius: 15,\n paddingHorizontal: 8,\n paddingTop: 8,\n },\n authorNameFooter: {\n fontSize: 14.5,\n fontWeight: '600',\n padding: 8,\n },\n authorNameMask: {\n bottom: 0,\n left: 8,\n position: 'absolute',\n },\n cardCover: {\n borderRadius: 8,\n height: 140,\n marginHorizontal: 8,\n },\n cardFooter: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n padding: 10,\n },\n container: {\n overflow: 'hidden',\n width: 256,\n },\n description: {\n fontSize: 12,\n marginHorizontal: 8,\n },\n title: {\n fontSize: 12,\n marginHorizontal: 8,\n },\n});\n\nexport type CardPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Attachment<StreamChatGenerics> &\n Pick<\n MessageContextValue<StreamChatGenerics>,\n 'onLongPress' | 'onPress' | 'onPressIn' | 'preventPress'\n > &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n 'additionalTouchableProps' | 'CardCover' | 'CardFooter' | 'CardHeader'\n > & {\n channelId: string | undefined;\n messageId: string | undefined;\n styles?: Partial<{\n authorName: StyleProp<TextStyle>;\n authorNameContainer: StyleProp<ViewStyle>;\n authorNameFooter: StyleProp<TextStyle>;\n authorNameFooterContainer: StyleProp<ViewStyle>;\n authorNameMask: StyleProp<ViewStyle>;\n cardCover: StyleProp<ImageStyle>;\n cardFooter: StyleProp<ViewStyle>;\n container: StyleProp<ViewStyle>;\n description: StyleProp<TextStyle>;\n title: StyleProp<TextStyle>;\n }>;\n };\n\nconst CardWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: CardPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n author_name,\n CardCover,\n CardFooter,\n CardHeader,\n image_url,\n og_scrape_url,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n styles: stylesProp = {},\n text,\n thumb_url,\n title,\n } = props;\n\n const {\n theme: {\n colors: { accent_blue, black, blue_alice, transparent },\n messageSimple: {\n card: {\n authorName,\n authorNameContainer,\n authorNameFooter,\n authorNameFooterContainer,\n authorNameMask,\n container,\n cover,\n footer: { description, title: titleStyle, ...footerStyle },\n noURI,\n },\n },\n },\n } = useTheme();\n\n const uri = image_url || thumb_url;\n\n const defaultOnPress = () => openUrlSafely(og_scrape_url || uri);\n\n return (\n <TouchableOpacity\n disabled={preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n additionalInfo: { url: og_scrape_url },\n emitter: 'card',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n additionalInfo: { url: og_scrape_url },\n defaultHandler: defaultOnPress,\n emitter: 'card',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n additionalInfo: { url: og_scrape_url },\n defaultHandler: defaultOnPress,\n emitter: 'card',\n event,\n });\n }\n }}\n style={[styles.container, container, stylesProp.container]}\n testID='card-attachment'\n {...additionalTouchableProps}\n >\n {CardHeader && <CardHeader {...props} />}\n {CardCover && <CardCover {...props} />}\n {uri && !CardCover && (\n <View>\n <Image\n resizeMode='cover'\n source={{ uri: makeImageCompatibleUrl(uri) }}\n style={[styles.cardCover, cover, stylesProp.cardCover]}\n />\n {author_name && (\n <View style={[styles.authorNameMask, authorNameMask, stylesProp.authorNameMask]}>\n <View\n style={[\n styles.authorNameContainer,\n { backgroundColor: blue_alice },\n authorNameContainer,\n stylesProp.authorNameContainer,\n ]}\n >\n <Text\n style={[\n styles.authorName,\n { color: accent_blue },\n authorName,\n stylesProp.authorName,\n ]}\n >\n {author_name}\n </Text>\n </View>\n </View>\n )}\n </View>\n )}\n {CardFooter ? (\n <CardFooter {...props} />\n ) : (\n <View style={[styles.cardFooter, footerStyle, stylesProp.cardFooter]}>\n <View\n style={[\n authorNameFooterContainer,\n { backgroundColor: transparent },\n !uri ? { borderLeftColor: accent_blue, ...noURI } : {},\n stylesProp.authorNameFooterContainer,\n ]}\n >\n {!uri && author_name && (\n <Text\n style={[\n styles.authorNameFooter,\n { color: accent_blue },\n authorNameFooter,\n stylesProp.authorNameFooter,\n ]}\n >\n {author_name}\n </Text>\n )}\n {title && (\n <Text\n numberOfLines={1}\n style={[styles.title, { color: black }, titleStyle, stylesProp.title]}\n >\n {title}\n </Text>\n )}\n {text && (\n <Text\n numberOfLines={3}\n style={[styles.description, { color: black }, description, stylesProp.description]}\n >\n {text}\n </Text>\n )}\n </View>\n </View>\n )}\n </TouchableOpacity>\n );\n};\n\nconst MemoizedCard = React.memo(CardWithContext, () => true) as typeof CardWithContext;\n\nexport type CardProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Attachment<StreamChatGenerics> &\n Partial<\n Pick<MessageContextValue<StreamChatGenerics>, 'onLongPress' | 'onPress' | 'onPressIn'> &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n 'additionalTouchableProps' | 'CardCover' | 'CardFooter' | 'CardHeader'\n >\n >;\n\n/**\n * UI component for card in attachments.\n */\nexport const Card = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: CardProps<StreamChatGenerics>,\n) => {\n const { message, onLongPress, onPress, onPressIn, preventPress } =\n useMessageContext<StreamChatGenerics>();\n const { additionalTouchableProps, CardCover, CardFooter, CardHeader } =\n useMessagesContext<StreamChatGenerics>();\n\n return (\n <MemoizedCard\n {...{\n additionalTouchableProps,\n CardCover,\n CardFooter,\n CardHeader,\n channelId: message.cid,\n messageId: message.id,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n }}\n {...props}\n />\n );\n};\n\nCard.displayName = 'Card{messageSimple{card}}';\n"]}
1
+ {"version":3,"sources":["Card.tsx"],"names":["styles","StyleSheet","create","authorName","fontSize","fontWeight","authorNameContainer","borderTopRightRadius","paddingHorizontal","paddingTop","authorNameFooter","padding","authorNameMask","bottom","left","position","cardCover","alignItems","borderRadius","height","justifyContent","marginHorizontal","cardFooter","flexDirection","container","overflow","width","description","playButtonStyle","elevation","title","CardWithContext","props","additionalTouchableProps","author_name","CardCover","CardFooter","CardHeader","image_url","og_scrape_url","onLongPress","onPress","onPressIn","preventPress","stylesProp","text","thumb_url","type","theme","colors","accent_blue","black","blue_alice","transparent","white","messageSimple","card","authorNameFooterContainer","cover","footer","titleStyle","footerStyle","noURI","roundedView","playIcon","uri","defaultOnPress","isVideoCard","event","additionalInfo","url","emitter","defaultHandler","backgroundColor","color","borderLeftColor","MemoizedCard","React","memo","Card","message","channelId","cid","messageId","id","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport {\n ImageBackground,\n ImageStyle,\n StyleProp,\n StyleSheet,\n Text,\n TextStyle,\n TouchableOpacity,\n View,\n ViewStyle,\n} from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport { openUrlSafely } from './utils/openUrlSafely';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { Play } from '../../icons/Play';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { makeImageCompatibleUrl } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n authorName: { fontSize: 14.5, fontWeight: '600' },\n authorNameContainer: {\n borderTopRightRadius: 15,\n paddingHorizontal: 8,\n paddingTop: 8,\n },\n authorNameFooter: {\n fontSize: 14.5,\n fontWeight: '600',\n padding: 8,\n },\n authorNameMask: {\n bottom: 0,\n left: 2,\n position: 'absolute',\n },\n cardCover: {\n alignItems: 'center',\n borderRadius: 8,\n height: 140,\n justifyContent: 'center',\n marginHorizontal: 2,\n },\n cardFooter: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n padding: 10,\n },\n container: {\n overflow: 'hidden',\n width: 256,\n },\n description: {\n fontSize: 12,\n marginHorizontal: 8,\n },\n playButtonStyle: {\n alignItems: 'center',\n borderRadius: 50,\n elevation: 2,\n height: 36,\n justifyContent: 'center',\n width: 36,\n },\n title: {\n fontSize: 12,\n marginHorizontal: 8,\n },\n});\n\nexport type CardPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Attachment<StreamChatGenerics> &\n Pick<\n MessageContextValue<StreamChatGenerics>,\n 'onLongPress' | 'onPress' | 'onPressIn' | 'preventPress'\n > &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n 'additionalTouchableProps' | 'CardCover' | 'CardFooter' | 'CardHeader'\n > & {\n channelId: string | undefined;\n messageId: string | undefined;\n styles?: Partial<{\n authorName: StyleProp<TextStyle>;\n authorNameContainer: StyleProp<ViewStyle>;\n authorNameFooter: StyleProp<TextStyle>;\n authorNameFooterContainer: StyleProp<ViewStyle>;\n authorNameMask: StyleProp<ViewStyle>;\n cardCover: StyleProp<ImageStyle>;\n cardFooter: StyleProp<ViewStyle>;\n container: StyleProp<ViewStyle>;\n description: StyleProp<TextStyle>;\n title: StyleProp<TextStyle>;\n }>;\n };\n\nconst CardWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: CardPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n author_name,\n CardCover,\n CardFooter,\n CardHeader,\n image_url,\n og_scrape_url,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n styles: stylesProp = {},\n text,\n thumb_url,\n title,\n type,\n } = props;\n\n const {\n theme: {\n colors: { accent_blue, black, blue_alice, transparent, white },\n messageSimple: {\n card: {\n authorName,\n authorNameContainer,\n authorNameFooter,\n authorNameFooterContainer,\n authorNameMask,\n container,\n cover,\n footer: { description, title: titleStyle, ...footerStyle },\n noURI,\n playButtonStyle: { roundedView },\n playIcon: { height, width },\n },\n },\n },\n } = useTheme();\n\n const uri = image_url || thumb_url;\n\n const defaultOnPress = () => openUrlSafely(og_scrape_url || uri);\n\n const isVideoCard = type === 'video' && og_scrape_url;\n\n return (\n <TouchableOpacity\n disabled={preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n additionalInfo: { url: og_scrape_url },\n emitter: 'card',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n additionalInfo: { url: og_scrape_url },\n defaultHandler: defaultOnPress,\n emitter: 'card',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n additionalInfo: { url: og_scrape_url },\n defaultHandler: defaultOnPress,\n emitter: 'card',\n event,\n });\n }\n }}\n style={[styles.container, container, stylesProp.container]}\n testID='card-attachment'\n {...additionalTouchableProps}\n >\n {CardHeader && <CardHeader {...props} />}\n {CardCover && <CardCover {...props} />}\n {uri && !CardCover && (\n <View>\n <ImageBackground\n imageStyle={styles.cardCover}\n resizeMode='cover'\n source={{ uri: makeImageCompatibleUrl(uri) }}\n style={[styles.cardCover, cover, stylesProp.cardCover]}\n >\n {isVideoCard ? (\n <View style={[styles.playButtonStyle, roundedView, { backgroundColor: white }]}>\n <Play height={height} pathFill={black} width={width} />\n </View>\n ) : null}\n </ImageBackground>\n {author_name && (\n <View style={[styles.authorNameMask, authorNameMask, stylesProp.authorNameMask]}>\n <View\n style={[\n styles.authorNameContainer,\n { backgroundColor: blue_alice },\n authorNameContainer,\n stylesProp.authorNameContainer,\n ]}\n >\n <Text\n style={[\n styles.authorName,\n { color: accent_blue },\n authorName,\n stylesProp.authorName,\n ]}\n >\n {author_name}\n </Text>\n </View>\n </View>\n )}\n </View>\n )}\n {CardFooter ? (\n <CardFooter {...props} />\n ) : (\n <View style={[styles.cardFooter, footerStyle, stylesProp.cardFooter]}>\n <View\n style={[\n authorNameFooterContainer,\n { backgroundColor: transparent },\n !uri ? { borderLeftColor: accent_blue, ...noURI } : {},\n stylesProp.authorNameFooterContainer,\n ]}\n >\n {!uri && author_name && (\n <Text\n style={[\n styles.authorNameFooter,\n { color: accent_blue },\n authorNameFooter,\n stylesProp.authorNameFooter,\n ]}\n >\n {author_name}\n </Text>\n )}\n {title && (\n <Text\n numberOfLines={1}\n style={[styles.title, { color: black }, titleStyle, stylesProp.title]}\n >\n {title}\n </Text>\n )}\n {text && (\n <Text\n numberOfLines={3}\n style={[styles.description, { color: black }, description, stylesProp.description]}\n >\n {text}\n </Text>\n )}\n </View>\n </View>\n )}\n </TouchableOpacity>\n );\n};\n\nconst MemoizedCard = React.memo(CardWithContext, () => true) as typeof CardWithContext;\n\nexport type CardProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Attachment<StreamChatGenerics> &\n Partial<\n Pick<MessageContextValue<StreamChatGenerics>, 'onLongPress' | 'onPress' | 'onPressIn'> &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n 'additionalTouchableProps' | 'CardCover' | 'CardFooter' | 'CardHeader'\n >\n >;\n\n/**\n * UI component for card in attachments.\n */\nexport const Card = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: CardProps<StreamChatGenerics>,\n) => {\n const { message, onLongPress, onPress, onPressIn, preventPress } =\n useMessageContext<StreamChatGenerics>();\n const { additionalTouchableProps, CardCover, CardFooter, CardHeader } =\n useMessagesContext<StreamChatGenerics>();\n\n return (\n <MemoizedCard\n {...{\n additionalTouchableProps,\n CardCover,\n CardFooter,\n CardHeader,\n channelId: message.cid,\n messageId: message.id,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n }}\n {...props}\n />\n );\n};\n\nCard.displayName = 'Card{messageSimple{card}}';\n"]}
@@ -212,7 +212,7 @@ var AutoCompleteSuggestionList = function AutoCompleteSuggestionList(props) {
212
212
  __self: _this,
213
213
  __source: {
214
214
  fileName: _jsxFileName,
215
- lineNumber: 201,
215
+ lineNumber: 202,
216
216
  columnNumber: 5
217
217
  }
218
218
  }));