@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
@@ -1,178 +0,0 @@
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 { Pressable, View } from 'react-native';
4
- import { createStyleSheet } from '@sendbird/uikit-react-native-foundation';
5
- import { calcMessageGrouping, conditionChaining, isMyMessage, shouldRenderReaction, useIIFE } from '@sendbird/uikit-utils';
6
- import { DEFAULT_LONG_PRESS_DELAY } from '../../constants';
7
- import { useSendbirdChat } from '../../hooks/useContext';
8
- import { ReactionAddons } from '../ReactionAddons';
9
- import AdminMessage from './AdminMessage';
10
- import FileMessage from './FileMessage';
11
- import MessageContainer from './MessageContainer';
12
- import MessageDateSeparator from './MessageDateSeparator';
13
- import MessageIncomingAvatar from './MessageIncomingAvatar';
14
- import MessageIncomingSenderName from './MessageIncomingSenderName';
15
- import MessageOutgoingStatus from './MessageOutgoingStatus';
16
- import MessageTime from './MessageTime';
17
- import UnknownMessage from './UnknownMessage';
18
- import UserMessage from './UserMessage';
19
- const MessageRenderer = _ref => {
20
- let {
21
- currentUserId,
22
- channel,
23
- message,
24
- onPress,
25
- onLongPress,
26
- ...rest
27
- } = _ref;
28
- const variant = isMyMessage(message, currentUserId) ? 'outgoing' : 'incoming';
29
- const isOutgoing = variant === 'outgoing';
30
- const isIncoming = variant === 'incoming';
31
- const variantContainerStyle = {
32
- incoming: styles.chatIncoming,
33
- outgoing: styles.chatOutgoing
34
- }[variant];
35
- const {
36
- groupWithPrev,
37
- groupWithNext
38
- } = calcMessageGrouping(Boolean(rest.enableMessageGrouping), message, rest.prevMessage, rest.nextMessage);
39
- const {
40
- features
41
- } = useSendbirdChat();
42
- const reactionChildren = useIIFE(() => {
43
- if (shouldRenderReaction(channel, features.reactionEnabled) && message.reactions && message.reactions.length > 0) {
44
- return /*#__PURE__*/React.createElement(ReactionAddons.Message, {
45
- channel: channel,
46
- message: message
47
- });
48
- }
49
- return null;
50
- });
51
- const messageComponent = useIIFE(() => {
52
- const pressableProps = {
53
- style: styles.msgContainer,
54
- disabled: !onPress && !onLongPress,
55
- onPress,
56
- onLongPress,
57
- delayLongPress: DEFAULT_LONG_PRESS_DELAY
58
- };
59
- const messageProps = {
60
- ...rest,
61
- variant,
62
- groupWithNext,
63
- groupWithPrev
64
- };
65
- if (message.isUserMessage()) {
66
- return /*#__PURE__*/React.createElement(Pressable, pressableProps, _ref2 => {
67
- let {
68
- pressed
69
- } = _ref2;
70
- return /*#__PURE__*/React.createElement(UserMessage, _extends({
71
- message: message,
72
- pressed: pressed,
73
- onLongPressURL: onLongPress,
74
- onLongPressMentionedUser: onLongPress
75
- }, messageProps), reactionChildren);
76
- });
77
- }
78
- if (message.isFileMessage()) {
79
- return /*#__PURE__*/React.createElement(Pressable, pressableProps, _ref3 => {
80
- let {
81
- pressed
82
- } = _ref3;
83
- return /*#__PURE__*/React.createElement(FileMessage, _extends({
84
- message: message,
85
- pressed: pressed
86
- }, messageProps), reactionChildren);
87
- });
88
- }
89
- if (message.isAdminMessage()) {
90
- return /*#__PURE__*/React.createElement(AdminMessage, _extends({
91
- message: message,
92
- pressed: false
93
- }, messageProps));
94
- }
95
- return /*#__PURE__*/React.createElement(Pressable, pressableProps, _ref4 => {
96
- let {
97
- pressed
98
- } = _ref4;
99
- return /*#__PURE__*/React.createElement(UnknownMessage, _extends({
100
- message: message,
101
- pressed: pressed
102
- }, messageProps));
103
- });
104
- });
105
- return /*#__PURE__*/React.createElement(MessageContainer, null, /*#__PURE__*/React.createElement(MessageDateSeparator, {
106
- message: message,
107
- prevMessage: rest.prevMessage
108
- }), message.isAdminMessage() && messageComponent, !message.isAdminMessage() && /*#__PURE__*/React.createElement(View, {
109
- style: [variantContainerStyle, conditionChaining([groupWithNext, Boolean(rest.nextMessage)], [styles.chatGroup, styles.chatNonGroup, styles.chatLastMessage])]
110
- }, isOutgoing && /*#__PURE__*/React.createElement(View, {
111
- style: styles.outgoingContainer
112
- }, /*#__PURE__*/React.createElement(MessageOutgoingStatus, {
113
- channel: channel,
114
- message: message
115
- }), /*#__PURE__*/React.createElement(MessageTime, {
116
- message: message,
117
- grouping: groupWithNext,
118
- style: styles.timeOutgoing
119
- })), isIncoming && /*#__PURE__*/React.createElement(MessageIncomingAvatar, {
120
- message: message,
121
- grouping: groupWithNext
122
- }), /*#__PURE__*/React.createElement(View, {
123
- style: styles.bubbleContainer
124
- }, isIncoming && /*#__PURE__*/React.createElement(MessageIncomingSenderName, {
125
- message: message,
126
- grouping: groupWithPrev
127
- }), /*#__PURE__*/React.createElement(View, {
128
- style: styles.bubbleWrapper
129
- }, messageComponent, isIncoming && /*#__PURE__*/React.createElement(MessageTime, {
130
- message: message,
131
- grouping: groupWithNext,
132
- style: styles.timeIncoming
133
- })))));
134
- };
135
- const styles = createStyleSheet({
136
- chatIncoming: {
137
- flexDirection: 'row',
138
- justifyContent: 'flex-start',
139
- alignItems: 'flex-end'
140
- },
141
- chatOutgoing: {
142
- flexDirection: 'row',
143
- justifyContent: 'flex-end',
144
- alignItems: 'flex-end'
145
- },
146
- timeIncoming: {
147
- marginLeft: 4
148
- },
149
- timeOutgoing: {
150
- marginRight: 4
151
- },
152
- chatGroup: {
153
- marginBottom: 2
154
- },
155
- chatNonGroup: {
156
- marginBottom: 16
157
- },
158
- chatLastMessage: {
159
- marginBottom: 16
160
- },
161
- msgContainer: {
162
- maxWidth: 240
163
- },
164
- bubbleContainer: {
165
- flexShrink: 1
166
- },
167
- bubbleWrapper: {
168
- flexDirection: 'row',
169
- alignItems: 'flex-end'
170
- },
171
- outgoingContainer: {
172
- flexDirection: 'row',
173
- alignItems: 'flex-end',
174
- justifyContent: 'center'
175
- }
176
- });
177
- export default /*#__PURE__*/React.memo(MessageRenderer);
178
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","Pressable","View","createStyleSheet","calcMessageGrouping","conditionChaining","isMyMessage","shouldRenderReaction","useIIFE","DEFAULT_LONG_PRESS_DELAY","useSendbirdChat","ReactionAddons","AdminMessage","FileMessage","MessageContainer","MessageDateSeparator","MessageIncomingAvatar","MessageIncomingSenderName","MessageOutgoingStatus","MessageTime","UnknownMessage","UserMessage","MessageRenderer","_ref","currentUserId","channel","message","onPress","onLongPress","rest","variant","isOutgoing","isIncoming","variantContainerStyle","incoming","styles","chatIncoming","outgoing","chatOutgoing","groupWithPrev","groupWithNext","Boolean","enableMessageGrouping","prevMessage","nextMessage","features","reactionChildren","reactionEnabled","reactions","length","createElement","Message","messageComponent","pressableProps","style","msgContainer","disabled","delayLongPress","messageProps","isUserMessage","_ref2","pressed","_extends","onLongPressURL","onLongPressMentionedUser","isFileMessage","_ref3","isAdminMessage","_ref4","chatGroup","chatNonGroup","chatLastMessage","outgoingContainer","grouping","timeOutgoing","bubbleContainer","bubbleWrapper","timeIncoming","flexDirection","justifyContent","alignItems","marginLeft","marginRight","marginBottom","maxWidth","flexShrink","memo"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { Pressable, PressableProps, View } from 'react-native';\n\nimport { createStyleSheet } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdMessage } from '@sendbird/uikit-utils';\nimport {\n calcMessageGrouping,\n conditionChaining,\n isMyMessage,\n shouldRenderReaction,\n useIIFE,\n} from '@sendbird/uikit-utils';\n\nimport { DEFAULT_LONG_PRESS_DELAY } from '../../constants';\nimport type { GroupChannelProps } from '../../domain/groupChannel/types';\nimport { useSendbirdChat } from '../../hooks/useContext';\nimport { ReactionAddons } from '../ReactionAddons';\nimport AdminMessage from './AdminMessage';\nimport FileMessage from './FileMessage';\nimport MessageContainer from './MessageContainer';\nimport MessageDateSeparator from './MessageDateSeparator';\nimport MessageIncomingAvatar from './MessageIncomingAvatar';\nimport MessageIncomingSenderName from './MessageIncomingSenderName';\nimport MessageOutgoingStatus from './MessageOutgoingStatus';\nimport MessageTime from './MessageTime';\nimport UnknownMessage from './UnknownMessage';\nimport UserMessage from './UserMessage';\n\ntype MessageStyleVariant = 'outgoing' | 'incoming';\nexport type MessageRendererInterface<T = SendbirdMessage, AdditionalProps = unknown> = {\n message: T;\n prevMessage?: SendbirdMessage;\n nextMessage?: SendbirdMessage;\n variant: MessageStyleVariant;\n groupWithPrev: boolean;\n groupWithNext: boolean;\n pressed: boolean;\n children?: React.ReactElement | null;\n} & AdditionalProps;\n\nconst MessageRenderer: GroupChannelProps['Fragment']['renderMessage'] = ({\n currentUserId,\n channel,\n message,\n onPress,\n onLongPress,\n ...rest\n}) => {\n const variant: MessageStyleVariant = isMyMessage(message, currentUserId) ? 'outgoing' : 'incoming';\n const isOutgoing = variant === 'outgoing';\n const isIncoming = variant === 'incoming';\n const variantContainerStyle = { incoming: styles.chatIncoming, outgoing: styles.chatOutgoing }[variant];\n\n const { groupWithPrev, groupWithNext } = calcMessageGrouping(\n Boolean(rest.enableMessageGrouping),\n message,\n rest.prevMessage,\n rest.nextMessage,\n );\n\n const { features } = useSendbirdChat();\n\n const reactionChildren = useIIFE(() => {\n if (shouldRenderReaction(channel, features.reactionEnabled) && message.reactions && message.reactions.length > 0) {\n return <ReactionAddons.Message channel={channel} message={message} />;\n }\n return null;\n });\n\n const messageComponent = useIIFE(() => {\n const pressableProps: PressableProps = {\n style: styles.msgContainer,\n disabled: !onPress && !onLongPress,\n onPress,\n onLongPress,\n delayLongPress: DEFAULT_LONG_PRESS_DELAY,\n };\n const messageProps = { ...rest, variant, groupWithNext, groupWithPrev };\n\n if (message.isUserMessage()) {\n return (\n <Pressable {...pressableProps}>\n {({ pressed }) => (\n <UserMessage\n message={message}\n pressed={pressed}\n onLongPressURL={onLongPress}\n onLongPressMentionedUser={onLongPress}\n {...messageProps}\n >\n {reactionChildren}\n </UserMessage>\n )}\n </Pressable>\n );\n }\n\n if (message.isFileMessage()) {\n return (\n <Pressable {...pressableProps}>\n {({ pressed }) => (\n <FileMessage message={message} pressed={pressed} {...messageProps}>\n {reactionChildren}\n </FileMessage>\n )}\n </Pressable>\n );\n }\n\n if (message.isAdminMessage()) {\n return <AdminMessage message={message} pressed={false} {...messageProps} />;\n }\n\n return (\n <Pressable {...pressableProps}>\n {({ pressed }) => <UnknownMessage message={message} pressed={pressed} {...messageProps} />}\n </Pressable>\n );\n });\n\n return (\n <MessageContainer>\n <MessageDateSeparator message={message} prevMessage={rest.prevMessage} />\n {message.isAdminMessage() && messageComponent}\n {!message.isAdminMessage() && (\n <View\n style={[\n variantContainerStyle,\n conditionChaining(\n [groupWithNext, Boolean(rest.nextMessage)],\n [styles.chatGroup, styles.chatNonGroup, styles.chatLastMessage],\n ),\n ]}\n >\n {isOutgoing && (\n <View style={styles.outgoingContainer}>\n <MessageOutgoingStatus channel={channel} message={message} />\n <MessageTime message={message} grouping={groupWithNext} style={styles.timeOutgoing} />\n </View>\n )}\n {isIncoming && <MessageIncomingAvatar message={message} grouping={groupWithNext} />}\n <View style={styles.bubbleContainer}>\n {isIncoming && <MessageIncomingSenderName message={message} grouping={groupWithPrev} />}\n <View style={styles.bubbleWrapper}>\n {messageComponent}\n {isIncoming && <MessageTime message={message} grouping={groupWithNext} style={styles.timeIncoming} />}\n </View>\n </View>\n </View>\n )}\n </MessageContainer>\n );\n};\n\nconst styles = createStyleSheet({\n chatIncoming: {\n flexDirection: 'row',\n justifyContent: 'flex-start',\n alignItems: 'flex-end',\n },\n chatOutgoing: {\n flexDirection: 'row',\n justifyContent: 'flex-end',\n alignItems: 'flex-end',\n },\n timeIncoming: {\n marginLeft: 4,\n },\n timeOutgoing: {\n marginRight: 4,\n },\n chatGroup: {\n marginBottom: 2,\n },\n chatNonGroup: {\n marginBottom: 16,\n },\n chatLastMessage: {\n marginBottom: 16,\n },\n msgContainer: {\n maxWidth: 240,\n },\n bubbleContainer: {\n flexShrink: 1,\n },\n bubbleWrapper: {\n flexDirection: 'row',\n alignItems: 'flex-end',\n },\n outgoingContainer: {\n flexDirection: 'row',\n alignItems: 'flex-end',\n justifyContent: 'center',\n },\n});\n\nexport default React.memo(MessageRenderer);\n"],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import type { SendbirdAdminMessage } from '@sendbird/uikit-utils';
2
- import type { MessageRendererInterface } from '../index';
3
- export type AdminMessageProps = MessageRendererInterface<SendbirdAdminMessage>;
4
- declare const AdminMessage: ({ message, nextMessage }: AdminMessageProps) => JSX.Element;
5
- export default AdminMessage;
@@ -1,6 +0,0 @@
1
- import type { FileMessageProps } from './index';
2
- type Props = FileMessageProps & {
3
- type: 'image' | 'audio' | 'video' | 'file';
4
- };
5
- declare const BaseFileMessage: ({ message, variant, pressed, type, children }: Props) => JSX.Element;
6
- export default BaseFileMessage;
@@ -1,3 +0,0 @@
1
- import type { FileMessageProps } from './index';
2
- declare const ImageFileMessage: ({ message, children, variant }: FileMessageProps) => JSX.Element;
3
- export default ImageFileMessage;
@@ -1,3 +0,0 @@
1
- import type { FileMessageProps } from './index';
2
- declare const VideoFileMessage: ({ message, variant, children }: FileMessageProps) => JSX.Element;
3
- export default VideoFileMessage;
@@ -1,15 +0,0 @@
1
- import React from 'react';
2
- import { SendbirdFileMessage } from '@sendbird/uikit-utils';
3
- import type { MessageRendererInterface } from '../index';
4
- export type FileMessageProps = MessageRendererInterface<SendbirdFileMessage>;
5
- declare const _default: React.MemoExoticComponent<(props: {
6
- message: import("@sendbird/chat/message").FileMessage;
7
- prevMessage?: import("@sendbird/uikit-utils").SendbirdMessage | undefined;
8
- nextMessage?: import("@sendbird/uikit-utils").SendbirdMessage | undefined;
9
- variant: "incoming" | "outgoing";
10
- groupWithPrev: boolean;
11
- groupWithNext: boolean;
12
- pressed: boolean;
13
- children?: React.ReactElement<any, string | React.JSXElementConstructor<any>> | null | undefined;
14
- }) => JSX.Element>;
15
- export default _default;
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- declare const MessageContainer: ({ children }: React.PropsWithChildren) => JSX.Element;
3
- export default MessageContainer;
@@ -1,7 +0,0 @@
1
- import type { SendbirdMessage } from '@sendbird/uikit-utils';
2
- type Props = {
3
- message: SendbirdMessage;
4
- prevMessage?: SendbirdMessage;
5
- };
6
- declare const MessageDateSeparator: ({ message, prevMessage }: Props) => JSX.Element | null;
7
- export default MessageDateSeparator;
@@ -1,7 +0,0 @@
1
- import type { SendbirdMessage } from '@sendbird/uikit-utils';
2
- type Props = {
3
- message: SendbirdMessage;
4
- grouping: boolean;
5
- };
6
- declare const MessageIncomingAvatar: ({ message, grouping }: Props) => JSX.Element;
7
- export default MessageIncomingAvatar;
@@ -1,7 +0,0 @@
1
- import type { SendbirdMessage } from '@sendbird/uikit-utils';
2
- type Props = {
3
- message: SendbirdMessage;
4
- grouping: boolean;
5
- };
6
- declare const MessageIncomingSenderName: ({ message, grouping }: Props) => JSX.Element | null;
7
- export default MessageIncomingSenderName;
@@ -1,9 +0,0 @@
1
- import { StyleProp, ViewStyle } from 'react-native';
2
- import type { SendbirdMessage } from '@sendbird/uikit-utils';
3
- type Props = {
4
- message: SendbirdMessage;
5
- grouping: boolean;
6
- style?: StyleProp<ViewStyle>;
7
- };
8
- declare const MessageTime: ({ message, grouping, style }: Props) => JSX.Element | null;
9
- export default MessageTime;
@@ -1,4 +0,0 @@
1
- import type { MessageRendererInterface } from '../index';
2
- export type UnknownMessageProps = MessageRendererInterface;
3
- declare const UnknownMessage: ({ message, variant, pressed }: UnknownMessageProps) => JSX.Element;
4
- export default UnknownMessage;
@@ -1,3 +0,0 @@
1
- import type { UserMessageProps } from './index';
2
- declare const BaseUserMessage: ({ message, variant, pressed, children, onLongPressMentionedUser, onLongPressURL, }: UserMessageProps) => JSX.Element;
3
- export default BaseUserMessage;
@@ -1,7 +0,0 @@
1
- import type { OGMetaData } from '@sendbird/chat/message';
2
- import type { UserMessageProps } from './index';
3
- type Props = UserMessageProps & {
4
- ogMetaData: OGMetaData;
5
- };
6
- declare const OpenGraphUserMessage: ({ message, variant, pressed, ogMetaData, children, onLongPressMentionedUser, onLongPressURL, }: Props) => JSX.Element;
7
- export default OpenGraphUserMessage;
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- import type { SendbirdUserMessage } from '@sendbird/uikit-utils';
3
- import type { MessageRendererInterface } from '../index';
4
- export type UserMessageProps = MessageRendererInterface<SendbirdUserMessage, {
5
- onLongPressMentionedUser?: () => void;
6
- onLongPressURL?: () => void;
7
- }>;
8
- declare const _default: React.MemoExoticComponent<(props: UserMessageProps) => JSX.Element>;
9
- export default _default;
@@ -1,40 +0,0 @@
1
- import React from 'react';
2
- import { StyleSheet, View } from 'react-native';
3
-
4
- import { Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';
5
- import type { SendbirdAdminMessage } from '@sendbird/uikit-utils';
6
-
7
- import type { MessageRendererInterface } from '../index';
8
-
9
- export type AdminMessageProps = MessageRendererInterface<SendbirdAdminMessage>;
10
- const AdminMessage = ({ message, nextMessage }: AdminMessageProps) => {
11
- const { colors } = useUIKitTheme();
12
-
13
- const isNextAdmin = nextMessage?.isAdminMessage();
14
- return (
15
- <View style={StyleSheet.flatten([styles.container, isNextAdmin ? styles.nextAdminType : styles.next])}>
16
- <Text caption2 color={colors.onBackground02} style={styles.text}>
17
- {message.message}
18
- </Text>
19
- </View>
20
- );
21
- };
22
-
23
- const styles = createStyleSheet({
24
- container: {
25
- width: 300,
26
- alignSelf: 'center',
27
- alignItems: 'center',
28
- },
29
- nextAdminType: {
30
- marginBottom: 8,
31
- },
32
- next: {
33
- marginBottom: 16,
34
- },
35
- text: {
36
- textAlign: 'center',
37
- },
38
- });
39
-
40
- export default AdminMessage;
@@ -1,51 +0,0 @@
1
- import React from 'react';
2
- import { View } from 'react-native';
3
-
4
- import { Icon, Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';
5
-
6
- import { useLocalization } from '../../../hooks/useContext';
7
- import type { FileMessageProps } from './index';
8
-
9
- const iconMapper = { audio: 'file-audio', image: 'photo', video: 'play', file: 'file-document' } as const;
10
-
11
- type Props = FileMessageProps & {
12
- type: 'image' | 'audio' | 'video' | 'file';
13
- };
14
- const BaseFileMessage = ({ message, variant, pressed, type, children }: Props) => {
15
- const { STRINGS } = useLocalization();
16
- const { colors } = useUIKitTheme();
17
- const color = colors.ui.groupChannelMessage[variant][pressed ? 'pressed' : 'enabled'];
18
- return (
19
- <View style={[styles.bubbleContainer, { backgroundColor: color.background }]}>
20
- <View style={styles.container}>
21
- <Icon
22
- icon={iconMapper[type]}
23
- size={24}
24
- containerStyle={{ backgroundColor: colors.background, padding: 2, borderRadius: 8, marginRight: 8 }}
25
- />
26
- <Text body3 ellipsizeMode={'middle'} numberOfLines={1} color={color.textMsg} style={styles.name}>
27
- {STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_FILE_TITLE(message)}
28
- </Text>
29
- </View>
30
- {children}
31
- </View>
32
- );
33
- };
34
-
35
- const styles = createStyleSheet({
36
- bubbleContainer: {
37
- borderRadius: 16,
38
- overflow: 'hidden',
39
- },
40
- container: {
41
- flexDirection: 'row',
42
- alignItems: 'center',
43
- paddingHorizontal: 12,
44
- paddingVertical: 6,
45
- },
46
- name: {
47
- flexShrink: 1,
48
- },
49
- });
50
-
51
- export default BaseFileMessage;
@@ -1,98 +0,0 @@
1
- import React, { useEffect, useRef, useState } from 'react';
2
- import { Platform, StyleSheet, View } from 'react-native';
3
-
4
- import { Icon, Image, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';
5
- import { getAvailableUriFromFileMessage, useForceUpdate } from '@sendbird/uikit-utils';
6
-
7
- import type { FileMessageProps } from './index';
8
-
9
- const useRetry = (hasError: boolean, retryCount = 5) => {
10
- if (Platform.OS === 'android') return '';
11
-
12
- const forceUpdate = useForceUpdate();
13
- const retryCountRef = useRef(1);
14
- const retryTimeoutRef = useRef<NodeJS.Timeout>();
15
-
16
- useEffect(() => {
17
- if (hasError) {
18
- const reloadReservation = () => {
19
- if (retryCountRef.current < retryCount) {
20
- retryTimeoutRef.current = setTimeout(() => {
21
- retryCountRef.current++;
22
- reloadReservation();
23
- forceUpdate();
24
- }, retryCountRef.current * 5000);
25
- }
26
- };
27
-
28
- return reloadReservation();
29
- } else {
30
- return clearTimeout(retryTimeoutRef.current);
31
- }
32
- }, [hasError]);
33
-
34
- return retryCountRef.current;
35
- };
36
-
37
- const ImageFileMessage = ({ message, children, variant }: FileMessageProps) => {
38
- const { colors } = useUIKitTheme();
39
- const [imageNotFound, setImageNotFound] = useState(false);
40
-
41
- const fileUrl = getAvailableUriFromFileMessage(message);
42
- const style = [styles.image, { backgroundColor: colors.onBackground04 }];
43
-
44
- const key = useRetry(imageNotFound);
45
-
46
- return (
47
- <View
48
- style={[
49
- styles.bubbleContainer,
50
- {
51
- backgroundColor: imageNotFound
52
- ? colors.onBackground04
53
- : colors.ui.groupChannelMessage[variant].enabled.background,
54
- },
55
- ]}
56
- >
57
- <View style={style}>
58
- <Image
59
- key={key}
60
- source={{ uri: fileUrl }}
61
- style={[StyleSheet.absoluteFill, imageNotFound && styles.hide]}
62
- resizeMode={'cover'}
63
- resizeMethod={'resize'}
64
- onError={() => setImageNotFound(true)}
65
- onLoad={() => setImageNotFound(false)}
66
- />
67
- {imageNotFound && (
68
- <Icon
69
- containerStyle={StyleSheet.absoluteFill}
70
- icon={'thumbnail-none'}
71
- size={48}
72
- color={colors.onBackground02}
73
- />
74
- )}
75
- </View>
76
- {children}
77
- </View>
78
- );
79
- };
80
-
81
- const styles = createStyleSheet({
82
- bubbleContainer: {
83
- borderRadius: 16,
84
- overflow: 'hidden',
85
- },
86
- image: {
87
- width: 240,
88
- maxWidth: 240,
89
- height: 160,
90
- borderRadius: 16,
91
- overflow: 'hidden',
92
- },
93
- hide: {
94
- display: 'none',
95
- },
96
- });
97
-
98
- export default ImageFileMessage;
@@ -1,113 +0,0 @@
1
- import React, { useEffect, useRef, useState } from 'react';
2
- import { View } from 'react-native';
3
-
4
- import { Icon, Image, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';
5
- import { getAvailableUriFromFileMessage } from '@sendbird/uikit-utils';
6
-
7
- import { usePlatformService } from '../../../hooks/useContext';
8
- import type { FileMessageProps } from './index';
9
-
10
- const useRetry = (videoFileUrl: string, retryCount = 5) => {
11
- const [state, setState] = useState({ thumbnail: null as null | string, loading: true });
12
- const retryCountRef = useRef(0);
13
- const retryTimeoutRef = useRef<NodeJS.Timeout>();
14
-
15
- const { mediaService } = usePlatformService();
16
-
17
- const fetchThumbnail = () => {
18
- return mediaService.getVideoThumbnail({ url: videoFileUrl, timeMills: 1000 }).then((result) => {
19
- setState({ loading: false, thumbnail: result?.path ?? null });
20
- });
21
- };
22
-
23
- useEffect(() => {
24
- if (!state.thumbnail) {
25
- const reloadReservation = () => {
26
- if (retryCountRef.current < retryCount) {
27
- retryTimeoutRef.current = setTimeout(() => {
28
- retryCountRef.current++;
29
- reloadReservation();
30
- fetchThumbnail();
31
- }, retryCountRef.current * 5000);
32
- }
33
- };
34
-
35
- return reloadReservation();
36
- } else {
37
- return clearTimeout(retryTimeoutRef.current);
38
- }
39
- }, [state.thumbnail]);
40
-
41
- return state;
42
- };
43
-
44
- const VideoFileMessage = ({ message, variant, children }: FileMessageProps) => {
45
- const { colors } = useUIKitTheme();
46
-
47
- const fileUrl = getAvailableUriFromFileMessage(message);
48
- const style = [styles.video, { backgroundColor: colors.onBackground04 }];
49
-
50
- const { loading, thumbnail } = useRetry(fileUrl);
51
-
52
- if (loading) {
53
- return (
54
- <View
55
- style={[styles.bubbleContainer, { backgroundColor: colors.ui.groupChannelMessage[variant].enabled.background }]}
56
- >
57
- <View style={[styles.bubbleContainer, styles.bubbleInnerContainer]}>
58
- <View style={style} />
59
- <PlayIcon />
60
- </View>
61
- {children}
62
- </View>
63
- );
64
- }
65
-
66
- return (
67
- <View
68
- style={[styles.bubbleContainer, { backgroundColor: colors.ui.groupChannelMessage[variant].enabled.background }]}
69
- >
70
- <View style={[styles.bubbleContainer, styles.bubbleInnerContainer]}>
71
- <Image source={{ uri: thumbnail || fileUrl }} style={style} resizeMode={'cover'} resizeMethod={'resize'} />
72
- <PlayIcon />
73
- </View>
74
- {children}
75
- </View>
76
- );
77
- };
78
-
79
- const PlayIcon = () => {
80
- const { colors } = useUIKitTheme();
81
-
82
- return (
83
- <Icon
84
- icon={'play'}
85
- size={28}
86
- color={colors.onBackground02}
87
- containerStyle={[styles.playIcon, { backgroundColor: colors.onBackgroundReverse01 }]}
88
- />
89
- );
90
- };
91
-
92
- const styles = createStyleSheet({
93
- bubbleContainer: {
94
- borderRadius: 16,
95
- overflow: 'hidden',
96
- },
97
- bubbleInnerContainer: {
98
- alignItems: 'center',
99
- justifyContent: 'center',
100
- },
101
- video: {
102
- width: 240,
103
- maxWidth: 240,
104
- height: 160,
105
- },
106
- playIcon: {
107
- position: 'absolute',
108
- padding: 10,
109
- borderRadius: 50,
110
- },
111
- });
112
-
113
- export default VideoFileMessage;
@@ -1,20 +0,0 @@
1
- import React from 'react';
2
-
3
- import { SendbirdFileMessage, getFileExtension, getFileType } from '@sendbird/uikit-utils';
4
-
5
- import type { MessageRendererInterface } from '../index';
6
- import BaseFileMessage from './BaseFileMessage';
7
- import ImageFileMessage from './ImageFileMessage';
8
- import VideoFileMessage from './VideoFileMessage';
9
-
10
- export type FileMessageProps = MessageRendererInterface<SendbirdFileMessage>;
11
- const FileMessage = (props: FileMessageProps) => {
12
- const fileType = getFileType(props.message.type || getFileExtension(props.message.name));
13
-
14
- if (fileType === 'image') return <ImageFileMessage {...props} />;
15
- if (fileType === 'video') return <VideoFileMessage {...props} />;
16
-
17
- return <BaseFileMessage {...props} type={fileType} />;
18
- };
19
-
20
- export default React.memo(FileMessage);
@@ -1,17 +0,0 @@
1
- import React from 'react';
2
- import { View } from 'react-native';
3
-
4
- import { createStyleSheet } from '@sendbird/uikit-react-native-foundation';
5
-
6
- const MessageContainer = ({ children }: React.PropsWithChildren) => {
7
- return <View style={styles.container}>{children}</View>;
8
- };
9
-
10
- const styles = createStyleSheet({
11
- container: {
12
- flexDirection: 'column',
13
- paddingHorizontal: 16,
14
- },
15
- });
16
-
17
- export default MessageContainer;