@sendbird/uikit-react-native 2.5.0 → 3.0.0-rc.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 (313) hide show
  1. package/README.md +6 -1
  2. package/lib/commonjs/components/{MessageRenderer/MessageTime.js → ChannelInput/AttachmentsButton.js} +20 -17
  3. package/lib/commonjs/components/ChannelInput/AttachmentsButton.js.map +1 -0
  4. package/lib/commonjs/components/ChannelInput/EditInput.js +10 -18
  5. package/lib/commonjs/components/ChannelInput/EditInput.js.map +1 -1
  6. package/lib/commonjs/components/ChannelInput/SendInput.js +220 -163
  7. package/lib/commonjs/components/ChannelInput/SendInput.js.map +1 -1
  8. package/lib/commonjs/components/ChannelInput/index.js +5 -3
  9. package/lib/commonjs/components/ChannelInput/index.js.map +1 -1
  10. package/lib/commonjs/components/ChannelMessageList/index.js +27 -27
  11. package/lib/commonjs/components/ChannelMessageList/index.js.map +1 -1
  12. package/lib/commonjs/components/ChatFlatList.js +18 -6
  13. package/lib/commonjs/components/ChatFlatList.js.map +1 -1
  14. package/lib/commonjs/components/{MessageRenderer/MessageDateSeparator.js → GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js} +3 -3
  15. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js.map +1 -0
  16. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js +47 -0
  17. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js.map +1 -0
  18. package/lib/commonjs/components/{MessageRenderer/MessageOutgoingStatus.js → GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js} +11 -14
  19. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js.map +1 -0
  20. package/lib/commonjs/components/GroupChannelMessageRenderer/index.js +204 -0
  21. package/lib/commonjs/components/GroupChannelMessageRenderer/index.js.map +1 -0
  22. package/lib/commonjs/components/MessageSearchResultItem.js +3 -2
  23. package/lib/commonjs/components/MessageSearchResultItem.js.map +1 -1
  24. package/lib/commonjs/components/OpenChannelMessageRenderer/index.js +15 -9
  25. package/lib/commonjs/components/OpenChannelMessageRenderer/index.js.map +1 -1
  26. package/lib/commonjs/constants.js +1 -7
  27. package/lib/commonjs/constants.js.map +1 -1
  28. package/lib/commonjs/containers/GroupChannelPreviewContainer.js +13 -13
  29. package/lib/commonjs/containers/GroupChannelPreviewContainer.js.map +1 -1
  30. package/lib/commonjs/containers/SendbirdUIKitContainer.js +29 -19
  31. package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
  32. package/lib/commonjs/contexts/SendbirdChatCtx.js +17 -14
  33. package/lib/commonjs/contexts/SendbirdChatCtx.js.map +1 -1
  34. package/lib/commonjs/contexts/UserProfileCtx.js +6 -4
  35. package/lib/commonjs/contexts/UserProfileCtx.js.map +1 -1
  36. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput.js +4 -13
  37. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput.js.map +1 -1
  38. package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
  39. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js +10 -6
  40. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
  41. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js +3 -3
  42. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -1
  43. package/lib/commonjs/domain/groupChannelList/types.js.map +1 -1
  44. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +11 -10
  45. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  46. package/lib/commonjs/domain/openChannel/component/OpenChannelInput.js +4 -8
  47. package/lib/commonjs/domain/openChannel/component/OpenChannelInput.js.map +1 -1
  48. package/lib/commonjs/domain/openChannel/types.js.map +1 -1
  49. package/lib/commonjs/domain/openChannelList/component/OpenChannelListList.js +3 -1
  50. package/lib/commonjs/domain/openChannelList/component/OpenChannelListList.js.map +1 -1
  51. package/lib/commonjs/domain/openChannelList/types.js.map +1 -1
  52. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js +1 -1
  53. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js.map +1 -1
  54. package/lib/commonjs/fragments/createGroupChannelFragment.js +22 -100
  55. package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
  56. package/lib/commonjs/fragments/createGroupChannelInviteFragment.js +1 -1
  57. package/lib/commonjs/fragments/createGroupChannelInviteFragment.js.map +1 -1
  58. package/lib/commonjs/fragments/createGroupChannelListFragment.js +8 -13
  59. package/lib/commonjs/fragments/createGroupChannelListFragment.js.map +1 -1
  60. package/lib/commonjs/fragments/createMessageSearchFragment.js +2 -2
  61. package/lib/commonjs/fragments/createMessageSearchFragment.js.map +1 -1
  62. package/lib/commonjs/fragments/createOpenChannelFragment.js +1 -7
  63. package/lib/commonjs/fragments/createOpenChannelFragment.js.map +1 -1
  64. package/lib/commonjs/fragments/createOpenChannelListFragment.js +2 -1
  65. package/lib/commonjs/fragments/createOpenChannelListFragment.js.map +1 -1
  66. package/lib/commonjs/hooks/useConnection.js +11 -7
  67. package/lib/commonjs/hooks/useConnection.js.map +1 -1
  68. package/lib/commonjs/hooks/useMentionTextInput.js +3 -2
  69. package/lib/commonjs/hooks/useMentionTextInput.js.map +1 -1
  70. package/lib/commonjs/index.js +20 -4
  71. package/lib/commonjs/index.js.map +1 -1
  72. package/lib/commonjs/libs/MentionManager.js +8 -9
  73. package/lib/commonjs/libs/MentionManager.js.map +1 -1
  74. package/lib/commonjs/libs/SBUUtils.js +7 -3
  75. package/lib/commonjs/libs/SBUUtils.js.map +1 -1
  76. package/lib/commonjs/localization/StringSet.type.js.map +1 -1
  77. package/lib/commonjs/localization/createBaseStringSet.js +20 -62
  78. package/lib/commonjs/localization/createBaseStringSet.js.map +1 -1
  79. package/lib/module/components/ChannelInput/AttachmentsButton.js +29 -0
  80. package/lib/module/components/ChannelInput/AttachmentsButton.js.map +1 -0
  81. package/lib/module/components/ChannelInput/EditInput.js +10 -18
  82. package/lib/module/components/ChannelInput/EditInput.js.map +1 -1
  83. package/lib/module/components/ChannelInput/SendInput.js +221 -164
  84. package/lib/module/components/ChannelInput/SendInput.js.map +1 -1
  85. package/lib/module/components/ChannelInput/index.js +5 -3
  86. package/lib/module/components/ChannelInput/index.js.map +1 -1
  87. package/lib/module/components/ChannelMessageList/index.js +28 -28
  88. package/lib/module/components/ChannelMessageList/index.js.map +1 -1
  89. package/lib/module/components/ChatFlatList.js +17 -5
  90. package/lib/module/components/ChatFlatList.js.map +1 -1
  91. package/lib/module/components/{MessageRenderer/MessageDateSeparator.js → GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js} +3 -3
  92. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.js.map +1 -0
  93. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js +38 -0
  94. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js.map +1 -0
  95. package/lib/module/components/{MessageRenderer/MessageOutgoingStatus.js → GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js} +12 -15
  96. package/lib/module/components/GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.js.map +1 -0
  97. package/lib/module/components/GroupChannelMessageRenderer/index.js +196 -0
  98. package/lib/module/components/GroupChannelMessageRenderer/index.js.map +1 -0
  99. package/lib/module/components/MessageSearchResultItem.js +2 -1
  100. package/lib/module/components/MessageSearchResultItem.js.map +1 -1
  101. package/lib/module/components/OpenChannelMessageRenderer/index.js +16 -10
  102. package/lib/module/components/OpenChannelMessageRenderer/index.js.map +1 -1
  103. package/lib/module/constants.js +0 -5
  104. package/lib/module/constants.js.map +1 -1
  105. package/lib/module/containers/GroupChannelPreviewContainer.js +13 -13
  106. package/lib/module/containers/GroupChannelPreviewContainer.js.map +1 -1
  107. package/lib/module/containers/SendbirdUIKitContainer.js +29 -19
  108. package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
  109. package/lib/module/contexts/SendbirdChatCtx.js +17 -14
  110. package/lib/module/contexts/SendbirdChatCtx.js.map +1 -1
  111. package/lib/module/contexts/UserProfileCtx.js +6 -4
  112. package/lib/module/contexts/UserProfileCtx.js.map +1 -1
  113. package/lib/module/domain/groupChannel/component/GroupChannelInput.js +4 -13
  114. package/lib/module/domain/groupChannel/component/GroupChannelInput.js.map +1 -1
  115. package/lib/module/domain/groupChannel/types.js.map +1 -1
  116. package/lib/module/domain/groupChannelList/component/GroupChannelListList.js +9 -4
  117. package/lib/module/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
  118. package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js +3 -3
  119. package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -1
  120. package/lib/module/domain/groupChannelList/types.js.map +1 -1
  121. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +11 -10
  122. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  123. package/lib/module/domain/openChannel/component/OpenChannelInput.js +4 -8
  124. package/lib/module/domain/openChannel/component/OpenChannelInput.js.map +1 -1
  125. package/lib/module/domain/openChannel/types.js.map +1 -1
  126. package/lib/module/domain/openChannelList/component/OpenChannelListList.js +3 -1
  127. package/lib/module/domain/openChannelList/component/OpenChannelListList.js.map +1 -1
  128. package/lib/module/domain/openChannelList/types.js.map +1 -1
  129. package/lib/module/fragments/createGroupChannelCreateFragment.js +1 -1
  130. package/lib/module/fragments/createGroupChannelCreateFragment.js.map +1 -1
  131. package/lib/module/fragments/createGroupChannelFragment.js +24 -102
  132. package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
  133. package/lib/module/fragments/createGroupChannelInviteFragment.js +1 -1
  134. package/lib/module/fragments/createGroupChannelInviteFragment.js.map +1 -1
  135. package/lib/module/fragments/createGroupChannelListFragment.js +8 -13
  136. package/lib/module/fragments/createGroupChannelListFragment.js.map +1 -1
  137. package/lib/module/fragments/createMessageSearchFragment.js +1 -1
  138. package/lib/module/fragments/createMessageSearchFragment.js.map +1 -1
  139. package/lib/module/fragments/createOpenChannelFragment.js +2 -8
  140. package/lib/module/fragments/createOpenChannelFragment.js.map +1 -1
  141. package/lib/module/fragments/createOpenChannelListFragment.js +2 -1
  142. package/lib/module/fragments/createOpenChannelListFragment.js.map +1 -1
  143. package/lib/module/hooks/useConnection.js +11 -7
  144. package/lib/module/hooks/useConnection.js.map +1 -1
  145. package/lib/module/hooks/useMentionTextInput.js +3 -2
  146. package/lib/module/hooks/useMentionTextInput.js.map +1 -1
  147. package/lib/module/index.js +5 -2
  148. package/lib/module/index.js.map +1 -1
  149. package/lib/module/libs/MentionManager.js +8 -9
  150. package/lib/module/libs/MentionManager.js.map +1 -1
  151. package/lib/module/libs/SBUUtils.js +7 -3
  152. package/lib/module/libs/SBUUtils.js.map +1 -1
  153. package/lib/module/localization/StringSet.type.js.map +1 -1
  154. package/lib/module/localization/createBaseStringSet.js +20 -62
  155. package/lib/module/localization/createBaseStringSet.js.map +1 -1
  156. package/lib/typescript/src/components/ChannelInput/AttachmentsButton.d.ts +6 -0
  157. package/lib/typescript/src/components/ChannelInput/index.d.ts +2 -14
  158. package/lib/typescript/src/components/ChannelMessageList/index.d.ts +2 -4
  159. package/lib/typescript/src/components/ChatFlatList.d.ts +1 -5
  160. package/lib/typescript/src/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.d.ts +6 -0
  161. package/lib/typescript/src/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.d.ts +5 -0
  162. package/lib/typescript/src/components/{MessageRenderer/MessageOutgoingStatus.d.ts → GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.d.ts} +3 -1
  163. package/lib/typescript/src/components/{MessageRenderer → GroupChannelMessageRenderer}/index.d.ts +2 -13
  164. package/lib/typescript/src/components/MessageSearchResultItem.d.ts +2 -1
  165. package/lib/typescript/src/components/OpenChannelMessageRenderer/index.d.ts +1 -1
  166. package/lib/typescript/src/constants.d.ts +0 -5
  167. package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +15 -10
  168. package/lib/typescript/src/contexts/SendbirdChatCtx.d.ts +33 -19
  169. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput.d.ts +1 -1
  170. package/lib/typescript/src/domain/groupChannel/component/GroupChannelMessageList.d.ts +1 -4
  171. package/lib/typescript/src/domain/groupChannel/types.d.ts +2 -9
  172. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListList.d.ts +1 -1
  173. package/lib/typescript/src/domain/groupChannelList/types.d.ts +8 -23
  174. package/lib/typescript/src/domain/openChannel/component/OpenChannelHeader.d.ts +1 -1
  175. package/lib/typescript/src/domain/openChannel/component/OpenChannelInput.d.ts +1 -1
  176. package/lib/typescript/src/domain/openChannel/component/OpenChannelMessageList.d.ts +1 -1
  177. package/lib/typescript/src/domain/openChannel/types.d.ts +2 -2
  178. package/lib/typescript/src/domain/openChannelList/component/OpenChannelListList.d.ts +1 -1
  179. package/lib/typescript/src/domain/openChannelList/types.d.ts +3 -12
  180. package/lib/typescript/src/index.d.ts +4 -1
  181. package/lib/typescript/src/libs/MentionManager.d.ts +4 -5
  182. package/lib/typescript/src/libs/SBUUtils.d.ts +1 -1
  183. package/lib/typescript/src/localization/StringSet.type.d.ts +2 -43
  184. package/package.json +13 -10
  185. package/src/components/ChannelInput/AttachmentsButton.tsx +32 -0
  186. package/src/components/ChannelInput/EditInput.tsx +17 -18
  187. package/src/components/ChannelInput/SendInput.tsx +237 -181
  188. package/src/components/ChannelInput/index.tsx +8 -21
  189. package/src/components/ChannelMessageList/index.tsx +33 -41
  190. package/src/components/ChatFlatList.tsx +39 -13
  191. package/src/components/{MessageRenderer/MessageDateSeparator.tsx → GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.tsx} +7 -5
  192. package/src/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.tsx +29 -0
  193. package/src/components/{MessageRenderer/MessageOutgoingStatus.tsx → GroupChannelMessageRenderer/GroupChannelMessageOutgoingStatus.tsx} +15 -15
  194. package/src/components/GroupChannelMessageRenderer/index.tsx +203 -0
  195. package/src/components/MessageSearchResultItem.tsx +3 -1
  196. package/src/components/OpenChannelMessageRenderer/index.tsx +10 -5
  197. package/src/constants.ts +0 -5
  198. package/src/containers/GroupChannelPreviewContainer.tsx +14 -13
  199. package/src/containers/SendbirdUIKitContainer.tsx +98 -90
  200. package/src/contexts/SendbirdChatCtx.tsx +49 -36
  201. package/src/contexts/UserProfileCtx.tsx +10 -5
  202. package/src/domain/groupChannel/component/GroupChannelInput.tsx +1 -10
  203. package/src/domain/groupChannel/types.ts +1 -14
  204. package/src/domain/groupChannelList/component/GroupChannelListList.tsx +8 -4
  205. package/src/domain/groupChannelList/component/GroupChannelListTypeSelector.tsx +3 -3
  206. package/src/domain/groupChannelList/types.ts +8 -30
  207. package/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.tsx +22 -10
  208. package/src/domain/openChannel/component/OpenChannelInput.tsx +1 -5
  209. package/src/domain/openChannel/types.ts +1 -1
  210. package/src/domain/openChannelList/component/OpenChannelListList.tsx +2 -1
  211. package/src/domain/openChannelList/types.ts +6 -13
  212. package/src/fragments/createGroupChannelCreateFragment.tsx +1 -1
  213. package/src/fragments/createGroupChannelFragment.tsx +21 -97
  214. package/src/fragments/createGroupChannelInviteFragment.tsx +1 -1
  215. package/src/fragments/createGroupChannelListFragment.tsx +9 -15
  216. package/src/fragments/createMessageSearchFragment.tsx +1 -1
  217. package/src/fragments/createOpenChannelFragment.tsx +2 -3
  218. package/src/fragments/createOpenChannelListFragment.tsx +2 -1
  219. package/src/hooks/useConnection.ts +9 -7
  220. package/src/hooks/useMentionTextInput.ts +7 -2
  221. package/src/index.ts +4 -2
  222. package/src/libs/MentionManager.tsx +8 -7
  223. package/src/libs/SBUUtils.ts +7 -3
  224. package/src/localization/StringSet.type.ts +2 -46
  225. package/src/localization/createBaseStringSet.ts +19 -71
  226. package/src/version.ts +1 -1
  227. package/lib/commonjs/components/MessageRenderer/AdminMessage/index.js +0 -46
  228. package/lib/commonjs/components/MessageRenderer/AdminMessage/index.js.map +0 -1
  229. package/lib/commonjs/components/MessageRenderer/FileMessage/BaseFileMessage.js +0 -73
  230. package/lib/commonjs/components/MessageRenderer/FileMessage/BaseFileMessage.js.map +0 -1
  231. package/lib/commonjs/components/MessageRenderer/FileMessage/ImageFileMessage.js +0 -93
  232. package/lib/commonjs/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +0 -1
  233. package/lib/commonjs/components/MessageRenderer/FileMessage/VideoFileMessage.js +0 -132
  234. package/lib/commonjs/components/MessageRenderer/FileMessage/VideoFileMessage.js.map +0 -1
  235. package/lib/commonjs/components/MessageRenderer/FileMessage/index.js +0 -24
  236. package/lib/commonjs/components/MessageRenderer/FileMessage/index.js.map +0 -1
  237. package/lib/commonjs/components/MessageRenderer/MessageContainer.js +0 -27
  238. package/lib/commonjs/components/MessageRenderer/MessageContainer.js.map +0 -1
  239. package/lib/commonjs/components/MessageRenderer/MessageDateSeparator.js.map +0 -1
  240. package/lib/commonjs/components/MessageRenderer/MessageIncomingAvatar.js +0 -41
  241. package/lib/commonjs/components/MessageRenderer/MessageIncomingAvatar.js.map +0 -1
  242. package/lib/commonjs/components/MessageRenderer/MessageIncomingSenderName.js +0 -41
  243. package/lib/commonjs/components/MessageRenderer/MessageIncomingSenderName.js.map +0 -1
  244. package/lib/commonjs/components/MessageRenderer/MessageOutgoingStatus.js.map +0 -1
  245. package/lib/commonjs/components/MessageRenderer/MessageTime.js.map +0 -1
  246. package/lib/commonjs/components/MessageRenderer/UnknownMessage/index.js +0 -46
  247. package/lib/commonjs/components/MessageRenderer/UnknownMessage/index.js.map +0 -1
  248. package/lib/commonjs/components/MessageRenderer/UserMessage/BaseUserMessage.js +0 -113
  249. package/lib/commonjs/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +0 -1
  250. package/lib/commonjs/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js +0 -200
  251. package/lib/commonjs/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +0 -1
  252. package/lib/commonjs/components/MessageRenderer/UserMessage/index.js +0 -22
  253. package/lib/commonjs/components/MessageRenderer/UserMessage/index.js.map +0 -1
  254. package/lib/commonjs/components/MessageRenderer/index.js +0 -186
  255. package/lib/commonjs/components/MessageRenderer/index.js.map +0 -1
  256. package/lib/module/components/MessageRenderer/AdminMessage/index.js +0 -38
  257. package/lib/module/components/MessageRenderer/AdminMessage/index.js.map +0 -1
  258. package/lib/module/components/MessageRenderer/FileMessage/BaseFileMessage.js +0 -65
  259. package/lib/module/components/MessageRenderer/FileMessage/BaseFileMessage.js.map +0 -1
  260. package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js +0 -84
  261. package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +0 -1
  262. package/lib/module/components/MessageRenderer/FileMessage/VideoFileMessage.js +0 -123
  263. package/lib/module/components/MessageRenderer/FileMessage/VideoFileMessage.js.map +0 -1
  264. package/lib/module/components/MessageRenderer/FileMessage/index.js +0 -16
  265. package/lib/module/components/MessageRenderer/FileMessage/index.js.map +0 -1
  266. package/lib/module/components/MessageRenderer/MessageContainer.js +0 -19
  267. package/lib/module/components/MessageRenderer/MessageContainer.js.map +0 -1
  268. package/lib/module/components/MessageRenderer/MessageDateSeparator.js.map +0 -1
  269. package/lib/module/components/MessageRenderer/MessageIncomingAvatar.js +0 -33
  270. package/lib/module/components/MessageRenderer/MessageIncomingAvatar.js.map +0 -1
  271. package/lib/module/components/MessageRenderer/MessageIncomingSenderName.js +0 -33
  272. package/lib/module/components/MessageRenderer/MessageIncomingSenderName.js.map +0 -1
  273. package/lib/module/components/MessageRenderer/MessageOutgoingStatus.js.map +0 -1
  274. package/lib/module/components/MessageRenderer/MessageTime.js +0 -26
  275. package/lib/module/components/MessageRenderer/MessageTime.js.map +0 -1
  276. package/lib/module/components/MessageRenderer/UnknownMessage/index.js +0 -38
  277. package/lib/module/components/MessageRenderer/UnknownMessage/index.js.map +0 -1
  278. package/lib/module/components/MessageRenderer/UserMessage/BaseUserMessage.js +0 -105
  279. package/lib/module/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +0 -1
  280. package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js +0 -190
  281. package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +0 -1
  282. package/lib/module/components/MessageRenderer/UserMessage/index.js +0 -14
  283. package/lib/module/components/MessageRenderer/UserMessage/index.js.map +0 -1
  284. package/lib/module/components/MessageRenderer/index.js +0 -178
  285. package/lib/module/components/MessageRenderer/index.js.map +0 -1
  286. package/lib/typescript/src/components/MessageRenderer/AdminMessage/index.d.ts +0 -5
  287. package/lib/typescript/src/components/MessageRenderer/FileMessage/BaseFileMessage.d.ts +0 -6
  288. package/lib/typescript/src/components/MessageRenderer/FileMessage/ImageFileMessage.d.ts +0 -3
  289. package/lib/typescript/src/components/MessageRenderer/FileMessage/VideoFileMessage.d.ts +0 -3
  290. package/lib/typescript/src/components/MessageRenderer/FileMessage/index.d.ts +0 -15
  291. package/lib/typescript/src/components/MessageRenderer/MessageContainer.d.ts +0 -3
  292. package/lib/typescript/src/components/MessageRenderer/MessageDateSeparator.d.ts +0 -7
  293. package/lib/typescript/src/components/MessageRenderer/MessageIncomingAvatar.d.ts +0 -7
  294. package/lib/typescript/src/components/MessageRenderer/MessageIncomingSenderName.d.ts +0 -7
  295. package/lib/typescript/src/components/MessageRenderer/MessageTime.d.ts +0 -9
  296. package/lib/typescript/src/components/MessageRenderer/UnknownMessage/index.d.ts +0 -4
  297. package/lib/typescript/src/components/MessageRenderer/UserMessage/BaseUserMessage.d.ts +0 -3
  298. package/lib/typescript/src/components/MessageRenderer/UserMessage/OpenGraphUserMessage.d.ts +0 -7
  299. package/lib/typescript/src/components/MessageRenderer/UserMessage/index.d.ts +0 -9
  300. package/src/components/MessageRenderer/AdminMessage/index.tsx +0 -40
  301. package/src/components/MessageRenderer/FileMessage/BaseFileMessage.tsx +0 -51
  302. package/src/components/MessageRenderer/FileMessage/ImageFileMessage.tsx +0 -98
  303. package/src/components/MessageRenderer/FileMessage/VideoFileMessage.tsx +0 -113
  304. package/src/components/MessageRenderer/FileMessage/index.tsx +0 -20
  305. package/src/components/MessageRenderer/MessageContainer.tsx +0 -17
  306. package/src/components/MessageRenderer/MessageIncomingAvatar.tsx +0 -34
  307. package/src/components/MessageRenderer/MessageIncomingSenderName.tsx +0 -36
  308. package/src/components/MessageRenderer/MessageTime.tsx +0 -28
  309. package/src/components/MessageRenderer/UnknownMessage/index.tsx +0 -34
  310. package/src/components/MessageRenderer/UserMessage/BaseUserMessage.tsx +0 -102
  311. package/src/components/MessageRenderer/UserMessage/OpenGraphUserMessage.tsx +0 -188
  312. package/src/components/MessageRenderer/UserMessage/index.tsx +0 -24
  313. package/src/components/MessageRenderer/index.tsx +0 -198
