@sendbird/uikit-react-native 3.5.4 → 3.6.0

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 (234) hide show
  1. package/lib/commonjs/components/ChannelInput/SendInput.js +23 -6
  2. package/lib/commonjs/components/ChannelInput/SendInput.js.map +1 -1
  3. package/lib/commonjs/components/ChannelInput/index.js.map +1 -1
  4. package/lib/commonjs/components/ChannelMessageList/index.js +22 -4
  5. package/lib/commonjs/components/ChannelMessageList/index.js.map +1 -1
  6. package/lib/commonjs/components/ChannelThreadMessageList/index.js +349 -0
  7. package/lib/commonjs/components/ChannelThreadMessageList/index.js.map +1 -0
  8. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js +2 -2
  9. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js.map +1 -1
  10. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.js +100 -0
  11. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.js.map +1 -0
  12. package/lib/commonjs/components/GroupChannelMessageRenderer/index.js +24 -6
  13. package/lib/commonjs/components/GroupChannelMessageRenderer/index.js.map +1 -1
  14. package/lib/commonjs/components/ReactionAddons/MessageReactionAddon.js +23 -6
  15. package/lib/commonjs/components/ReactionAddons/MessageReactionAddon.js.map +1 -1
  16. package/lib/commonjs/components/ThreadChatFlatList/index.js +76 -0
  17. package/lib/commonjs/components/ThreadChatFlatList/index.js.map +1 -0
  18. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.js +41 -0
  19. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.js.map +1 -0
  20. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.js +74 -0
  21. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.js.map +1 -0
  22. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.js +42 -0
  23. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.js.map +1 -0
  24. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js +94 -0
  25. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js.map +1 -0
  26. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.user.js +61 -0
  27. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.user.js.map +1 -0
  28. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.js +127 -0
  29. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.js.map +1 -0
  30. package/lib/commonjs/components/ThreadParentMessageRenderer/index.js +206 -0
  31. package/lib/commonjs/components/ThreadParentMessageRenderer/index.js.map +1 -0
  32. package/lib/commonjs/containers/SendbirdUIKitContainer.js +3 -0
  33. package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
  34. package/lib/commonjs/contexts/SendbirdChatCtx.js +7 -0
  35. package/lib/commonjs/contexts/SendbirdChatCtx.js.map +1 -1
  36. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +28 -5
  37. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  38. package/lib/commonjs/domain/groupChannel/module/moduleContext.js +14 -4
  39. package/lib/commonjs/domain/groupChannel/module/moduleContext.js.map +1 -1
  40. package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
  41. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadHeader.js +82 -0
  42. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadHeader.js.map +1 -0
  43. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadInput.js +44 -0
  44. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadInput.js.map +1 -0
  45. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadMessageList.js +127 -0
  46. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadMessageList.js.map +1 -0
  47. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js +315 -0
  48. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js.map +1 -0
  49. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.js +27 -0
  50. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.js.map +1 -0
  51. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.js +27 -0
  52. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.js.map +1 -0
  53. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js +195 -0
  54. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js.map +1 -0
  55. package/lib/commonjs/domain/groupChannelThread/index.js +69 -0
  56. package/lib/commonjs/domain/groupChannelThread/index.js.map +1 -0
  57. package/lib/commonjs/domain/groupChannelThread/module/createGroupChannelThreadModule.js +42 -0
  58. package/lib/commonjs/domain/groupChannelThread/module/createGroupChannelThreadModule.js.map +1 -0
  59. package/lib/commonjs/domain/groupChannelThread/module/moduleContext.js +148 -0
  60. package/lib/commonjs/domain/groupChannelThread/module/moduleContext.js.map +1 -0
  61. package/lib/commonjs/domain/groupChannelThread/types.js +6 -0
  62. package/lib/commonjs/domain/groupChannelThread/types.js.map +1 -0
  63. package/lib/commonjs/fragments/createGroupChannelFragment.js +30 -5
  64. package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
  65. package/lib/commonjs/fragments/createGroupChannelThreadFragment.js +267 -0
  66. package/lib/commonjs/fragments/createGroupChannelThreadFragment.js.map +1 -0
  67. package/lib/commonjs/hooks/useMentionSuggestion.js +5 -2
  68. package/lib/commonjs/hooks/useMentionSuggestion.js.map +1 -1
  69. package/lib/commonjs/index.js +72 -40
  70. package/lib/commonjs/index.js.map +1 -1
  71. package/lib/commonjs/libs/VoiceMessageStatusManager.js +66 -0
  72. package/lib/commonjs/libs/VoiceMessageStatusManager.js.map +1 -0
  73. package/lib/commonjs/localization/StringSet.type.js.map +1 -1
  74. package/lib/commonjs/localization/createBaseStringSet.js +25 -3
  75. package/lib/commonjs/localization/createBaseStringSet.js.map +1 -1
  76. package/lib/commonjs/version.js +1 -1
  77. package/lib/commonjs/version.js.map +1 -1
  78. package/lib/module/components/ChannelInput/SendInput.js +23 -6
  79. package/lib/module/components/ChannelInput/SendInput.js.map +1 -1
  80. package/lib/module/components/ChannelInput/index.js.map +1 -1
  81. package/lib/module/components/ChannelMessageList/index.js +22 -4
  82. package/lib/module/components/ChannelMessageList/index.js.map +1 -1
  83. package/lib/module/components/ChannelThreadMessageList/index.js +341 -0
  84. package/lib/module/components/ChannelThreadMessageList/index.js.map +1 -0
  85. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js +2 -2
  86. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js.map +1 -1
  87. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.js +92 -0
  88. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.js.map +1 -0
  89. package/lib/module/components/GroupChannelMessageRenderer/index.js +24 -6
  90. package/lib/module/components/GroupChannelMessageRenderer/index.js.map +1 -1
  91. package/lib/module/components/ReactionAddons/MessageReactionAddon.js +23 -6
  92. package/lib/module/components/ReactionAddons/MessageReactionAddon.js.map +1 -1
  93. package/lib/module/components/ThreadChatFlatList/index.js +66 -0
  94. package/lib/module/components/ThreadChatFlatList/index.js.map +1 -0
  95. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.js +34 -0
  96. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.js.map +1 -0
  97. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.js +67 -0
  98. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.js.map +1 -0
  99. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.js +34 -0
  100. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.js.map +1 -0
  101. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js +87 -0
  102. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js.map +1 -0
  103. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.user.js +54 -0
  104. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.user.js.map +1 -0
  105. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.js +119 -0
  106. package/lib/module/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.js.map +1 -0
  107. package/lib/module/components/ThreadParentMessageRenderer/index.js +196 -0
  108. package/lib/module/components/ThreadParentMessageRenderer/index.js.map +1 -0
  109. package/lib/module/containers/SendbirdUIKitContainer.js +3 -0
  110. package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
  111. package/lib/module/contexts/SendbirdChatCtx.js +6 -0
  112. package/lib/module/contexts/SendbirdChatCtx.js.map +1 -1
  113. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +30 -6
  114. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  115. package/lib/module/domain/groupChannel/module/moduleContext.js +14 -4
  116. package/lib/module/domain/groupChannel/module/moduleContext.js.map +1 -1
  117. package/lib/module/domain/groupChannel/types.js.map +1 -1
  118. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadHeader.js +73 -0
  119. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadHeader.js.map +1 -0
  120. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadInput.js +34 -0
  121. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadInput.js.map +1 -0
  122. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadMessageList.js +117 -0
  123. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadMessageList.js.map +1 -0
  124. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js +305 -0
  125. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js.map +1 -0
  126. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.js +19 -0
  127. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.js.map +1 -0
  128. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.js +19 -0
  129. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.js.map +1 -0
  130. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js +185 -0
  131. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js.map +1 -0
  132. package/lib/module/domain/groupChannelThread/index.js +9 -0
  133. package/lib/module/domain/groupChannelThread/index.js.map +1 -0
  134. package/lib/module/domain/groupChannelThread/module/createGroupChannelThreadModule.js +34 -0
  135. package/lib/module/domain/groupChannelThread/module/createGroupChannelThreadModule.js.map +1 -0
  136. package/lib/module/domain/groupChannelThread/module/moduleContext.js +137 -0
  137. package/lib/module/domain/groupChannelThread/module/moduleContext.js.map +1 -0
  138. package/lib/module/domain/groupChannelThread/types.js +2 -0
  139. package/lib/module/domain/groupChannelThread/types.js.map +1 -0
  140. package/lib/module/fragments/createGroupChannelFragment.js +33 -7
  141. package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
  142. package/lib/module/fragments/createGroupChannelThreadFragment.js +257 -0
  143. package/lib/module/fragments/createGroupChannelThreadFragment.js.map +1 -0
  144. package/lib/module/hooks/useMentionSuggestion.js +5 -2
  145. package/lib/module/hooks/useMentionSuggestion.js.map +1 -1
  146. package/lib/module/index.js +3 -0
  147. package/lib/module/index.js.map +1 -1
  148. package/lib/module/libs/VoiceMessageStatusManager.js +59 -0
  149. package/lib/module/libs/VoiceMessageStatusManager.js.map +1 -0
  150. package/lib/module/localization/StringSet.type.js.map +1 -1
  151. package/lib/module/localization/createBaseStringSet.js +27 -4
  152. package/lib/module/localization/createBaseStringSet.js.map +1 -1
  153. package/lib/module/version.js +1 -1
  154. package/lib/module/version.js.map +1 -1
  155. package/lib/typescript/src/components/ChannelInput/index.d.ts +1 -0
  156. package/lib/typescript/src/components/ChannelMessageList/index.d.ts +5 -2
  157. package/lib/typescript/src/components/ChannelThreadMessageList/index.d.ts +55 -0
  158. package/lib/typescript/src/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.d.ts +1 -1
  159. package/lib/typescript/src/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.d.ts +9 -0
  160. package/lib/typescript/src/components/GroupChannelMessageRenderer/index.d.ts +3 -1
  161. package/lib/typescript/src/components/OpenChannelMessageRenderer/index.d.ts +3 -1
  162. package/lib/typescript/src/components/ReactionAddons/MessageReactionAddon.d.ts +3 -1
  163. package/lib/typescript/src/components/ReactionAddons/index.d.ts +2 -1
  164. package/lib/typescript/src/components/ThreadChatFlatList/index.d.ts +9 -0
  165. package/lib/typescript/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.d.ts +4 -0
  166. package/lib/typescript/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.d.ts +4 -0
  167. package/lib/typescript/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.d.ts +9 -0
  168. package/lib/typescript/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.d.ts +13 -0
  169. package/lib/typescript/src/components/ThreadParentMessageRenderer/ThreadParentMessage.user.d.ts +10 -0
  170. package/lib/typescript/src/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.d.ts +10 -0
  171. package/lib/typescript/src/components/ThreadParentMessageRenderer/index.d.ts +20 -0
  172. package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +2 -4
  173. package/lib/typescript/src/contexts/SendbirdChatCtx.d.ts +15 -1
  174. package/lib/typescript/src/domain/groupChannel/types.d.ts +4 -1
  175. package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadHeader.d.ts +4 -0
  176. package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadInput.d.ts +3 -0
  177. package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadMessageList.d.ts +7 -0
  178. package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.d.ts +8 -0
  179. package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.d.ts +3 -0
  180. package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.d.ts +3 -0
  181. package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.d.ts +4 -0
  182. package/lib/typescript/src/domain/groupChannelThread/index.d.ts +8 -0
  183. package/lib/typescript/src/domain/groupChannelThread/module/createGroupChannelThreadModule.d.ts +3 -0
  184. package/lib/typescript/src/domain/groupChannelThread/module/moduleContext.d.ts +3 -0
  185. package/lib/typescript/src/domain/groupChannelThread/types.d.ts +136 -0
  186. package/lib/typescript/src/domain/openChannel/component/OpenChannelHeader.d.ts +1 -1
  187. package/lib/typescript/src/fragments/createGroupChannelThreadFragment.d.ts +5 -0
  188. package/lib/typescript/src/hooks/useChannelInputItems.d.ts +1 -1
  189. package/lib/typescript/src/index.d.ts +3 -0
  190. package/lib/typescript/src/libs/VoiceMessageStatusManager.d.ts +11 -0
  191. package/lib/typescript/src/localization/StringSet.type.d.ts +23 -0
  192. package/lib/typescript/src/localization/createBaseStringSet.d.ts +1 -1
  193. package/lib/typescript/src/version.d.ts +1 -1
  194. package/package.json +6 -6
  195. package/src/components/ChannelInput/SendInput.tsx +24 -5
  196. package/src/components/ChannelInput/index.tsx +1 -0
  197. package/src/components/ChannelMessageList/index.tsx +27 -5
  198. package/src/components/ChannelThreadMessageList/index.tsx +406 -0
  199. package/src/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.tsx +3 -3
  200. package/src/components/GroupChannelMessageRenderer/GroupChannelMessageReplyInfo.tsx +96 -0
  201. package/src/components/GroupChannelMessageRenderer/index.tsx +21 -5
  202. package/src/components/ReactionAddons/MessageReactionAddon.tsx +38 -5
  203. package/src/components/ThreadChatFlatList/index.tsx +63 -0
  204. package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.image.tsx +36 -0
  205. package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.tsx +61 -0
  206. package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.video.tsx +45 -0
  207. package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.tsx +107 -0
  208. package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.user.og.tsx +133 -0
  209. package/src/components/ThreadParentMessageRenderer/ThreadParentMessage.user.tsx +65 -0
  210. package/src/components/ThreadParentMessageRenderer/index.tsx +194 -0
  211. package/src/containers/SendbirdUIKitContainer.tsx +4 -3
  212. package/src/contexts/SendbirdChatCtx.tsx +20 -0
  213. package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +37 -8
  214. package/src/domain/groupChannel/module/moduleContext.tsx +12 -2
  215. package/src/domain/groupChannel/types.ts +5 -0
  216. package/src/domain/groupChannelThread/component/GroupChannelThreadHeader.tsx +63 -0
  217. package/src/domain/groupChannelThread/component/GroupChannelThreadInput.tsx +38 -0
  218. package/src/domain/groupChannelThread/component/GroupChannelThreadMessageList.tsx +105 -0
  219. package/src/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.tsx +326 -0
  220. package/src/domain/groupChannelThread/component/GroupChannelThreadStatusEmpty.tsx +18 -0
  221. package/src/domain/groupChannelThread/component/GroupChannelThreadStatusLoading.tsx +18 -0
  222. package/src/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.tsx +174 -0
  223. package/src/domain/groupChannelThread/index.ts +8 -0
  224. package/src/domain/groupChannelThread/module/createGroupChannelThreadModule.tsx +35 -0
  225. package/src/domain/groupChannelThread/module/moduleContext.tsx +165 -0
  226. package/src/domain/groupChannelThread/types.ts +184 -0
  227. package/src/fragments/createGroupChannelFragment.tsx +38 -8
  228. package/src/fragments/createGroupChannelThreadFragment.tsx +280 -0
  229. package/src/hooks/useMentionSuggestion.ts +13 -9
  230. package/src/index.ts +4 -0
  231. package/src/libs/VoiceMessageStatusManager.ts +56 -0
  232. package/src/localization/StringSet.type.ts +27 -0
  233. package/src/localization/createBaseStringSet.ts +33 -4
  234. package/src/version.ts +1 -1
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundation");
9
+ var _uikitUtils = require("@sendbird/uikit-utils");
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ const ThreadParentMessageFileVideo = props => {
12
+ const fileMessage = props.parentMessage;
13
+ if (!fileMessage) return null;
14
+ const uri = (0, _uikitUtils.getThumbnailUriFromFileMessage)(fileMessage);
15
+ return /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Box, {
16
+ style: styles.container
17
+ }, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.PressBox, {
18
+ activeOpacity: 0.8,
19
+ onPress: props.onPress,
20
+ onLongPress: props.onLongPress
21
+ }, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.VideoThumbnail, {
22
+ style: styles.image,
23
+ source: uri,
24
+ fetchThumbnailFromVideoSource: props.fetchThumbnailFromVideoSource
25
+ })));
26
+ };
27
+ const styles = (0, _uikitReactNativeFoundation.createStyleSheet)({
28
+ container: {
29
+ borderRadius: 16,
30
+ overflow: 'hidden'
31
+ },
32
+ image: {
33
+ maxWidth: 240,
34
+ width: 240,
35
+ height: 160,
36
+ borderRadius: 16,
37
+ overflow: 'hidden'
38
+ }
39
+ });
40
+ var _default = ThreadParentMessageFileVideo;
41
+ exports.default = _default;
42
+ //# sourceMappingURL=ThreadParentMessage.file.video.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_uikitReactNativeFoundation","_uikitUtils","obj","__esModule","default","ThreadParentMessageFileVideo","props","fileMessage","parentMessage","uri","getThumbnailUriFromFileMessage","createElement","Box","style","styles","container","PressBox","activeOpacity","onPress","onLongPress","VideoThumbnail","image","source","fetchThumbnailFromVideoSource","createStyleSheet","borderRadius","overflow","maxWidth","width","height","_default","exports"],"sources":["ThreadParentMessage.file.video.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Box, PressBox, VideoThumbnail, createStyleSheet } from '@sendbird/uikit-react-native-foundation';\nimport { SendbirdFileMessage, getThumbnailUriFromFileMessage } from '@sendbird/uikit-utils';\n\nimport { ThreadParentMessageRendererProps } from './index';\n\ntype Props = ThreadParentMessageRendererProps<{\n fetchThumbnailFromVideoSource: (uri: string) => Promise<{ path: string } | null>;\n}>;\n\nconst ThreadParentMessageFileVideo = (props: Props) => {\n const fileMessage: SendbirdFileMessage = props.parentMessage as SendbirdFileMessage;\n if (!fileMessage) return null;\n\n const uri = getThumbnailUriFromFileMessage(fileMessage);\n\n return (\n <Box style={styles.container}>\n <PressBox activeOpacity={0.8} onPress={props.onPress} onLongPress={props.onLongPress}>\n <VideoThumbnail\n style={styles.image}\n source={uri}\n fetchThumbnailFromVideoSource={props.fetchThumbnailFromVideoSource}\n />\n </PressBox>\n </Box>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n borderRadius: 16,\n overflow: 'hidden',\n },\n image: {\n maxWidth: 240,\n width: 240,\n height: 160,\n borderRadius: 16,\n overflow: 'hidden',\n },\n});\n\nexport default ThreadParentMessageFileVideo;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,2BAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAA4F,SAAAD,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAQ5F,MAAMG,4BAA4B,GAAIC,KAAY,IAAK;EACrD,MAAMC,WAAgC,GAAGD,KAAK,CAACE,aAAoC;EACnF,IAAI,CAACD,WAAW,EAAE,OAAO,IAAI;EAE7B,MAAME,GAAG,GAAG,IAAAC,0CAA8B,EAACH,WAAW,CAAC;EAEvD,oBACEV,MAAA,CAAAO,OAAA,CAAAO,aAAA,CAACX,2BAAA,CAAAY,GAAG;IAACC,KAAK,EAAEC,MAAM,CAACC;EAAU,gBAC3BlB,MAAA,CAAAO,OAAA,CAAAO,aAAA,CAACX,2BAAA,CAAAgB,QAAQ;IAACC,aAAa,EAAE,GAAI;IAACC,OAAO,EAAEZ,KAAK,CAACY,OAAQ;IAACC,WAAW,EAAEb,KAAK,CAACa;EAAY,gBACnFtB,MAAA,CAAAO,OAAA,CAAAO,aAAA,CAACX,2BAAA,CAAAoB,cAAc;IACbP,KAAK,EAAEC,MAAM,CAACO,KAAM;IACpBC,MAAM,EAAEb,GAAI;IACZc,6BAA6B,EAAEjB,KAAK,CAACiB;EAA8B,EACnE,CACO,CACP;AAEV,CAAC;AAED,MAAMT,MAAM,GAAG,IAAAU,4CAAgB,EAAC;EAC9BT,SAAS,EAAE;IACTU,YAAY,EAAE,EAAE;IAChBC,QAAQ,EAAE;EACZ,CAAC;EACDL,KAAK,EAAE;IACLM,QAAQ,EAAE,GAAG;IACbC,KAAK,EAAE,GAAG;IACVC,MAAM,EAAE,GAAG;IACXJ,YAAY,EAAE,EAAE;IAChBC,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC;AAAC,IAAAI,QAAA,GAEYzB,4BAA4B;AAAA0B,OAAA,CAAA3B,OAAA,GAAA0B,QAAA"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundation");
9
+ var _uikitUtils = require("@sendbird/uikit-utils");
10
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
11
+ 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; }
12
+ const ThreadParentMessageFileVoice = props => {
13
+ const {
14
+ onLongPress,
15
+ onToggleVoiceMessage,
16
+ parentMessage,
17
+ durationMetaArrayKey = 'KEY_VOICE_MESSAGE_DURATION',
18
+ onUnmount
19
+ } = props;
20
+ const fileMessage = parentMessage;
21
+ if (!fileMessage) return null;
22
+ const {
23
+ colors
24
+ } = (0, _uikitReactNativeFoundation.useUIKitTheme)();
25
+ const [state, setState] = (0, _react.useState)(() => {
26
+ var _meta$value;
27
+ const meta = fileMessage.metaArrays.find(it => it.key === durationMetaArrayKey);
28
+ const value = meta === null || meta === void 0 ? void 0 : (_meta$value = meta.value) === null || _meta$value === void 0 ? void 0 : _meta$value[0];
29
+ const initialDuration = value ? parseInt(value, 10) : 0;
30
+ return {
31
+ status: 'paused',
32
+ currentTime: 0,
33
+ duration: initialDuration
34
+ };
35
+ });
36
+ (0, _react.useEffect)(() => {
37
+ return () => {
38
+ onUnmount();
39
+ };
40
+ }, []);
41
+ const uiColors = colors.ui.groupChannelMessage['incoming'];
42
+ const remainingTime = state.duration - state.currentTime;
43
+ return /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Box, {
44
+ style: styles.container,
45
+ backgroundColor: uiColors.enabled.background
46
+ }, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.PressBox, {
47
+ onPress: () => onToggleVoiceMessage === null || onToggleVoiceMessage === void 0 ? void 0 : onToggleVoiceMessage(state, setState),
48
+ onLongPress: onLongPress
49
+ }, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.ProgressBar, {
50
+ current: state.currentTime,
51
+ total: state.duration,
52
+ style: {
53
+ minWidth: 136,
54
+ height: 44
55
+ },
56
+ trackColor: uiColors.enabled.voiceProgressTrack,
57
+ overlay: /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Box, {
58
+ flex: 1,
59
+ flexDirection: 'row',
60
+ alignItems: 'center',
61
+ justifyContent: 'space-between',
62
+ paddingHorizontal: 12
63
+ }, state.status === 'preparing' ? /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.LoadingSpinner, {
64
+ size: 24,
65
+ color: uiColors.enabled.voiceSpinner
66
+ }) : /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Icon, {
67
+ size: 16,
68
+ containerStyle: {
69
+ backgroundColor: uiColors.enabled.voiceActionIconBackground,
70
+ padding: 6,
71
+ borderRadius: 16
72
+ },
73
+ icon: state.status === 'paused' ? 'play' : 'pause'
74
+ }), /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Text, {
75
+ body3: true,
76
+ style: {
77
+ lineHeight: undefined,
78
+ marginLeft: 6,
79
+ opacity: 0.88
80
+ },
81
+ color: uiColors.enabled.textVoicePlaytime
82
+ }, (0, _uikitUtils.millsToMSS)(state.currentTime === 0 ? state.duration : remainingTime)))
83
+ })));
84
+ };
85
+ const styles = (0, _uikitReactNativeFoundation.createStyleSheet)({
86
+ container: {
87
+ borderRadius: 16,
88
+ overflow: 'hidden',
89
+ maxWidth: 136
90
+ }
91
+ });
92
+ var _default = ThreadParentMessageFileVoice;
93
+ exports.default = _default;
94
+ //# sourceMappingURL=ThreadParentMessage.file.voice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_uikitReactNativeFoundation","_uikitUtils","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ThreadParentMessageFileVoice","props","onLongPress","onToggleVoiceMessage","parentMessage","durationMetaArrayKey","onUnmount","fileMessage","colors","useUIKitTheme","state","setState","useState","_meta$value","meta","metaArrays","find","it","value","initialDuration","parseInt","status","currentTime","duration","useEffect","uiColors","ui","groupChannelMessage","remainingTime","createElement","Box","style","styles","container","backgroundColor","enabled","background","PressBox","onPress","ProgressBar","current","total","minWidth","height","trackColor","voiceProgressTrack","overlay","flex","flexDirection","alignItems","justifyContent","paddingHorizontal","LoadingSpinner","size","color","voiceSpinner","Icon","containerStyle","voiceActionIconBackground","padding","borderRadius","icon","Text","body3","lineHeight","undefined","marginLeft","opacity","textVoicePlaytime","millsToMSS","createStyleSheet","overflow","maxWidth","_default","exports"],"sources":["ThreadParentMessage.file.voice.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\n\nimport { Box, Icon, PressBox, Text, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { LoadingSpinner, ProgressBar } from '@sendbird/uikit-react-native-foundation';\nimport { createStyleSheet } from '@sendbird/uikit-react-native-foundation';\nimport { SendbirdFileMessage, millsToMSS } from '@sendbird/uikit-utils';\n\nimport { ThreadParentMessageRendererProps } from './index';\n\nexport type VoiceFileMessageState = {\n status: 'preparing' | 'playing' | 'paused';\n currentTime: number;\n duration: number;\n};\n\ntype Props = ThreadParentMessageRendererProps<{\n durationMetaArrayKey?: string;\n onUnmount: () => void;\n}>;\n\nconst ThreadParentMessageFileVoice = (props: Props) => {\n const {\n onLongPress,\n onToggleVoiceMessage,\n parentMessage,\n durationMetaArrayKey = 'KEY_VOICE_MESSAGE_DURATION',\n onUnmount,\n } = props;\n\n const fileMessage: SendbirdFileMessage = parentMessage as SendbirdFileMessage;\n if (!fileMessage) return null;\n\n const { colors } = useUIKitTheme();\n\n const [state, setState] = useState<VoiceFileMessageState>(() => {\n const meta = fileMessage.metaArrays.find((it) => it.key === durationMetaArrayKey);\n const value = meta?.value?.[0];\n const initialDuration = value ? parseInt(value, 10) : 0;\n return {\n status: 'paused',\n currentTime: 0,\n duration: initialDuration,\n };\n });\n\n useEffect(() => {\n return () => {\n onUnmount();\n };\n }, []);\n\n const uiColors = colors.ui.groupChannelMessage['incoming'];\n const remainingTime = state.duration - state.currentTime;\n\n return (\n <Box style={styles.container} backgroundColor={uiColors.enabled.background}>\n <PressBox onPress={() => onToggleVoiceMessage?.(state, setState)} onLongPress={onLongPress}>\n <ProgressBar\n current={state.currentTime}\n total={state.duration}\n style={{ minWidth: 136, height: 44 }}\n trackColor={uiColors.enabled.voiceProgressTrack}\n overlay={\n <Box\n flex={1}\n flexDirection={'row'}\n alignItems={'center'}\n justifyContent={'space-between'}\n paddingHorizontal={12}\n >\n {state.status === 'preparing' ? (\n <LoadingSpinner size={24} color={uiColors.enabled.voiceSpinner} />\n ) : (\n <Icon\n size={16}\n containerStyle={{\n backgroundColor: uiColors.enabled.voiceActionIconBackground,\n padding: 6,\n borderRadius: 16,\n }}\n icon={state.status === 'paused' ? 'play' : 'pause'}\n />\n )}\n <Text\n body3\n style={{ lineHeight: undefined, marginLeft: 6, opacity: 0.88 }}\n color={uiColors.enabled.textVoicePlaytime}\n >\n {millsToMSS(state.currentTime === 0 ? state.duration : remainingTime)}\n </Text>\n </Box>\n }\n />\n </PressBox>\n </Box>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n borderRadius: 16,\n overflow: 'hidden',\n maxWidth: 136,\n },\n});\n\nexport default ThreadParentMessageFileVoice;\n"],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundation");
9
+ var _uikitUtils = require("@sendbird/uikit-utils");
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
12
+ const ThreadParentMessageUser = props => {
13
+ var _props$renderRegexTex;
14
+ const userMessage = props.parentMessage;
15
+ if (!userMessage) return null;
16
+ const {
17
+ colors
18
+ } = (0, _uikitReactNativeFoundation.useUIKitTheme)();
19
+ return /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Text, {
20
+ body3: true,
21
+ color: colors.onBackground01,
22
+ suppressHighlighting: true
23
+ }, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.RegexText, {
24
+ body3: true,
25
+ color: colors.onBackground01,
26
+ patterns: [...(props.regexTextPatterns ?? []), {
27
+ regex: _uikitUtils.urlRegexStrict,
28
+ replacer(_ref) {
29
+ let {
30
+ match,
31
+ parentProps,
32
+ keyPrefix,
33
+ index
34
+ } = _ref;
35
+ return /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Text, _extends({}, parentProps, {
36
+ key: `${keyPrefix}-${index}`,
37
+ onPress: () => {
38
+ var _props$onPressURL;
39
+ return (_props$onPressURL = props.onPressURL) === null || _props$onPressURL === void 0 ? void 0 : _props$onPressURL.call(props, match);
40
+ },
41
+ style: [parentProps === null || parentProps === void 0 ? void 0 : parentProps.style, styles.urlText]
42
+ }), match);
43
+ }
44
+ }]
45
+ }, (_props$renderRegexTex = props.renderRegexTextChildren) === null || _props$renderRegexTex === void 0 ? void 0 : _props$renderRegexTex.call(props, userMessage)), Boolean(userMessage.updatedAt) && /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Text, {
46
+ body3: true,
47
+ color: colors.onBackground02
48
+ }, ' (edited)'));
49
+ };
50
+ const styles = (0, _uikitReactNativeFoundation.createStyleSheet)({
51
+ bubble: {
52
+ paddingHorizontal: 12,
53
+ paddingVertical: 6
54
+ },
55
+ urlText: {
56
+ textDecorationLine: 'underline'
57
+ }
58
+ });
59
+ var _default = ThreadParentMessageUser;
60
+ exports.default = _default;
61
+ //# sourceMappingURL=ThreadParentMessage.user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_uikitReactNativeFoundation","_uikitUtils","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","ThreadParentMessageUser","props","_props$renderRegexTex","userMessage","parentMessage","colors","useUIKitTheme","createElement","Text","body3","color","onBackground01","suppressHighlighting","RegexText","patterns","regexTextPatterns","regex","urlRegexStrict","replacer","_ref","match","parentProps","keyPrefix","index","onPress","_props$onPressURL","onPressURL","style","styles","urlText","renderRegexTextChildren","Boolean","updatedAt","onBackground02","createStyleSheet","bubble","paddingHorizontal","paddingVertical","textDecorationLine","_default","exports"],"sources":["ThreadParentMessage.user.tsx"],"sourcesContent":["import React from 'react';\n\nimport { type RegexTextPattern, Text, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { RegexText, createStyleSheet } from '@sendbird/uikit-react-native-foundation';\nimport { SendbirdUserMessage, urlRegexStrict } from '@sendbird/uikit-utils';\n\nimport { ThreadParentMessageRendererProps } from './index';\n\ntype Props = ThreadParentMessageRendererProps<{\n regexTextPatterns?: RegexTextPattern[];\n renderRegexTextChildren?: (message: SendbirdUserMessage) => string;\n}>;\n\nconst ThreadParentMessageUser = (props: Props) => {\n const userMessage: SendbirdUserMessage = props.parentMessage as SendbirdUserMessage;\n if (!userMessage) return null;\n\n const { colors } = useUIKitTheme();\n\n return (\n <Text body3 color={colors.onBackground01} suppressHighlighting>\n <RegexText\n body3\n color={colors.onBackground01}\n patterns={[\n ...(props.regexTextPatterns ?? []),\n {\n regex: urlRegexStrict,\n replacer({ match, parentProps, keyPrefix, index }) {\n return (\n <Text\n {...parentProps}\n key={`${keyPrefix}-${index}`}\n onPress={() => props.onPressURL?.(match)}\n style={[parentProps?.style, styles.urlText]}\n >\n {match}\n </Text>\n );\n },\n },\n ]}\n >\n {props.renderRegexTextChildren?.(userMessage)}\n </RegexText>\n {Boolean(userMessage.updatedAt) && (\n <Text body3 color={colors.onBackground02}>\n {' (edited)'}\n </Text>\n )}\n </Text>\n );\n};\n\nconst styles = createStyleSheet({\n bubble: {\n paddingHorizontal: 12,\n paddingVertical: 6,\n },\n urlText: {\n textDecorationLine: 'underline',\n },\n});\n\nexport default ThreadParentMessageUser;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,2BAAA,GAAAD,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AAA4E,SAAAD,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,SAAA,IAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAI,GAAA,IAAAD,MAAA,QAAAP,MAAA,CAAAS,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAJ,MAAA,EAAAC,GAAA,KAAAL,MAAA,CAAAK,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAL,MAAA,YAAAJ,QAAA,CAAAa,KAAA,OAAAP,SAAA;AAS5E,MAAMQ,uBAAuB,GAAIC,KAAY,IAAK;EAAA,IAAAC,qBAAA;EAChD,MAAMC,WAAgC,GAAGF,KAAK,CAACG,aAAoC;EACnF,IAAI,CAACD,WAAW,EAAE,OAAO,IAAI;EAE7B,MAAM;IAAEE;EAAO,CAAC,GAAG,IAAAC,yCAAa,GAAE;EAElC,oBACE5B,MAAA,CAAAO,OAAA,CAAAsB,aAAA,CAAC1B,2BAAA,CAAA2B,IAAI;IAACC,KAAK;IAACC,KAAK,EAAEL,MAAM,CAACM,cAAe;IAACC,oBAAoB;EAAA,gBAC5DlC,MAAA,CAAAO,OAAA,CAAAsB,aAAA,CAAC1B,2BAAA,CAAAgC,SAAS;IACRJ,KAAK;IACLC,KAAK,EAAEL,MAAM,CAACM,cAAe;IAC7BG,QAAQ,EAAE,CACR,IAAIb,KAAK,CAACc,iBAAiB,IAAI,EAAE,CAAC,EAClC;MACEC,KAAK,EAAEC,0BAAc;MACrBC,QAAQA,CAAAC,IAAA,EAA2C;QAAA,IAA1C;UAAEC,KAAK;UAAEC,WAAW;UAAEC,SAAS;UAAEC;QAAM,CAAC,GAAAJ,IAAA;QAC/C,oBACEzC,MAAA,CAAAO,OAAA,CAAAsB,aAAA,CAAC1B,2BAAA,CAAA2B,IAAI,EAAAtB,QAAA,KACCmC,WAAW;UACf1B,GAAG,EAAG,GAAE2B,SAAU,IAAGC,KAAM,EAAE;UAC7BC,OAAO,EAAEA,CAAA;YAAA,IAAAC,iBAAA;YAAA,QAAAA,iBAAA,GAAMxB,KAAK,CAACyB,UAAU,cAAAD,iBAAA,uBAAhBA,iBAAA,CAAA3B,IAAA,CAAAG,KAAK,EAAcmB,KAAK,CAAC;UAAA,CAAC;UACzCO,KAAK,EAAE,CAACN,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEM,KAAK,EAAEC,MAAM,CAACC,OAAO;QAAE,IAE3CT,KAAK,CACD;MAEX;IACF,CAAC;EACD,IAAAlB,qBAAA,GAEDD,KAAK,CAAC6B,uBAAuB,cAAA5B,qBAAA,uBAA7BA,qBAAA,CAAAJ,IAAA,CAAAG,KAAK,EAA2BE,WAAW,CAAC,CACnC,EACX4B,OAAO,CAAC5B,WAAW,CAAC6B,SAAS,CAAC,iBAC7BtD,MAAA,CAAAO,OAAA,CAAAsB,aAAA,CAAC1B,2BAAA,CAAA2B,IAAI;IAACC,KAAK;IAACC,KAAK,EAAEL,MAAM,CAAC4B;EAAe,GACtC,WAAW,CAEf,CACI;AAEX,CAAC;AAED,MAAML,MAAM,GAAG,IAAAM,4CAAgB,EAAC;EAC9BC,MAAM,EAAE;IACNC,iBAAiB,EAAE,EAAE;IACrBC,eAAe,EAAE;EACnB,CAAC;EACDR,OAAO,EAAE;IACPS,kBAAkB,EAAE;EACtB;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAEYvC,uBAAuB;AAAAwC,OAAA,CAAAvD,OAAA,GAAAsD,QAAA"}
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundation");
9
+ var _uikitUtils = require("@sendbird/uikit-utils");
10
+ var _useContext = require("./../../hooks/useContext");
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
13
+ const ThreadParentMessageUserOg = props => {
14
+ var _props$renderRegexTex;
15
+ const userMessage = props.parentMessage;
16
+ if (!userMessage) return null;
17
+ const {
18
+ sbOptions
19
+ } = (0, _useContext.useSendbirdChat)();
20
+ const {
21
+ select,
22
+ colors,
23
+ palette
24
+ } = (0, _uikitReactNativeFoundation.useUIKitTheme)();
25
+ const enableOgtag = sbOptions.uikitWithAppInfo.groupChannel.channel.enableOgtag;
26
+ const onPressMessage = userMessage => (0, _uikitUtils.useFreshCallback)(() => {
27
+ var _userMessage$ogMetaDa, _props$onPressURL;
28
+ typeof ((_userMessage$ogMetaDa = userMessage.ogMetaData) === null || _userMessage$ogMetaDa === void 0 ? void 0 : _userMessage$ogMetaDa.url) === 'string' && ((_props$onPressURL = props.onPressURL) === null || _props$onPressURL === void 0 ? void 0 : _props$onPressURL.call(props, userMessage.ogMetaData.url));
29
+ });
30
+ return /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Box, null, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.PressBox, {
31
+ activeOpacity: 0.85,
32
+ onPress: onPressMessage(userMessage)
33
+ }, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Text, {
34
+ body3: true,
35
+ color: colors.onBackground01,
36
+ suppressHighlighting: true
37
+ }, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.RegexText, {
38
+ body3: true,
39
+ color: colors.onBackground01,
40
+ patterns: [...(props.regexTextPatterns ?? []), {
41
+ regex: _uikitUtils.urlRegexStrict,
42
+ replacer(_ref) {
43
+ let {
44
+ match,
45
+ parentProps,
46
+ keyPrefix,
47
+ index
48
+ } = _ref;
49
+ return /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Text, _extends({}, parentProps, {
50
+ key: `${keyPrefix}-${index}`,
51
+ onPress: () => {
52
+ var _props$onPressURL2;
53
+ return (_props$onPressURL2 = props.onPressURL) === null || _props$onPressURL2 === void 0 ? void 0 : _props$onPressURL2.call(props, match);
54
+ },
55
+ style: [parentProps === null || parentProps === void 0 ? void 0 : parentProps.style, styles.urlText]
56
+ }), match);
57
+ }
58
+ }]
59
+ }, (_props$renderRegexTex = props.renderRegexTextChildren) === null || _props$renderRegexTex === void 0 ? void 0 : _props$renderRegexTex.call(props, userMessage)), Boolean(userMessage.updatedAt) && /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Text, {
60
+ body3: true,
61
+ color: colors.onBackground02
62
+ }, ' (edited)'))), userMessage.ogMetaData && enableOgtag && /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.PressBox, {
63
+ onPress: onPressMessage(userMessage),
64
+ style: styles.container
65
+ }, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Box, null, !!userMessage.ogMetaData.defaultImage && /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.ImageWithPlaceholder, {
66
+ style: styles.ogImage,
67
+ source: {
68
+ uri: userMessage.ogMetaData.defaultImage.url
69
+ }
70
+ }), /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Box, {
71
+ style: styles.ogContainer,
72
+ backgroundColor: select({
73
+ dark: palette.background400,
74
+ light: palette.background100
75
+ })
76
+ }, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Text, {
77
+ numberOfLines: 3,
78
+ body2: true,
79
+ color: colors.onBackground01,
80
+ style: styles.ogTitle
81
+ }, userMessage.ogMetaData.title), !!userMessage.ogMetaData.description && /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Text, {
82
+ numberOfLines: 1,
83
+ caption2: true,
84
+ color: colors.onBackground01,
85
+ style: styles.ogDesc
86
+ }, userMessage.ogMetaData.description), /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Text, {
87
+ numberOfLines: 1,
88
+ caption2: true,
89
+ color: colors.onBackground02
90
+ }, userMessage.ogMetaData.url)))));
91
+ };
92
+ const styles = (0, _uikitReactNativeFoundation.createStyleSheet)({
93
+ container: {
94
+ borderRadius: 16,
95
+ overflow: 'hidden'
96
+ },
97
+ ogContainer: {
98
+ paddingHorizontal: 12,
99
+ paddingTop: 8,
100
+ paddingBottom: 12,
101
+ maxWidth: 240,
102
+ borderBottomLeftRadius: 16,
103
+ borderBottomRightRadius: 16
104
+ },
105
+ ogImage: {
106
+ width: 240,
107
+ height: 136,
108
+ borderTopLeftRadius: 16,
109
+ borderTopRightRadius: 16
110
+ },
111
+ ogUrl: {
112
+ marginBottom: 4
113
+ },
114
+ ogTitle: {
115
+ marginBottom: 4
116
+ },
117
+ ogDesc: {
118
+ lineHeight: 14,
119
+ marginBottom: 8
120
+ },
121
+ urlText: {
122
+ textDecorationLine: 'underline'
123
+ }
124
+ });
125
+ var _default = ThreadParentMessageUserOg;
126
+ exports.default = _default;
127
+ //# sourceMappingURL=ThreadParentMessage.user.og.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_uikitReactNativeFoundation","_uikitUtils","_useContext","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","ThreadParentMessageUserOg","props","_props$renderRegexTex","userMessage","parentMessage","sbOptions","useSendbirdChat","select","colors","palette","useUIKitTheme","enableOgtag","uikitWithAppInfo","groupChannel","channel","onPressMessage","useFreshCallback","_userMessage$ogMetaDa","_props$onPressURL","ogMetaData","url","onPressURL","createElement","Box","PressBox","activeOpacity","onPress","Text","body3","color","onBackground01","suppressHighlighting","RegexText","patterns","regexTextPatterns","regex","urlRegexStrict","replacer","_ref","match","parentProps","keyPrefix","index","_props$onPressURL2","style","styles","urlText","renderRegexTextChildren","Boolean","updatedAt","onBackground02","container","defaultImage","ImageWithPlaceholder","ogImage","uri","ogContainer","backgroundColor","dark","background400","light","background100","numberOfLines","body2","ogTitle","title","description","caption2","ogDesc","createStyleSheet","borderRadius","overflow","paddingHorizontal","paddingTop","paddingBottom","maxWidth","borderBottomLeftRadius","borderBottomRightRadius","width","height","borderTopLeftRadius","borderTopRightRadius","ogUrl","marginBottom","lineHeight","textDecorationLine","_default","exports"],"sources":["ThreadParentMessage.user.og.tsx"],"sourcesContent":["import React from 'react';\n\nimport {\n Box,\n ImageWithPlaceholder,\n PressBox,\n RegexText,\n type RegexTextPattern,\n Text,\n createStyleSheet,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport { SendbirdUserMessage, urlRegexStrict, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport { useSendbirdChat } from './../../hooks/useContext';\nimport { ThreadParentMessageRendererProps } from './index';\n\ntype Props = ThreadParentMessageRendererProps<{\n regexTextPatterns?: RegexTextPattern[];\n renderRegexTextChildren?: (message: SendbirdUserMessage) => string;\n}>;\n\nconst ThreadParentMessageUserOg = (props: Props) => {\n const userMessage: SendbirdUserMessage = props.parentMessage as SendbirdUserMessage;\n if (!userMessage) return null;\n\n const { sbOptions } = useSendbirdChat();\n const { select, colors, palette } = useUIKitTheme();\n const enableOgtag = sbOptions.uikitWithAppInfo.groupChannel.channel.enableOgtag;\n const onPressMessage = (userMessage: SendbirdUserMessage) =>\n useFreshCallback(() => {\n typeof userMessage.ogMetaData?.url === 'string' && props.onPressURL?.(userMessage.ogMetaData.url);\n });\n\n return (\n <Box>\n <PressBox activeOpacity={0.85} onPress={onPressMessage(userMessage)}>\n <Text body3 color={colors.onBackground01} suppressHighlighting>\n <RegexText\n body3\n color={colors.onBackground01}\n patterns={[\n ...(props.regexTextPatterns ?? []),\n {\n regex: urlRegexStrict,\n replacer({ match, parentProps, keyPrefix, index }) {\n return (\n <Text\n {...parentProps}\n key={`${keyPrefix}-${index}`}\n onPress={() => props.onPressURL?.(match)}\n style={[parentProps?.style, styles.urlText]}\n >\n {match}\n </Text>\n );\n },\n },\n ]}\n >\n {props.renderRegexTextChildren?.(userMessage)}\n </RegexText>\n {Boolean(userMessage.updatedAt) && (\n <Text body3 color={colors.onBackground02}>\n {' (edited)'}\n </Text>\n )}\n </Text>\n </PressBox>\n {userMessage.ogMetaData && enableOgtag && (\n <PressBox onPress={onPressMessage(userMessage)} style={styles.container}>\n <Box>\n {!!userMessage.ogMetaData.defaultImage && (\n <ImageWithPlaceholder style={styles.ogImage} source={{ uri: userMessage.ogMetaData.defaultImage.url }} />\n )}\n <Box\n style={styles.ogContainer}\n backgroundColor={select({ dark: palette.background400, light: palette.background100 })}\n >\n <Text numberOfLines={3} body2 color={colors.onBackground01} style={styles.ogTitle}>\n {userMessage.ogMetaData.title}\n </Text>\n {!!userMessage.ogMetaData.description && (\n <Text numberOfLines={1} caption2 color={colors.onBackground01} style={styles.ogDesc}>\n {userMessage.ogMetaData.description}\n </Text>\n )}\n <Text numberOfLines={1} caption2 color={colors.onBackground02}>\n {userMessage.ogMetaData.url}\n </Text>\n </Box>\n </Box>\n </PressBox>\n )}\n </Box>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n borderRadius: 16,\n overflow: 'hidden',\n },\n ogContainer: {\n paddingHorizontal: 12,\n paddingTop: 8,\n paddingBottom: 12,\n maxWidth: 240,\n borderBottomLeftRadius: 16,\n borderBottomRightRadius: 16,\n },\n ogImage: {\n width: 240,\n height: 136,\n borderTopLeftRadius: 16,\n borderTopRightRadius: 16,\n },\n ogUrl: {\n marginBottom: 4,\n },\n ogTitle: {\n marginBottom: 4,\n },\n ogDesc: {\n lineHeight: 14,\n marginBottom: 8,\n },\n urlText: {\n textDecorationLine: 'underline',\n },\n});\n\nexport default ThreadParentMessageUserOg;\n"],"mappings":"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"}
@@ -0,0 +1,206 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundation");
9
+ var _uikitUtils = require("@sendbird/uikit-utils");
10
+ var _constants = require("../../constants");
11
+ var _SBUUtils = _interopRequireDefault(require("../../libs/SBUUtils"));
12
+ var _useContext = require("./../../hooks/useContext");
13
+ var _ThreadParentMessage = _interopRequireDefault(require("./ThreadParentMessage.file"));
14
+ var _ThreadParentMessageFile = _interopRequireDefault(require("./ThreadParentMessage.file.image"));
15
+ var _ThreadParentMessageFile2 = _interopRequireDefault(require("./ThreadParentMessage.file.video"));
16
+ var _ThreadParentMessageFile3 = _interopRequireDefault(require("./ThreadParentMessage.file.voice"));
17
+ var _ThreadParentMessage2 = _interopRequireDefault(require("./ThreadParentMessage.user"));
18
+ var _ThreadParentMessageUser = _interopRequireDefault(require("./ThreadParentMessage.user.og"));
19
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
+ 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
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
23
+ const ThreadParentMessageRenderer = props => {
24
+ const playerUnsubscribes = (0, _react.useRef)([]);
25
+ const {
26
+ sbOptions,
27
+ currentUser,
28
+ mentionManager
29
+ } = (0, _useContext.useSendbirdChat)();
30
+ const {
31
+ palette
32
+ } = (0, _uikitReactNativeFoundation.useUIKitTheme)();
33
+ const {
34
+ mediaService,
35
+ playerService
36
+ } = (0, _useContext.usePlatformService)();
37
+ const parentMessage = props.parentMessage;
38
+ const resetPlayer = async () => {
39
+ playerUnsubscribes.current.forEach(unsubscribe => {
40
+ try {
41
+ unsubscribe();
42
+ } catch {}
43
+ });
44
+ playerUnsubscribes.current.length = 0;
45
+ await playerService.reset();
46
+ };
47
+ const messageProps = {
48
+ onPressURL: url => _SBUUtils.default.openURL(url),
49
+ onToggleVoiceMessage: async (state, setState) => {
50
+ if ((0, _uikitUtils.isVoiceMessage)(parentMessage) && parentMessage.sendingStatus === 'succeeded') {
51
+ if (playerService.uri === parentMessage.url) {
52
+ if (playerService.state === 'playing') {
53
+ await playerService.pause();
54
+ } else {
55
+ await playerService.play(parentMessage.url);
56
+ }
57
+ } else {
58
+ if (playerService.state !== 'idle') {
59
+ await resetPlayer();
60
+ }
61
+ const shouldSeekToTime = state.duration > state.currentTime && state.currentTime > 0;
62
+ let seekFinished = !shouldSeekToTime;
63
+ const forPlayback = playerService.addPlaybackListener(_ref => {
64
+ let {
65
+ stopped,
66
+ currentTime,
67
+ duration
68
+ } = _ref;
69
+ if (seekFinished) {
70
+ setState(prevState => ({
71
+ ...prevState,
72
+ currentTime: stopped ? 0 : currentTime,
73
+ duration
74
+ }));
75
+ }
76
+ });
77
+ const forState = playerService.addStateListener(state => {
78
+ switch (state) {
79
+ case 'preparing':
80
+ setState(prevState => ({
81
+ ...prevState,
82
+ status: 'preparing'
83
+ }));
84
+ break;
85
+ case 'playing':
86
+ setState(prevState => ({
87
+ ...prevState,
88
+ status: 'playing'
89
+ }));
90
+ break;
91
+ case 'idle':
92
+ case 'paused':
93
+ {
94
+ setState(prevState => ({
95
+ ...prevState,
96
+ status: 'paused'
97
+ }));
98
+ break;
99
+ }
100
+ case 'stopped':
101
+ setState(prevState => ({
102
+ ...prevState,
103
+ status: 'paused'
104
+ }));
105
+ break;
106
+ }
107
+ });
108
+ playerUnsubscribes.current.push(forPlayback, forState);
109
+ await playerService.play(parentMessage.url);
110
+ if (shouldSeekToTime) {
111
+ await playerService.seek(state.currentTime);
112
+ seekFinished = true;
113
+ }
114
+ }
115
+ }
116
+ },
117
+ ...props
118
+ };
119
+ const userMessageProps = {
120
+ renderRegexTextChildren: message => {
121
+ if (mentionManager.shouldUseMentionedMessageTemplate(message, sbOptions.uikit.groupChannel.channel.enableMention)) {
122
+ return message.mentionedMessageTemplate;
123
+ } else {
124
+ return message.message;
125
+ }
126
+ },
127
+ regexTextPatterns: [{
128
+ regex: mentionManager.templateRegex,
129
+ replacer(_ref2) {
130
+ var _parentMessage$mentio;
131
+ let {
132
+ match,
133
+ groups,
134
+ parentProps,
135
+ index,
136
+ keyPrefix
137
+ } = _ref2;
138
+ const user = (_parentMessage$mentio = parentMessage.mentionedUsers) === null || _parentMessage$mentio === void 0 ? void 0 : _parentMessage$mentio.find(it => it.userId === groups[2]);
139
+ if (user) {
140
+ const mentionColor = !(0, _uikitUtils.isMyMessage)(parentMessage, currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId) && user.userId === (currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId) ? palette.onBackgroundLight01 : parentProps === null || parentProps === void 0 ? void 0 : parentProps.color;
141
+ return /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Text, _extends({}, parentProps, {
142
+ key: `${keyPrefix}-${index}`,
143
+ color: mentionColor,
144
+ onPress: () => {
145
+ var _messageProps$onPress;
146
+ return (_messageProps$onPress = messageProps.onPressMentionedUser) === null || _messageProps$onPress === void 0 ? void 0 : _messageProps$onPress.call(messageProps, user);
147
+ },
148
+ onLongPress: messageProps.onLongPress,
149
+ style: [parentProps === null || parentProps === void 0 ? void 0 : parentProps.style, {
150
+ fontWeight: '700'
151
+ }, user.userId === (currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId) && {
152
+ backgroundColor: palette.highlight
153
+ }]
154
+ }), `${mentionManager.asMentionedMessageText(user)}`);
155
+ }
156
+ return match;
157
+ }
158
+ }]
159
+ };
160
+ switch ((0, _uikitUtils.getMessageType)(props.parentMessage)) {
161
+ case 'user':
162
+ {
163
+ return /*#__PURE__*/_react.default.createElement(_ThreadParentMessage2.default, _extends({}, userMessageProps, messageProps));
164
+ }
165
+ case 'user.opengraph':
166
+ {
167
+ return /*#__PURE__*/_react.default.createElement(_ThreadParentMessageUser.default, _extends({}, userMessageProps, messageProps));
168
+ }
169
+ case 'file':
170
+ case 'file.audio':
171
+ {
172
+ return /*#__PURE__*/_react.default.createElement(_ThreadParentMessage.default, messageProps);
173
+ }
174
+ case 'file.video':
175
+ {
176
+ return /*#__PURE__*/_react.default.createElement(_ThreadParentMessageFile2.default, _extends({
177
+ fetchThumbnailFromVideoSource: uri => mediaService.getVideoThumbnail({
178
+ url: uri,
179
+ timeMills: 1000
180
+ })
181
+ }, messageProps));
182
+ }
183
+ case 'file.image':
184
+ {
185
+ return /*#__PURE__*/_react.default.createElement(_ThreadParentMessageFile.default, messageProps);
186
+ }
187
+ case 'file.voice':
188
+ {
189
+ return /*#__PURE__*/_react.default.createElement(_ThreadParentMessageFile3.default, _extends({
190
+ durationMetaArrayKey: _constants.VOICE_MESSAGE_META_ARRAY_DURATION_KEY,
191
+ onUnmount: () => {
192
+ if ((0, _uikitUtils.isVoiceMessage)(parentMessage) && playerService.uri === parentMessage.url) {
193
+ resetPlayer();
194
+ }
195
+ }
196
+ }, messageProps));
197
+ }
198
+ default:
199
+ {
200
+ return null;
201
+ }
202
+ }
203
+ };
204
+ var _default = /*#__PURE__*/_react.default.memo(ThreadParentMessageRenderer);
205
+ exports.default = _default;
206
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_uikitReactNativeFoundation","_uikitUtils","_constants","_SBUUtils","_interopRequireDefault","_useContext","_ThreadParentMessage","_ThreadParentMessageFile","_ThreadParentMessageFile2","_ThreadParentMessageFile3","_ThreadParentMessage2","_ThreadParentMessageUser","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","ThreadParentMessageRenderer","props","playerUnsubscribes","useRef","sbOptions","currentUser","mentionManager","useSendbirdChat","palette","useUIKitTheme","mediaService","playerService","usePlatformService","parentMessage","resetPlayer","current","forEach","unsubscribe","reset","messageProps","onPressURL","url","SBUUtils","openURL","onToggleVoiceMessage","state","setState","isVoiceMessage","sendingStatus","uri","pause","play","shouldSeekToTime","duration","currentTime","seekFinished","forPlayback","addPlaybackListener","_ref","stopped","prevState","forState","addStateListener","status","push","seek","userMessageProps","renderRegexTextChildren","message","shouldUseMentionedMessageTemplate","uikit","groupChannel","channel","enableMention","mentionedMessageTemplate","regexTextPatterns","regex","templateRegex","replacer","_ref2","_parentMessage$mentio","match","groups","parentProps","index","keyPrefix","user","mentionedUsers","find","it","userId","mentionColor","isMyMessage","onBackgroundLight01","color","createElement","Text","onPress","_messageProps$onPress","onPressMentionedUser","onLongPress","style","fontWeight","backgroundColor","highlight","asMentionedMessageText","getMessageType","fetchThumbnailFromVideoSource","getVideoThumbnail","timeMills","durationMetaArrayKey","VOICE_MESSAGE_META_ARRAY_DURATION_KEY","onUnmount","_default","React","memo","exports"],"sources":["index.tsx"],"sourcesContent":["import React, { useRef } from 'react';\n\nimport { RegexTextPattern, Text, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdFileMessage,\n type SendbirdUser,\n SendbirdUserMessage,\n getMessageType,\n isMyMessage,\n isVoiceMessage,\n} from '@sendbird/uikit-utils';\n\nimport { VOICE_MESSAGE_META_ARRAY_DURATION_KEY } from '../../constants';\nimport SBUUtils from '../../libs/SBUUtils';\nimport { usePlatformService, useSendbirdChat } from './../../hooks/useContext';\nimport ThreadParentMessageFile from './ThreadParentMessage.file';\nimport ThreadParentMessageFileImage from './ThreadParentMessage.file.image';\nimport ThreadParentMessageFileVideo from './ThreadParentMessage.file.video';\nimport ThreadParentMessageFileVoice, { VoiceFileMessageState } from './ThreadParentMessage.file.voice';\nimport ThreadParentMessageUser from './ThreadParentMessage.user';\nimport ThreadParentMessageUserOg from './ThreadParentMessage.user.og';\n\nexport type ThreadParentMessageRendererProps<AdditionalProps = unknown> = {\n parentMessage: SendbirdUserMessage | SendbirdFileMessage;\n onPress?: () => void;\n onLongPress?: () => void;\n onPressURL?: (url: string) => void;\n onPressMentionedUser?: (mentionedUser?: SendbirdUser) => void;\n onToggleVoiceMessage?: (\n state: VoiceFileMessageState,\n setState: React.Dispatch<React.SetStateAction<VoiceFileMessageState>>,\n ) => Promise<void>;\n} & AdditionalProps;\n\nconst ThreadParentMessageRenderer = (props: ThreadParentMessageRendererProps) => {\n const playerUnsubscribes = useRef<(() => void)[]>([]);\n const { sbOptions, currentUser, mentionManager } = useSendbirdChat();\n const { palette } = useUIKitTheme();\n const { mediaService, playerService } = usePlatformService();\n const parentMessage = props.parentMessage;\n\n const resetPlayer = async () => {\n playerUnsubscribes.current.forEach((unsubscribe) => {\n try {\n unsubscribe();\n } catch {}\n });\n playerUnsubscribes.current.length = 0;\n await playerService.reset();\n };\n\n const messageProps: ThreadParentMessageRendererProps = {\n onPressURL: (url) => SBUUtils.openURL(url),\n onToggleVoiceMessage: async (state, setState) => {\n if (isVoiceMessage(parentMessage) && parentMessage.sendingStatus === 'succeeded') {\n if (playerService.uri === parentMessage.url) {\n if (playerService.state === 'playing') {\n await playerService.pause();\n } else {\n await playerService.play(parentMessage.url);\n }\n } else {\n if (playerService.state !== 'idle') {\n await resetPlayer();\n }\n\n const shouldSeekToTime = state.duration > state.currentTime && state.currentTime > 0;\n let seekFinished = !shouldSeekToTime;\n\n const forPlayback = playerService.addPlaybackListener(({ stopped, currentTime, duration }) => {\n if (seekFinished) {\n setState((prevState) => ({ ...prevState, currentTime: stopped ? 0 : currentTime, duration }));\n }\n });\n const forState = playerService.addStateListener((state) => {\n switch (state) {\n case 'preparing':\n setState((prevState) => ({ ...prevState, status: 'preparing' }));\n break;\n case 'playing':\n setState((prevState) => ({ ...prevState, status: 'playing' }));\n break;\n case 'idle':\n case 'paused': {\n setState((prevState) => ({ ...prevState, status: 'paused' }));\n break;\n }\n case 'stopped':\n setState((prevState) => ({ ...prevState, status: 'paused' }));\n break;\n }\n });\n playerUnsubscribes.current.push(forPlayback, forState);\n\n await playerService.play(parentMessage.url);\n if (shouldSeekToTime) {\n await playerService.seek(state.currentTime);\n seekFinished = true;\n }\n }\n }\n },\n ...props,\n };\n\n const userMessageProps: {\n renderRegexTextChildren: (message: SendbirdUserMessage) => string;\n regexTextPatterns: RegexTextPattern[];\n } = {\n renderRegexTextChildren: (message) => {\n if (\n mentionManager.shouldUseMentionedMessageTemplate(message, sbOptions.uikit.groupChannel.channel.enableMention)\n ) {\n return message.mentionedMessageTemplate;\n } else {\n return message.message;\n }\n },\n regexTextPatterns: [\n {\n regex: mentionManager.templateRegex,\n replacer({ match, groups, parentProps, index, keyPrefix }) {\n const user = parentMessage.mentionedUsers?.find((it) => it.userId === groups[2]);\n if (user) {\n const mentionColor =\n !isMyMessage(parentMessage, currentUser?.userId) && user.userId === currentUser?.userId\n ? palette.onBackgroundLight01\n : parentProps?.color;\n\n return (\n <Text\n {...parentProps}\n key={`${keyPrefix}-${index}`}\n color={mentionColor}\n onPress={() => messageProps.onPressMentionedUser?.(user)}\n onLongPress={messageProps.onLongPress}\n style={[\n parentProps?.style,\n { fontWeight: '700' },\n user.userId === currentUser?.userId && { backgroundColor: palette.highlight },\n ]}\n >\n {`${mentionManager.asMentionedMessageText(user)}`}\n </Text>\n );\n }\n return match;\n },\n },\n ],\n };\n\n switch (getMessageType(props.parentMessage)) {\n case 'user': {\n return <ThreadParentMessageUser {...userMessageProps} {...messageProps} />;\n }\n case 'user.opengraph': {\n return <ThreadParentMessageUserOg {...userMessageProps} {...messageProps} />;\n }\n case 'file':\n case 'file.audio': {\n return <ThreadParentMessageFile {...messageProps} />;\n }\n case 'file.video': {\n return (\n <ThreadParentMessageFileVideo\n fetchThumbnailFromVideoSource={(uri) => mediaService.getVideoThumbnail({ url: uri, timeMills: 1000 })}\n {...messageProps}\n />\n );\n }\n case 'file.image': {\n return <ThreadParentMessageFileImage {...messageProps} />;\n }\n case 'file.voice': {\n return (\n <ThreadParentMessageFileVoice\n durationMetaArrayKey={VOICE_MESSAGE_META_ARRAY_DURATION_KEY}\n onUnmount={() => {\n if (isVoiceMessage(parentMessage) && playerService.uri === parentMessage.url) {\n resetPlayer();\n }\n }}\n {...messageProps}\n />\n );\n }\n default: {\n return null;\n }\n }\n};\n\nexport default React.memo(ThreadParentMessageRenderer);\n"],"mappings":"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"}