@@ -0,0 +1,196 @@
1
+ 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); }
2
+ import React from 'react';
3
+ import { Box, GroupChannelMessage, Text, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';
4
+ import { calcMessageGrouping, getMessageType, isMyMessage, shouldRenderReaction, useIIFE } from '@sendbird/uikit-utils';
5
+ import { useLocalization, usePlatformService, useSendbirdChat } from '../../hooks/useContext';
6
+ import SBUUtils from '../../libs/SBUUtils';
7
+ import { ReactionAddons } from '../ReactionAddons';
8
+ import GroupChannelMessageDateSeparator from './GroupChannelMessageDateSeparator';
9
+ import GroupChannelMessageFocusAnimation from './GroupChannelMessageFocusAnimation';
10
+ import GroupChannelMessageOutgoingStatus from './GroupChannelMessageOutgoingStatus';
11
+ const GroupChannelMessageRenderer = _ref => {
12
+ let {
13
+ channel,
14
+ message,
15
+ onPress,
16
+ onLongPress,
17
+ onShowUserProfile,
18
+ enableMessageGrouping,
19
+ focused,
20
+ prevMessage,
21
+ nextMessage
22
+ } = _ref;
23
+ const {
24
+ palette
25
+ } = useUIKitTheme();
26
+ const {
27
+ sbOptions,
28
+ currentUser,
29
+ mentionManager
30
+ } = useSendbirdChat();
31
+ const {
32
+ STRINGS
33
+ } = useLocalization();
34
+ const {
35
+ mediaService
36
+ } = usePlatformService();
37
+ const {
38
+ groupWithPrev,
39
+ groupWithNext
40
+ } = calcMessageGrouping(Boolean(enableMessageGrouping), message, prevMessage, nextMessage);
41
+ const reactionChildren = useIIFE(() => {
42
+ if (shouldRenderReaction(channel, sbOptions.uikitWithAppInfo.groupChannel.channel.enableReactions) && message.reactions && message.reactions.length > 0) {
43
+ return /*#__PURE__*/React.createElement(ReactionAddons.Message, {
44
+ channel: channel,
45
+ message: message
46
+ });
47
+ }
48
+ return null;
49
+ });
50
+ const messageProps = {
51
+ channel,
52
+ variant: isMyMessage(message, currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId) ? 'outgoing' : 'incoming',
53
+ onPress,
54
+ onLongPress,
55
+ onPressURL: url => SBUUtils.openURL(url),
56
+ onPressAvatar: () => {
57
+ if ('sender' in message) onShowUserProfile === null || onShowUserProfile === void 0 ? void 0 : onShowUserProfile(message.sender);
58
+ },
59
+ onPressMentionedUser: mentionedUser => {
60
+ if (mentionedUser) onShowUserProfile === null || onShowUserProfile === void 0 ? void 0 : onShowUserProfile(mentionedUser);
61
+ },
62
+ groupedWithPrev: groupWithPrev,
63
+ groupedWithNext: groupWithNext,
64
+ children: reactionChildren,
65
+ sendingStatus: isMyMessage(message, currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId) ? /*#__PURE__*/React.createElement(GroupChannelMessageOutgoingStatus, {
66
+ channel: channel,
67
+ message: message
68
+ }) : null,
69
+ strings: {
70
+ edited: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_EDITED_POSTFIX,
71
+ senderName: 'sender' in message && message.sender.nickname || STRINGS.LABELS.USER_NO_NAME,
72
+ sentDate: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_TIME(message),
73
+ fileName: message.isFileMessage() ? STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_FILE_TITLE(message) : '',
74
+ unknownTitle: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_TITLE(message),
75
+ unknownDescription: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_DESC(message)
76
+ }
77
+ };
78
+ const userMessageProps = {
79
+ renderRegexTextChildren: message => {
80
+ if (mentionManager.shouldUseMentionedMessageTemplate(message, sbOptions.uikit.groupChannel.channel.enableMention)) {
81
+ return message.mentionedMessageTemplate;
82
+ } else {
83
+ return message.message;
84
+ }
85
+ },
86
+ regexTextPatterns: [{
87
+ regex: mentionManager.templateRegex,
88
+ replacer(_ref2) {
89
+ var _message$mentionedUse;
90
+ let {
91
+ match,
92
+ groups,
93
+ parentProps,
94
+ index,
95
+ keyPrefix
96
+ } = _ref2;
97
+ const user = (_message$mentionedUse = message.mentionedUsers) === null || _message$mentionedUse === void 0 ? void 0 : _message$mentionedUse.find(it => it.userId === groups[2]);
98
+ if (user) {
99
+ const mentionColor = !isMyMessage(message, 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;
100
+ return /*#__PURE__*/React.createElement(Text, _extends({}, parentProps, {
101
+ key: `${keyPrefix}-${index}`,
102
+ color: mentionColor,
103
+ onPress: () => {
104
+ var _messageProps$onPress;
105
+ return (_messageProps$onPress = messageProps.onPressMentionedUser) === null || _messageProps$onPress === void 0 ? void 0 : _messageProps$onPress.call(messageProps, user);
106
+ },
107
+ onLongPress: messageProps.onLongPress,
108
+ style: [parentProps === null || parentProps === void 0 ? void 0 : parentProps.style, {
109
+ fontWeight: '700'
110
+ }, user.userId === (currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId) && {
111
+ backgroundColor: palette.highlight
112
+ }]
113
+ }), `${mentionManager.asMentionedMessageText(user)}`);
114
+ }
115
+ return match;
116
+ }
117
+ }]
118
+ };
119
+ const renderMessage = () => {
120
+ switch (getMessageType(message)) {
121
+ case 'admin':
122
+ {
123
+ return /*#__PURE__*/React.createElement(GroupChannelMessage.Admin, _extends({
124
+ message: message
125
+ }, messageProps));
126
+ }
127
+ case 'user':
128
+ case 'user.opengraph':
129
+ {
130
+ if (message.ogMetaData && sbOptions.uikitWithAppInfo.groupChannel.channel.enableOgtag) {
131
+ return /*#__PURE__*/React.createElement(GroupChannelMessage.OpenGraphUser, _extends({
132
+ message: message
133
+ }, userMessageProps, messageProps));
134
+ } else {
135
+ return /*#__PURE__*/React.createElement(GroupChannelMessage.User, _extends({
136
+ message: message
137
+ }, userMessageProps, messageProps));
138
+ }
139
+ }
140
+ case 'file':
141
+ case 'file.audio':
142
+ {
143
+ return /*#__PURE__*/React.createElement(GroupChannelMessage.File, _extends({
144
+ message: message
145
+ }, messageProps));
146
+ }
147
+ case 'file.image':
148
+ {
149
+ return /*#__PURE__*/React.createElement(GroupChannelMessage.ImageFile, _extends({
150
+ message: message
151
+ }, messageProps));
152
+ }
153
+ case 'file.video':
154
+ {
155
+ return /*#__PURE__*/React.createElement(GroupChannelMessage.VideoFile, _extends({
156
+ message: message,
157
+ fetchThumbnailFromVideoSource: uri => mediaService.getVideoThumbnail({
158
+ url: uri,
159
+ timeMills: 1000
160
+ })
161
+ }, messageProps));
162
+ }
163
+ case 'unknown':
164
+ default:
165
+ {
166
+ return /*#__PURE__*/React.createElement(GroupChannelMessage.Unknown, _extends({
167
+ message: message
168
+ }, messageProps));
169
+ }
170
+ }
171
+ };
172
+ const messageGap = useIIFE(() => {
173
+ if (message.isAdminMessage()) {
174
+ if (nextMessage !== null && nextMessage !== void 0 && nextMessage.isAdminMessage()) {
175
+ return 8;
176
+ } else {
177
+ return 16;
178
+ }
179
+ } else if (groupWithNext) {
180
+ return 2;
181
+ } else {
182
+ return 16;
183
+ }
184
+ });
185
+ return /*#__PURE__*/React.createElement(Box, {
186
+ paddingHorizontal: 16,
187
+ marginBottom: messageGap
188
+ }, /*#__PURE__*/React.createElement(GroupChannelMessageDateSeparator, {
189
+ message: message,
190
+ prevMessage: prevMessage
191
+ }), /*#__PURE__*/React.createElement(GroupChannelMessageFocusAnimation, {
192
+ focused: focused
193
+ }, renderMessage()));
194
+ };
195
+ export default /*#__PURE__*/React.memo(GroupChannelMessageRenderer);
196
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Box","GroupChannelMessage","Text","useUIKitTheme","calcMessageGrouping","getMessageType","isMyMessage","shouldRenderReaction","useIIFE","useLocalization","usePlatformService","useSendbirdChat","SBUUtils","ReactionAddons","GroupChannelMessageDateSeparator","GroupChannelMessageFocusAnimation","GroupChannelMessageOutgoingStatus","GroupChannelMessageRenderer","_ref","channel","message","onPress","onLongPress","onShowUserProfile","enableMessageGrouping","focused","prevMessage","nextMessage","palette","sbOptions","currentUser","mentionManager","STRINGS","mediaService","groupWithPrev","groupWithNext","Boolean","reactionChildren","uikitWithAppInfo","groupChannel","enableReactions","reactions","length","createElement","Message","messageProps","variant","userId","onPressURL","url","openURL","onPressAvatar","sender","onPressMentionedUser","mentionedUser","groupedWithPrev","groupedWithNext","children","sendingStatus","strings","edited","GROUP_CHANNEL","MESSAGE_BUBBLE_EDITED_POSTFIX","senderName","nickname","LABELS","USER_NO_NAME","sentDate","MESSAGE_BUBBLE_TIME","fileName","isFileMessage","MESSAGE_BUBBLE_FILE_TITLE","unknownTitle","MESSAGE_BUBBLE_UNKNOWN_TITLE","unknownDescription","MESSAGE_BUBBLE_UNKNOWN_DESC","userMessageProps","renderRegexTextChildren","shouldUseMentionedMessageTemplate","uikit","enableMention","mentionedMessageTemplate","regexTextPatterns","regex","templateRegex","replacer","_ref2","_message$mentionedUse","match","groups","parentProps","index","keyPrefix","user","mentionedUsers","find","it","mentionColor","onBackgroundLight01","color","_extends","key","_messageProps$onPress","call","style","fontWeight","backgroundColor","highlight","asMentionedMessageText","renderMessage","Admin","ogMetaData","enableOgtag","OpenGraphUser","User","File","ImageFile","VideoFile","fetchThumbnailFromVideoSource","uri","getVideoThumbnail","timeMills","Unknown","messageGap","isAdminMessage","paddingHorizontal","marginBottom","memo"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { GroupChannelMessageProps, RegexTextPattern } from '@sendbird/uikit-react-native-foundation';\nimport { Box, GroupChannelMessage, Text, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdAdminMessage,\n SendbirdFileMessage,\n SendbirdMessage,\n SendbirdUserMessage,\n calcMessageGrouping,\n getMessageType,\n isMyMessage,\n shouldRenderReaction,\n useIIFE,\n} from '@sendbird/uikit-utils';\n\nimport type { GroupChannelProps } from '../../domain/groupChannel/types';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../../hooks/useContext';\nimport SBUUtils from '../../libs/SBUUtils';\nimport { ReactionAddons } from '../ReactionAddons';\nimport GroupChannelMessageDateSeparator from './GroupChannelMessageDateSeparator';\nimport GroupChannelMessageFocusAnimation from './GroupChannelMessageFocusAnimation';\nimport GroupChannelMessageOutgoingStatus from './GroupChannelMessageOutgoingStatus';\n\nconst GroupChannelMessageRenderer: GroupChannelProps['Fragment']['renderMessage'] = ({\n channel,\n message,\n onPress,\n onLongPress,\n onShowUserProfile,\n enableMessageGrouping,\n focused,\n prevMessage,\n nextMessage,\n}) => {\n const { palette } = useUIKitTheme();\n const { sbOptions, currentUser, mentionManager } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { mediaService } = usePlatformService();\n const { groupWithPrev, groupWithNext } = calcMessageGrouping(\n Boolean(enableMessageGrouping),\n message,\n prevMessage,\n nextMessage,\n );\n\n const reactionChildren = useIIFE(() => {\n if (\n shouldRenderReaction(channel, sbOptions.uikitWithAppInfo.groupChannel.channel.enableReactions) &&\n message.reactions &&\n message.reactions.length > 0\n ) {\n return <ReactionAddons.Message channel={channel} message={message} />;\n }\n return null;\n });\n\n const messageProps: Omit<GroupChannelMessageProps<SendbirdMessage>, 'message'> = {\n channel,\n variant: isMyMessage(message, currentUser?.userId) ? 'outgoing' : 'incoming',\n onPress,\n onLongPress,\n onPressURL: (url) => SBUUtils.openURL(url),\n onPressAvatar: () => {\n if ('sender' in message) onShowUserProfile?.(message.sender);\n },\n onPressMentionedUser: (mentionedUser) => {\n if (mentionedUser) onShowUserProfile?.(mentionedUser);\n },\n groupedWithPrev: groupWithPrev,\n groupedWithNext: groupWithNext,\n children: reactionChildren,\n sendingStatus: isMyMessage(message, currentUser?.userId) ? (\n <GroupChannelMessageOutgoingStatus channel={channel} message={message} />\n ) : null,\n strings: {\n edited: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_EDITED_POSTFIX,\n senderName: ('sender' in message && message.sender.nickname) || STRINGS.LABELS.USER_NO_NAME,\n sentDate: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_TIME(message),\n fileName: message.isFileMessage() ? STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_FILE_TITLE(message) : '',\n unknownTitle: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_TITLE(message),\n unknownDescription: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_DESC(message),\n },\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 = message.mentionedUsers?.find((it) => it.userId === groups[2]);\n if (user) {\n const mentionColor =\n !isMyMessage(message, 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 const renderMessage = () => {\n switch (getMessageType(message)) {\n case 'admin': {\n return <GroupChannelMessage.Admin message={message as SendbirdAdminMessage} {...messageProps} />;\n }\n case 'user':\n case 'user.opengraph': {\n if (message.ogMetaData && sbOptions.uikitWithAppInfo.groupChannel.channel.enableOgtag) {\n return (\n <GroupChannelMessage.OpenGraphUser\n message={message as SendbirdUserMessage}\n {...userMessageProps}\n {...messageProps}\n />\n );\n } else {\n return (\n <GroupChannelMessage.User\n message={message as SendbirdUserMessage}\n {...userMessageProps}\n {...messageProps}\n />\n );\n }\n }\n case 'file':\n case 'file.audio': {\n return <GroupChannelMessage.File message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.image': {\n return <GroupChannelMessage.ImageFile message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.video': {\n return (\n <GroupChannelMessage.VideoFile\n message={message as SendbirdFileMessage}\n fetchThumbnailFromVideoSource={(uri) => mediaService.getVideoThumbnail({ url: uri, timeMills: 1000 })}\n {...messageProps}\n />\n );\n }\n case 'unknown':\n default: {\n return <GroupChannelMessage.Unknown message={message} {...messageProps} />;\n }\n }\n };\n\n const messageGap = useIIFE(() => {\n if (message.isAdminMessage()) {\n if (nextMessage?.isAdminMessage()) {\n return 8;\n } else {\n return 16;\n }\n } else if (groupWithNext) {\n return 2;\n } else {\n return 16;\n }\n });\n\n return (\n <Box paddingHorizontal={16} marginBottom={messageGap}>\n <GroupChannelMessageDateSeparator message={message} prevMessage={prevMessage} />\n <GroupChannelMessageFocusAnimation focused={focused}>{renderMessage()}</GroupChannelMessageFocusAnimation>\n </Box>\n );\n};\n\nexport default React.memo(GroupChannelMessageRenderer);\n"],"mappings":"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"}
@@ -8,7 +8,7 @@ const iconMapper = {
8
8
  video: 'play',
9
9
  file: 'file-document'
10
10
  };
11
- export const MessageSearchResultItem = _ref => {
11
+ const MessageSearchResultItem = _ref => {
12
12
  let {
13
13
  onPress,
14
14
  message
@@ -121,4 +121,5 @@ const styles = createStyleSheet({
121
121
  height: 1
122
122
  }
123
123
  });
124
+ export default MessageSearchResultItem;
124
125
  //# sourceMappingURL=MessageSearchResultItem.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","Avatar","Box","Icon","PressBox","Text","createStyleSheet","useUIKitTheme","getFileExtension","getFileType","useIIFE","useLocalization","iconMapper","audio","image","video","file","MessageSearchResultItem","_ref","onPress","message","colors","select","palette","STRINGS","fileIcon","isFileMessage","undefined","type","name","createElement","style","styles","container","size","avatarSize","width","uri","getSenderProfile","containerStyle","avatar","flex","paddingRight","titleLine","marginRight","justifyContent","subtitle2","color","onBackground01","numberOfLines","MESSAGE_SEARCH","SEARCH_RESULT_ITEM_TITLE","paddingTop","caption2","onBackground02","SEARCH_RESULT_ITEM_TITLE_CAPTION","alignItems","flexDirection","icon","bodyIcon","backgroundColor","light","background100","dark","background500","body3","ellipsizeMode","bodyText","onBackground03","SEARCH_RESULT_ITEM_BODY","separator","onBackground04","isUserMessage","sender","profileUrl","height","marginHorizontal","marginTop","marginBottom","borderRadius","lineHeight","position","left","right","bottom"],"sources":["MessageSearchResultItem.tsx"],"sourcesContent":["import React from 'react';\n\nimport {\n Avatar,\n Box,\n Icon,\n PressBox,\n Text,\n createStyleSheet,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdBaseMessage } from '@sendbird/uikit-utils';\nimport { getFileExtension, getFileType, useIIFE } from '@sendbird/uikit-utils';\n\nimport type { MessageSearchProps } from '../domain/messageSearch/types';\nimport { useLocalization } from '../hooks/useContext';\n\nconst iconMapper = { audio: 'file-audio', image: 'photo', video: 'play', file: 'file-document' } as const;\n\nexport const MessageSearchResultItem: MessageSearchProps['List']['renderSearchResultItem'] = ({ onPress, message }) => {\n const { colors, select, palette } = useUIKitTheme();\n const { STRINGS } = useLocalization();\n\n const fileIcon = useIIFE(() => {\n if (!message?.isFileMessage()) return undefined;\n return iconMapper[getFileType(message.type || getFileExtension(message.name))];\n });\n\n return (\n <PressBox onPress={onPress}>\n <Box style={styles.container}>\n <Avatar size={styles.avatarSize.width} uri={getSenderProfile(message)} containerStyle={styles.avatar} />\n\n <Box flex={1} paddingRight={16}>\n <Box style={styles.titleLine}>\n <Box flex={1} marginRight={4} justifyContent={'center'}>\n <Text subtitle2 color={colors.onBackground01} numberOfLines={1}>\n {STRINGS.MESSAGE_SEARCH.SEARCH_RESULT_ITEM_TITLE(message)}\n </Text>\n </Box>\n <Box paddingTop={2}>\n <Text caption2 color={colors.onBackground02}>\n {STRINGS.MESSAGE_SEARCH.SEARCH_RESULT_ITEM_TITLE_CAPTION(message)}\n </Text>\n </Box>\n </Box>\n\n <Box flex={1}>\n <Box alignItems={'center'} flexDirection={'row'}>\n {fileIcon && (\n <Icon\n size={18}\n icon={fileIcon}\n color={colors.onBackground02}\n containerStyle={[\n styles.bodyIcon,\n { backgroundColor: select({ light: palette.background100, dark: palette.background500 }) },\n ]}\n />\n )}\n\n <Text\n body3\n numberOfLines={fileIcon ? 1 : 2}\n ellipsizeMode={fileIcon ? 'middle' : 'tail'}\n style={styles.bodyText}\n color={colors.onBackground03}\n >\n {STRINGS.MESSAGE_SEARCH.SEARCH_RESULT_ITEM_BODY(message)}\n </Text>\n </Box>\n </Box>\n\n <Box style={styles.separator} backgroundColor={colors.onBackground04} />\n </Box>\n </Box>\n </PressBox>\n );\n};\n\nfunction getSenderProfile(message: SendbirdBaseMessage) {\n if (message.isUserMessage() || message.isFileMessage()) {\n return message.sender.profileUrl;\n } else {\n return undefined;\n }\n}\n\nconst styles = createStyleSheet({\n container: {\n height: 76,\n width: '100%',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n avatar: {\n marginHorizontal: 16,\n },\n avatarSize: {\n width: 56,\n },\n titleLine: {\n flexDirection: 'row',\n marginTop: 10,\n marginBottom: 4,\n },\n bodyIcon: {\n borderRadius: 8,\n width: 26,\n height: 26,\n marginRight: 4,\n },\n bodyText: {\n flex: 1,\n lineHeight: 16,\n },\n separator: {\n position: 'absolute',\n left: 0,\n right: -16,\n bottom: 0,\n height: 1,\n },\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","Avatar","Box","Icon","PressBox","Text","createStyleSheet","useUIKitTheme","getFileExtension","getFileType","useIIFE","useLocalization","iconMapper","audio","image","video","file","MessageSearchResultItem","_ref","onPress","message","colors","select","palette","STRINGS","fileIcon","isFileMessage","undefined","type","name","createElement","style","styles","container","size","avatarSize","width","uri","getSenderProfile","containerStyle","avatar","flex","paddingRight","titleLine","marginRight","justifyContent","subtitle2","color","onBackground01","numberOfLines","MESSAGE_SEARCH","SEARCH_RESULT_ITEM_TITLE","paddingTop","caption2","onBackground02","SEARCH_RESULT_ITEM_TITLE_CAPTION","alignItems","flexDirection","icon","bodyIcon","backgroundColor","light","background100","dark","background500","body3","ellipsizeMode","bodyText","onBackground03","SEARCH_RESULT_ITEM_BODY","separator","onBackground04","isUserMessage","sender","profileUrl","height","marginHorizontal","marginTop","marginBottom","borderRadius","lineHeight","position","left","right","bottom"],"sources":["MessageSearchResultItem.tsx"],"sourcesContent":["import React from 'react';\n\nimport {\n Avatar,\n Box,\n Icon,\n PressBox,\n Text,\n createStyleSheet,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdBaseMessage } from '@sendbird/uikit-utils';\nimport { getFileExtension, getFileType, useIIFE } from '@sendbird/uikit-utils';\n\nimport type { MessageSearchProps } from '../domain/messageSearch/types';\nimport { useLocalization } from '../hooks/useContext';\n\nconst iconMapper = { audio: 'file-audio', image: 'photo', video: 'play', file: 'file-document' } as const;\n\nconst MessageSearchResultItem: MessageSearchProps['List']['renderSearchResultItem'] = ({ onPress, message }) => {\n const { colors, select, palette } = useUIKitTheme();\n const { STRINGS } = useLocalization();\n\n const fileIcon = useIIFE(() => {\n if (!message?.isFileMessage()) return undefined;\n return iconMapper[getFileType(message.type || getFileExtension(message.name))];\n });\n\n return (\n <PressBox onPress={onPress}>\n <Box style={styles.container}>\n <Avatar size={styles.avatarSize.width} uri={getSenderProfile(message)} containerStyle={styles.avatar} />\n\n <Box flex={1} paddingRight={16}>\n <Box style={styles.titleLine}>\n <Box flex={1} marginRight={4} justifyContent={'center'}>\n <Text subtitle2 color={colors.onBackground01} numberOfLines={1}>\n {STRINGS.MESSAGE_SEARCH.SEARCH_RESULT_ITEM_TITLE(message)}\n </Text>\n </Box>\n <Box paddingTop={2}>\n <Text caption2 color={colors.onBackground02}>\n {STRINGS.MESSAGE_SEARCH.SEARCH_RESULT_ITEM_TITLE_CAPTION(message)}\n </Text>\n </Box>\n </Box>\n\n <Box flex={1}>\n <Box alignItems={'center'} flexDirection={'row'}>\n {fileIcon && (\n <Icon\n size={18}\n icon={fileIcon}\n color={colors.onBackground02}\n containerStyle={[\n styles.bodyIcon,\n { backgroundColor: select({ light: palette.background100, dark: palette.background500 }) },\n ]}\n />\n )}\n\n <Text\n body3\n numberOfLines={fileIcon ? 1 : 2}\n ellipsizeMode={fileIcon ? 'middle' : 'tail'}\n style={styles.bodyText}\n color={colors.onBackground03}\n >\n {STRINGS.MESSAGE_SEARCH.SEARCH_RESULT_ITEM_BODY(message)}\n </Text>\n </Box>\n </Box>\n\n <Box style={styles.separator} backgroundColor={colors.onBackground04} />\n </Box>\n </Box>\n </PressBox>\n );\n};\n\nfunction getSenderProfile(message: SendbirdBaseMessage) {\n if (message.isUserMessage() || message.isFileMessage()) {\n return message.sender.profileUrl;\n } else {\n return undefined;\n }\n}\n\nconst styles = createStyleSheet({\n container: {\n height: 76,\n width: '100%',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n avatar: {\n marginHorizontal: 16,\n },\n avatarSize: {\n width: 56,\n },\n titleLine: {\n flexDirection: 'row',\n marginTop: 10,\n marginBottom: 4,\n },\n bodyIcon: {\n borderRadius: 8,\n width: 26,\n height: 26,\n marginRight: 4,\n },\n bodyText: {\n flex: 1,\n lineHeight: 16,\n },\n separator: {\n position: 'absolute',\n left: 0,\n right: -16,\n bottom: 0,\n height: 1,\n },\n});\n\nexport default MessageSearchResultItem;\n"],"mappings":"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"}
@@ -2,7 +2,7 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
2
2
  import React from 'react';
3
3
  import { Box, OpenChannelMessage } from '@sendbird/uikit-react-native-foundation';
4
4
  import { calcMessageGrouping, getMessageType } from '@sendbird/uikit-utils';
5
- import { useLocalization, usePlatformService } from '../../hooks/useContext';
5
+ import { useLocalization, usePlatformService, useSendbirdChat } from '../../hooks/useContext';
6
6
  import SBUUtils from '../../libs/SBUUtils';
7
7
  import OpenChannelMessageDateSeparator from './OpenChannelMessageDateSeparator';
8
8
  const OpenChannelMessageRenderer = _ref => {
@@ -11,11 +11,14 @@ const OpenChannelMessageRenderer = _ref => {
11
11
  message,
12
12
  onPress,
13
13
  onLongPress,
14
- onPressAvatar,
14
+ onShowUserProfile,
15
15
  enableMessageGrouping,
16
16
  prevMessage,
17
17
  nextMessage
18
18
  } = _ref;
19
+ const {
20
+ sbOptions
21
+ } = useSendbirdChat();
19
22
  const {
20
23
  STRINGS
21
24
  } = useLocalization();
@@ -29,11 +32,8 @@ const OpenChannelMessageRenderer = _ref => {
29
32
  channel,
30
33
  onPress,
31
34
  onLongPress,
32
- onPressURL: () => {
33
- var _message$ogMetaData, _message$ogMetaData2;
34
- return ((_message$ogMetaData = message.ogMetaData) === null || _message$ogMetaData === void 0 ? void 0 : _message$ogMetaData.url) && SBUUtils.openURL((_message$ogMetaData2 = message.ogMetaData) === null || _message$ogMetaData2 === void 0 ? void 0 : _message$ogMetaData2.url);
35
- },
36
- onPressAvatar: () => 'sender' in message && (onPressAvatar === null || onPressAvatar === void 0 ? void 0 : onPressAvatar(message.sender, {
35
+ onPressURL: url => SBUUtils.openURL(url),
36
+ onPressAvatar: () => 'sender' in message && (onShowUserProfile === null || onShowUserProfile === void 0 ? void 0 : onShowUserProfile(message.sender, {
37
37
  hideMessageButton: true
38
38
  })),
39
39
  grouped: groupWithPrev,
@@ -62,9 +62,15 @@ const OpenChannelMessageRenderer = _ref => {
62
62
  }
63
63
  case 'user.opengraph':
64
64
  {
65
- return /*#__PURE__*/React.createElement(OpenChannelMessage.OpenGraphUser, _extends({
66
- message: message
67
- }, messageProps));
65
+ if (sbOptions.uikitWithAppInfo.openChannel.channel.enableOgtag) {
66
+ return /*#__PURE__*/React.createElement(OpenChannelMessage.OpenGraphUser, _extends({
67
+ message: message
68
+ }, messageProps));
69
+ } else {
70
+ return /*#__PURE__*/React.createElement(OpenChannelMessage.User, _extends({
71
+ message: message
72
+ }, messageProps));
73
+ }
68
74
  }
69
75
  case 'file':
70
76
  case 'file.audio':
@@ -1 +1 @@
1
- {"version":3,"names":["React","Box","OpenChannelMessage","calcMessageGrouping","getMessageType","useLocalization","usePlatformService","SBUUtils","OpenChannelMessageDateSeparator","OpenChannelMessageRenderer","_ref","channel","message","onPress","onLongPress","onPressAvatar","enableMessageGrouping","prevMessage","nextMessage","STRINGS","mediaService","groupWithPrev","Boolean","messageProps","onPressURL","_message$ogMetaData","_message$ogMetaData2","ogMetaData","url","openURL","sender","hideMessageButton","grouped","strings","edited","OPEN_CHANNEL","MESSAGE_BUBBLE_EDITED_POSTFIX","senderName","nickname","LABELS","USER_NO_NAME","sentDate","MESSAGE_BUBBLE_TIME","fileName","isFileMessage","MESSAGE_BUBBLE_FILE_TITLE","unknownTitle","MESSAGE_BUBBLE_UNKNOWN_TITLE","unknownDescription","MESSAGE_BUBBLE_UNKNOWN_DESC","renderMessage","createElement","Admin","_extends","User","OpenGraphUser","File","ImageFile","VideoFile","fetchThumbnailFromVideoSource","uri","getVideoThumbnail","timeMills","Unknown","memo"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { OpenChannelMessageProps } from '@sendbird/uikit-react-native-foundation';\nimport { Box, OpenChannelMessage } from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdAdminMessage,\n SendbirdFileMessage,\n SendbirdMessage,\n SendbirdUserMessage,\n calcMessageGrouping,\n getMessageType,\n} from '@sendbird/uikit-utils';\n\nimport type { OpenChannelProps } from '../../domain/openChannel/types';\nimport { useLocalization, usePlatformService } from '../../hooks/useContext';\nimport SBUUtils from '../../libs/SBUUtils';\nimport OpenChannelMessageDateSeparator from './OpenChannelMessageDateSeparator';\n\nconst OpenChannelMessageRenderer: OpenChannelProps['Fragment']['renderMessage'] = ({\n channel,\n message,\n onPress,\n onLongPress,\n onPressAvatar,\n enableMessageGrouping,\n prevMessage,\n nextMessage,\n}) => {\n const { STRINGS } = useLocalization();\n const { mediaService } = usePlatformService();\n const { groupWithPrev } = calcMessageGrouping(Boolean(enableMessageGrouping), message, prevMessage, nextMessage);\n\n const messageProps: Omit<OpenChannelMessageProps<SendbirdMessage>, 'message'> = {\n channel,\n onPress,\n onLongPress,\n onPressURL: () => message.ogMetaData?.url && SBUUtils.openURL(message.ogMetaData?.url),\n onPressAvatar: () => 'sender' in message && onPressAvatar?.(message.sender, { hideMessageButton: true }),\n grouped: groupWithPrev,\n strings: {\n edited: STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_EDITED_POSTFIX,\n senderName: ('sender' in message && message.sender.nickname) || STRINGS.LABELS.USER_NO_NAME,\n sentDate: STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_TIME(message),\n fileName: message.isFileMessage() ? STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_FILE_TITLE(message) : '',\n unknownTitle: STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_TITLE(message),\n unknownDescription: STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_DESC(message),\n },\n };\n const renderMessage = () => {\n switch (getMessageType(message)) {\n case 'admin': {\n return <OpenChannelMessage.Admin message={message as SendbirdAdminMessage} {...messageProps} />;\n }\n case 'user': {\n return <OpenChannelMessage.User message={message as SendbirdUserMessage} {...messageProps} />;\n }\n case 'user.opengraph': {\n return <OpenChannelMessage.OpenGraphUser message={message as SendbirdUserMessage} {...messageProps} />;\n }\n case 'file':\n case 'file.audio': {\n return <OpenChannelMessage.File message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.image': {\n return <OpenChannelMessage.ImageFile message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.video': {\n return (\n <OpenChannelMessage.VideoFile\n message={message as SendbirdFileMessage}\n fetchThumbnailFromVideoSource={(uri) => mediaService.getVideoThumbnail({ url: uri, timeMills: 1000 })}\n {...messageProps}\n />\n );\n }\n case 'unknown':\n default: {\n return <OpenChannelMessage.Unknown message={message} {...messageProps} />;\n }\n }\n };\n\n return (\n <Box>\n <OpenChannelMessageDateSeparator message={message} prevMessage={prevMessage} />\n {renderMessage()}\n </Box>\n );\n};\n\nexport default React.memo(OpenChannelMessageRenderer);\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","Box","OpenChannelMessage","calcMessageGrouping","getMessageType","useLocalization","usePlatformService","useSendbirdChat","SBUUtils","OpenChannelMessageDateSeparator","OpenChannelMessageRenderer","_ref","channel","message","onPress","onLongPress","onShowUserProfile","enableMessageGrouping","prevMessage","nextMessage","sbOptions","STRINGS","mediaService","groupWithPrev","Boolean","messageProps","onPressURL","url","openURL","onPressAvatar","sender","hideMessageButton","grouped","strings","edited","OPEN_CHANNEL","MESSAGE_BUBBLE_EDITED_POSTFIX","senderName","nickname","LABELS","USER_NO_NAME","sentDate","MESSAGE_BUBBLE_TIME","fileName","isFileMessage","MESSAGE_BUBBLE_FILE_TITLE","unknownTitle","MESSAGE_BUBBLE_UNKNOWN_TITLE","unknownDescription","MESSAGE_BUBBLE_UNKNOWN_DESC","renderMessage","createElement","Admin","_extends","User","uikitWithAppInfo","openChannel","enableOgtag","OpenGraphUser","File","ImageFile","VideoFile","fetchThumbnailFromVideoSource","uri","getVideoThumbnail","timeMills","Unknown","memo"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { OpenChannelMessageProps } from '@sendbird/uikit-react-native-foundation';\nimport { Box, OpenChannelMessage } from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdAdminMessage,\n SendbirdFileMessage,\n SendbirdMessage,\n SendbirdUserMessage,\n calcMessageGrouping,\n getMessageType,\n} from '@sendbird/uikit-utils';\n\nimport type { OpenChannelProps } from '../../domain/openChannel/types';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../../hooks/useContext';\nimport SBUUtils from '../../libs/SBUUtils';\nimport OpenChannelMessageDateSeparator from './OpenChannelMessageDateSeparator';\n\nconst OpenChannelMessageRenderer: OpenChannelProps['Fragment']['renderMessage'] = ({\n channel,\n message,\n onPress,\n onLongPress,\n onShowUserProfile,\n enableMessageGrouping,\n prevMessage,\n nextMessage,\n}) => {\n const { sbOptions } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { mediaService } = usePlatformService();\n const { groupWithPrev } = calcMessageGrouping(Boolean(enableMessageGrouping), message, prevMessage, nextMessage);\n\n const messageProps: Omit<OpenChannelMessageProps<SendbirdMessage>, 'message'> = {\n channel,\n onPress,\n onLongPress,\n onPressURL: (url) => SBUUtils.openURL(url),\n onPressAvatar: () => 'sender' in message && onShowUserProfile?.(message.sender, { hideMessageButton: true }),\n grouped: groupWithPrev,\n strings: {\n edited: STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_EDITED_POSTFIX,\n senderName: ('sender' in message && message.sender.nickname) || STRINGS.LABELS.USER_NO_NAME,\n sentDate: STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_TIME(message),\n fileName: message.isFileMessage() ? STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_FILE_TITLE(message) : '',\n unknownTitle: STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_TITLE(message),\n unknownDescription: STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_DESC(message),\n },\n };\n const renderMessage = () => {\n switch (getMessageType(message)) {\n case 'admin': {\n return <OpenChannelMessage.Admin message={message as SendbirdAdminMessage} {...messageProps} />;\n }\n case 'user': {\n return <OpenChannelMessage.User message={message as SendbirdUserMessage} {...messageProps} />;\n }\n case 'user.opengraph': {\n if (sbOptions.uikitWithAppInfo.openChannel.channel.enableOgtag) {\n return <OpenChannelMessage.OpenGraphUser message={message as SendbirdUserMessage} {...messageProps} />;\n } else {\n return <OpenChannelMessage.User message={message as SendbirdUserMessage} {...messageProps} />;\n }\n }\n case 'file':\n case 'file.audio': {\n return <OpenChannelMessage.File message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.image': {\n return <OpenChannelMessage.ImageFile message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.video': {\n return (\n <OpenChannelMessage.VideoFile\n message={message as SendbirdFileMessage}\n fetchThumbnailFromVideoSource={(uri) => mediaService.getVideoThumbnail({ url: uri, timeMills: 1000 })}\n {...messageProps}\n />\n );\n }\n case 'unknown':\n default: {\n return <OpenChannelMessage.Unknown message={message} {...messageProps} />;\n }\n }\n };\n\n return (\n <Box>\n <OpenChannelMessageDateSeparator message={message} prevMessage={prevMessage} />\n {renderMessage()}\n </Box>\n );\n};\n\nexport default React.memo(OpenChannelMessageRenderer);\n"],"mappings":"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"}
@@ -1,10 +1,5 @@
1
1
  export const DEFAULT_LONG_PRESS_DELAY = 350;
2
2
  export const MESSAGE_SEARCH_SAFE_SCROLL_DELAY = 500;
3
3
  export const MESSAGE_FOCUS_ANIMATION_DELAY = 250;
4
- export const DEPRECATION_WARNING = {
5
- CHANNEL: {
6
- ON_PRESS_IMAGE_MESSAGE: '`onPressImageMessage` is deprecated, please use `onPressMediaMessage` instead'
7
- }
8
- };
9
4
  export const UNKNOWN_USER_ID = '##__USER_ID_IS_NOT_PROVIDED__##';
10
5
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_LONG_PRESS_DELAY","MESSAGE_SEARCH_SAFE_SCROLL_DELAY","MESSAGE_FOCUS_ANIMATION_DELAY","DEPRECATION_WARNING","CHANNEL","ON_PRESS_IMAGE_MESSAGE","UNKNOWN_USER_ID"],"sources":["constants.ts"],"sourcesContent":["export const DEFAULT_LONG_PRESS_DELAY = 350;\nexport const MESSAGE_SEARCH_SAFE_SCROLL_DELAY = 500;\nexport const MESSAGE_FOCUS_ANIMATION_DELAY = 250;\nexport const DEPRECATION_WARNING = {\n CHANNEL: {\n ON_PRESS_IMAGE_MESSAGE: '`onPressImageMessage` is deprecated, please use `onPressMediaMessage` instead',\n },\n} as const;\n\nexport const UNKNOWN_USER_ID = '##__USER_ID_IS_NOT_PROVIDED__##';\n"],"mappings":"AAAA,OAAO,MAAMA,wBAAwB,GAAG,GAAG;AAC3C,OAAO,MAAMC,gCAAgC,GAAG,GAAG;AACnD,OAAO,MAAMC,6BAA6B,GAAG,GAAG;AAChD,OAAO,MAAMC,mBAAmB,GAAG;EACjCC,OAAO,EAAE;IACPC,sBAAsB,EAAE;EAC1B;AACF,CAAU;AAEV,OAAO,MAAMC,eAAe,GAAG,iCAAiC"}
1
+ {"version":3,"names":["DEFAULT_LONG_PRESS_DELAY","MESSAGE_SEARCH_SAFE_SCROLL_DELAY","MESSAGE_FOCUS_ANIMATION_DELAY","UNKNOWN_USER_ID"],"sources":["constants.ts"],"sourcesContent":["export const DEFAULT_LONG_PRESS_DELAY = 350;\nexport const MESSAGE_SEARCH_SAFE_SCROLL_DELAY = 500;\nexport const MESSAGE_FOCUS_ANIMATION_DELAY = 250;\n\nexport const UNKNOWN_USER_ID = '##__USER_ID_IS_NOT_PROVIDED__##';\n"],"mappings":"AAAA,OAAO,MAAMA,wBAAwB,GAAG,GAAG;AAC3C,OAAO,MAAMC,gCAAgC,GAAG,GAAG;AACnD,OAAO,MAAMC,6BAA6B,GAAG,GAAG;AAEhD,OAAO,MAAMC,eAAe,GAAG,iCAAiC"}
@@ -21,7 +21,7 @@ const GroupChannelPreviewContainer = _ref => {
21
21
  const {
22
22
  currentUser,
23
23
  sdk,
24
- features,
24
+ sbOptions,
25
25
  mentionManager
26
26
  } = useSendbirdChat();
27
27
  const {
@@ -31,15 +31,14 @@ const GroupChannelPreviewContainer = _ref => {
31
31
  colors
32
32
  } = useUIKitTheme();
33
33
  const [typingUsers, setTypingUsers] = useState([]);
34
- if (features.channelListTypingIndicatorEnabled) {
35
- const handlerId = useUniqHandlerId('GroupChannelPreviewContainer_TypingIndicator');
36
- useChannelHandler(sdk, handlerId, {
37
- onTypingStatusUpdated(eventChannel) {
38
- if (isDifferentChannel(channel, eventChannel)) return;
39
- setTypingUsers(eventChannel.getTypingUsers());
40
- }
41
- });
42
- }
34
+ const handlerId = useUniqHandlerId('GroupChannelPreviewContainer_TypingIndicator');
35
+ useChannelHandler(sdk, handlerId, {
36
+ onTypingStatusUpdated(eventChannel) {
37
+ if (isDifferentChannel(channel, eventChannel)) return;
38
+ if (!sbOptions.uikit.groupChannel.channelList.enableTypingIndicator) return;
39
+ setTypingUsers(eventChannel.getTypingUsers());
40
+ }
41
+ });
43
42
  const outgoingStatus = useMessageOutgoingStatus(sdk, channel, channel.lastMessage);
44
43
  const bodyText = useIIFE(() => {
45
44
  if (typingUsers.length > 0) return STRINGS.LABELS.TYPING_INDICATOR_TYPINGS(typingUsers) || '';else return STRINGS.GROUP_CHANNEL_LIST.CHANNEL_PREVIEW_BODY(channel);
@@ -51,8 +50,8 @@ const GroupChannelPreviewContainer = _ref => {
51
50
  return iconMapper[getFileType(channel.lastMessage.type || getFileExtension(channel.lastMessage.name))];
52
51
  });
53
52
  const titleCaptionIcon = useIIFE(() => {
54
- if (!channel.lastMessage) return undefined;
55
- if (!features.channelListMessageReceiptStatusEnabled) return undefined;
53
+ if (!channel.lastMessage || channel.isEphemeral) return undefined;
54
+ if (!sbOptions.uikit.groupChannel.channelList.enableMessageReceiptStatus) return undefined;
56
55
  if (!isMyMessage(channel.lastMessage, currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId)) return undefined;
57
56
  if (outgoingStatus === 'PENDING') {
58
57
  return /*#__PURE__*/React.createElement(LoadingSpinner, {
@@ -94,6 +93,7 @@ const GroupChannelPreviewContainer = _ref => {
94
93
  }
95
94
  return undefined;
96
95
  });
96
+ const unreadMessageCount = useIIFE(() => channel.isEphemeral ? 0 : channel.unreadMessageCount);
97
97
  return /*#__PURE__*/React.createElement(Pressable, {
98
98
  delayLongPress: DEFAULT_LONG_PRESS_DELAY,
99
99
  onPress: onPress,
@@ -109,7 +109,7 @@ const GroupChannelPreviewContainer = _ref => {
109
109
  titleCaption: STRINGS.GROUP_CHANNEL_LIST.CHANNEL_PREVIEW_TITLE_CAPTION(channel),
110
110
  body: bodyText,
111
111
  bodyIcon: fileIcon,
112
- badgeCount: channel.unreadMessageCount,
112
+ badgeCount: unreadMessageCount,
113
113
  mentioned: channel.unreadMentionCount > 0,
114
114
  mentionTrigger: mentionManager.config.trigger,
115
115
  memberCount: channel.memberCount > 2 ? channel.memberCount : undefined,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","Pressable","useChannelHandler","useMessageOutgoingStatus","GroupChannelPreview","Icon","LoadingSpinner","createStyleSheet","useUIKitTheme","getFileExtension","getFileType","isDifferentChannel","isMyMessage","useIIFE","useUniqHandlerId","ChannelCover","DEFAULT_LONG_PRESS_DELAY","useLocalization","useSendbirdChat","iconMapper","audio","image","video","file","GroupChannelPreviewContainer","_ref","onPress","onLongPress","channel","currentUser","sdk","features","mentionManager","STRINGS","colors","typingUsers","setTypingUsers","channelListTypingIndicatorEnabled","handlerId","onTypingStatusUpdated","eventChannel","getTypingUsers","outgoingStatus","lastMessage","bodyText","length","LABELS","TYPING_INDICATOR_TYPINGS","GROUP_CHANNEL_LIST","CHANNEL_PREVIEW_BODY","fileIcon","_channel$lastMessage","isFileMessage","undefined","type","name","titleCaptionIcon","channelListMessageReceiptStatusEnabled","userId","createElement","size","style","styles","icon","color","error","onBackground03","containerStyle","secondary","delayLongPress","customCover","coverUrl","title","CHANNEL_PREVIEW_TITLE","titleCaptionLeft","titleCaption","CHANNEL_PREVIEW_TITLE_CAPTION","body","bodyIcon","badgeCount","unreadMessageCount","mentioned","unreadMentionCount","mentionTrigger","config","trigger","memberCount","frozen","isFrozen","broadcast","isBroadcast","notificationOff","myPushTriggerOption","marginRight","broadcastCover","padding","borderRadius"],"sources":["GroupChannelPreviewContainer.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Pressable } from 'react-native';\n\nimport { useChannelHandler, useMessageOutgoingStatus } from '@sendbird/uikit-chat-hooks';\nimport {\n GroupChannelPreview,\n Icon,\n LoadingSpinner,\n createStyleSheet,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdGroupChannel,\n SendbirdUser,\n getFileExtension,\n getFileType,\n isDifferentChannel,\n isMyMessage,\n useIIFE,\n useUniqHandlerId,\n} from '@sendbird/uikit-utils';\n\nimport ChannelCover from '../components/ChannelCover';\nimport { DEFAULT_LONG_PRESS_DELAY } from '../constants';\nimport { useLocalization, useSendbirdChat } from '../hooks/useContext';\n\nconst iconMapper = { audio: 'file-audio', image: 'photo', video: 'play', file: 'file-document' } as const;\n\ntype Props = {\n channel: SendbirdGroupChannel;\n onPress: () => void;\n onLongPress: () => void;\n};\nconst GroupChannelPreviewContainer = ({ onPress, onLongPress, channel }: Props) => {\n const { currentUser, sdk, features, mentionManager } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n\n const [typingUsers, setTypingUsers] = useState<SendbirdUser[]>([]);\n\n if (features.channelListTypingIndicatorEnabled) {\n const handlerId = useUniqHandlerId('GroupChannelPreviewContainer_TypingIndicator');\n useChannelHandler(sdk, handlerId, {\n onTypingStatusUpdated(eventChannel) {\n if (isDifferentChannel(channel, eventChannel)) return;\n setTypingUsers(eventChannel.getTypingUsers());\n },\n });\n }\n\n const outgoingStatus = useMessageOutgoingStatus(sdk, channel, channel.lastMessage);\n\n const bodyText = useIIFE(() => {\n if (typingUsers.length > 0) return STRINGS.LABELS.TYPING_INDICATOR_TYPINGS(typingUsers) || '';\n else return STRINGS.GROUP_CHANNEL_LIST.CHANNEL_PREVIEW_BODY(channel);\n });\n\n const fileIcon = useIIFE(() => {\n if (!channel.lastMessage?.isFileMessage()) return undefined;\n if (typingUsers.length > 0) return undefined;\n return iconMapper[getFileType(channel.lastMessage.type || getFileExtension(channel.lastMessage.name))];\n });\n\n const titleCaptionIcon = useIIFE(() => {\n if (!channel.lastMessage) return undefined;\n if (!features.channelListMessageReceiptStatusEnabled) return undefined;\n if (!isMyMessage(channel.lastMessage, currentUser?.userId)) return undefined;\n\n if (outgoingStatus === 'PENDING') {\n return <LoadingSpinner size={16} style={styles.titleCaptionIcon} />;\n }\n\n if (outgoingStatus === 'FAILED') {\n return <Icon icon={'error'} size={16} color={colors.error} style={styles.titleCaptionIcon} />;\n }\n\n if (outgoingStatus === 'UNDELIVERED') {\n return <Icon icon={'done'} size={16} color={colors.onBackground03} containerStyle={styles.titleCaptionIcon} />;\n }\n\n if (outgoingStatus === 'DELIVERED' || outgoingStatus === 'UNREAD') {\n return <Icon icon={'done-all'} size={16} color={colors.onBackground03} style={styles.titleCaptionIcon} />;\n }\n\n if (outgoingStatus === 'READ') {\n return <Icon icon={'done-all'} size={16} color={colors.secondary} style={styles.titleCaptionIcon} />;\n }\n\n return undefined;\n });\n\n return (\n <Pressable delayLongPress={DEFAULT_LONG_PRESS_DELAY} onPress={onPress} onLongPress={onLongPress}>\n <GroupChannelPreview\n customCover={<ChannelCover channel={channel} size={56} />}\n coverUrl={channel.coverUrl}\n title={STRINGS.GROUP_CHANNEL_LIST.CHANNEL_PREVIEW_TITLE(currentUser?.userId ?? '', channel)}\n titleCaptionLeft={titleCaptionIcon}\n titleCaption={STRINGS.GROUP_CHANNEL_LIST.CHANNEL_PREVIEW_TITLE_CAPTION(channel)}\n body={bodyText}\n bodyIcon={fileIcon}\n badgeCount={channel.unreadMessageCount}\n mentioned={channel.unreadMentionCount > 0}\n mentionTrigger={mentionManager.config.trigger}\n memberCount={channel.memberCount > 2 ? channel.memberCount : undefined}\n frozen={channel.isFrozen}\n broadcast={channel.isBroadcast}\n notificationOff={channel.myPushTriggerOption === 'off'}\n />\n </Pressable>\n );\n};\n\nconst styles = createStyleSheet({\n titleCaptionIcon: {\n marginRight: 4,\n },\n broadcastCover: {\n padding: 12,\n borderRadius: 28,\n },\n});\n\nexport default GroupChannelPreviewContainer;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useState","Pressable","useChannelHandler","useMessageOutgoingStatus","GroupChannelPreview","Icon","LoadingSpinner","createStyleSheet","useUIKitTheme","getFileExtension","getFileType","isDifferentChannel","isMyMessage","useIIFE","useUniqHandlerId","ChannelCover","DEFAULT_LONG_PRESS_DELAY","useLocalization","useSendbirdChat","iconMapper","audio","image","video","file","GroupChannelPreviewContainer","_ref","onPress","onLongPress","channel","currentUser","sdk","sbOptions","mentionManager","STRINGS","colors","typingUsers","setTypingUsers","handlerId","onTypingStatusUpdated","eventChannel","uikit","groupChannel","channelList","enableTypingIndicator","getTypingUsers","outgoingStatus","lastMessage","bodyText","length","LABELS","TYPING_INDICATOR_TYPINGS","GROUP_CHANNEL_LIST","CHANNEL_PREVIEW_BODY","fileIcon","_channel$lastMessage","isFileMessage","undefined","type","name","titleCaptionIcon","isEphemeral","enableMessageReceiptStatus","userId","createElement","size","style","styles","icon","color","error","onBackground03","containerStyle","secondary","unreadMessageCount","delayLongPress","customCover","coverUrl","title","CHANNEL_PREVIEW_TITLE","titleCaptionLeft","titleCaption","CHANNEL_PREVIEW_TITLE_CAPTION","body","bodyIcon","badgeCount","mentioned","unreadMentionCount","mentionTrigger","config","trigger","memberCount","frozen","isFrozen","broadcast","isBroadcast","notificationOff","myPushTriggerOption","marginRight","broadcastCover","padding","borderRadius"],"sources":["GroupChannelPreviewContainer.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Pressable } from 'react-native';\n\nimport { useChannelHandler, useMessageOutgoingStatus } from '@sendbird/uikit-chat-hooks';\nimport {\n GroupChannelPreview,\n Icon,\n LoadingSpinner,\n createStyleSheet,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdGroupChannel,\n SendbirdUser,\n getFileExtension,\n getFileType,\n isDifferentChannel,\n isMyMessage,\n useIIFE,\n useUniqHandlerId,\n} from '@sendbird/uikit-utils';\n\nimport ChannelCover from '../components/ChannelCover';\nimport { DEFAULT_LONG_PRESS_DELAY } from '../constants';\nimport { useLocalization, useSendbirdChat } from '../hooks/useContext';\n\nconst iconMapper = { audio: 'file-audio', image: 'photo', video: 'play', file: 'file-document' } as const;\n\ntype Props = {\n channel: SendbirdGroupChannel;\n onPress: () => void;\n onLongPress: () => void;\n};\nconst GroupChannelPreviewContainer = ({ onPress, onLongPress, channel }: Props) => {\n const { currentUser, sdk, sbOptions, mentionManager } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n\n const [typingUsers, setTypingUsers] = useState<SendbirdUser[]>([]);\n\n const handlerId = useUniqHandlerId('GroupChannelPreviewContainer_TypingIndicator');\n useChannelHandler(sdk, handlerId, {\n onTypingStatusUpdated(eventChannel) {\n if (isDifferentChannel(channel, eventChannel)) return;\n if (!sbOptions.uikit.groupChannel.channelList.enableTypingIndicator) return;\n setTypingUsers(eventChannel.getTypingUsers());\n },\n });\n\n const outgoingStatus = useMessageOutgoingStatus(sdk, channel, channel.lastMessage);\n\n const bodyText = useIIFE(() => {\n if (typingUsers.length > 0) return STRINGS.LABELS.TYPING_INDICATOR_TYPINGS(typingUsers) || '';\n else return STRINGS.GROUP_CHANNEL_LIST.CHANNEL_PREVIEW_BODY(channel);\n });\n\n const fileIcon = useIIFE(() => {\n if (!channel.lastMessage?.isFileMessage()) return undefined;\n if (typingUsers.length > 0) return undefined;\n return iconMapper[getFileType(channel.lastMessage.type || getFileExtension(channel.lastMessage.name))];\n });\n\n const titleCaptionIcon = useIIFE(() => {\n if (!channel.lastMessage || channel.isEphemeral) return undefined;\n if (!sbOptions.uikit.groupChannel.channelList.enableMessageReceiptStatus) return undefined;\n if (!isMyMessage(channel.lastMessage, currentUser?.userId)) return undefined;\n\n if (outgoingStatus === 'PENDING') {\n return <LoadingSpinner size={16} style={styles.titleCaptionIcon} />;\n }\n\n if (outgoingStatus === 'FAILED') {\n return <Icon icon={'error'} size={16} color={colors.error} style={styles.titleCaptionIcon} />;\n }\n\n if (outgoingStatus === 'UNDELIVERED') {\n return <Icon icon={'done'} size={16} color={colors.onBackground03} containerStyle={styles.titleCaptionIcon} />;\n }\n\n if (outgoingStatus === 'DELIVERED' || outgoingStatus === 'UNREAD') {\n return <Icon icon={'done-all'} size={16} color={colors.onBackground03} style={styles.titleCaptionIcon} />;\n }\n\n if (outgoingStatus === 'READ') {\n return <Icon icon={'done-all'} size={16} color={colors.secondary} style={styles.titleCaptionIcon} />;\n }\n\n return undefined;\n });\n\n const unreadMessageCount = useIIFE(() => (channel.isEphemeral ? 0 : channel.unreadMessageCount));\n\n return (\n <Pressable delayLongPress={DEFAULT_LONG_PRESS_DELAY} onPress={onPress} onLongPress={onLongPress}>\n <GroupChannelPreview\n customCover={<ChannelCover channel={channel} size={56} />}\n coverUrl={channel.coverUrl}\n title={STRINGS.GROUP_CHANNEL_LIST.CHANNEL_PREVIEW_TITLE(currentUser?.userId ?? '', channel)}\n titleCaptionLeft={titleCaptionIcon}\n titleCaption={STRINGS.GROUP_CHANNEL_LIST.CHANNEL_PREVIEW_TITLE_CAPTION(channel)}\n body={bodyText}\n bodyIcon={fileIcon}\n badgeCount={unreadMessageCount}\n mentioned={channel.unreadMentionCount > 0}\n mentionTrigger={mentionManager.config.trigger}\n memberCount={channel.memberCount > 2 ? channel.memberCount : undefined}\n frozen={channel.isFrozen}\n broadcast={channel.isBroadcast}\n notificationOff={channel.myPushTriggerOption === 'off'}\n />\n </Pressable>\n );\n};\n\nconst styles = createStyleSheet({\n titleCaptionIcon: {\n marginRight: 4,\n },\n broadcastCover: {\n padding: 12,\n borderRadius: 28,\n },\n});\n\nexport default GroupChannelPreviewContainer;\n"],"mappings":"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"}