@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,34 +0,0 @@
1
- import React from 'react';
2
- import { Pressable, View } from 'react-native';
3
-
4
- import { Avatar, createStyleSheet } from '@sendbird/uikit-react-native-foundation';
5
- import type { SendbirdMessage } from '@sendbird/uikit-utils';
6
-
7
- import { useUserProfile } from '../../hooks/useContext';
8
-
9
- type Props = {
10
- message: SendbirdMessage;
11
- grouping: boolean;
12
- };
13
- const MessageIncomingAvatar = ({ message, grouping }: Props) => {
14
- const { show } = useUserProfile();
15
- if (grouping) return <View style={styles.avatar} />;
16
- return (
17
- <View style={styles.avatar}>
18
- {(message.isFileMessage() || message.isUserMessage()) && (
19
- <Pressable onPress={() => show(message.sender)}>
20
- <Avatar size={26} uri={message.sender?.profileUrl} />
21
- </Pressable>
22
- )}
23
- </View>
24
- );
25
- };
26
-
27
- const styles = createStyleSheet({
28
- avatar: {
29
- width: 26,
30
- marginRight: 12,
31
- },
32
- });
33
-
34
- export default MessageIncomingAvatar;
@@ -1,36 +0,0 @@
1
- import React from 'react';
2
- import { View } from 'react-native';
3
-
4
- import { Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';
5
- import type { SendbirdMessage } from '@sendbird/uikit-utils';
6
-
7
- import { useLocalization } from '../../hooks/useContext';
8
-
9
- type Props = {
10
- message: SendbirdMessage;
11
- grouping: boolean;
12
- };
13
- const MessageIncomingSenderName = ({ message, grouping }: Props) => {
14
- const { colors } = useUIKitTheme();
15
- const { STRINGS } = useLocalization();
16
- if (grouping) return null;
17
-
18
- return (
19
- <View style={styles.sender}>
20
- {(message.isFileMessage() || message.isUserMessage()) && (
21
- <Text caption1 color={colors.ui.groupChannelMessage.incoming.enabled.textSenderName} numberOfLines={1}>
22
- {message.sender?.nickname || STRINGS.LABELS.USER_NO_NAME}
23
- </Text>
24
- )}
25
- </View>
26
- );
27
- };
28
-
29
- const styles = createStyleSheet({
30
- sender: {
31
- marginLeft: 12,
32
- marginBottom: 4,
33
- },
34
- });
35
-
36
- export default MessageIncomingSenderName;
@@ -1,28 +0,0 @@
1
- import React from 'react';
2
- import { StyleProp, View, ViewStyle } from 'react-native';
3
-
4
- import { Text, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';
5
- import type { SendbirdMessage } from '@sendbird/uikit-utils';
6
-
7
- import { useLocalization } from '../../hooks/useContext';
8
-
9
- type Props = {
10
- message: SendbirdMessage;
11
- grouping: boolean;
12
- style?: StyleProp<ViewStyle>;
13
- };
14
- const MessageTime = ({ message, grouping, style }: Props) => {
15
- const { STRINGS } = useLocalization();
16
- const { colors } = useUIKitTheme();
17
- if (grouping) return null;
18
-
19
- return (
20
- <View style={style}>
21
- <Text caption4 color={colors.ui.groupChannelMessage.incoming.enabled.textTime}>
22
- {STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_TIME(message)}
23
- </Text>
24
- </View>
25
- );
26
- };
27
-
28
- export default MessageTime;
@@ -1,34 +0,0 @@
1
- import React from 'react';
2
- import { View } from 'react-native';
3
-
4
- import { Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';
5
-
6
- import { useLocalization } from '../../../hooks/useContext';
7
- import type { MessageRendererInterface } from '../index';
8
-
9
- export type UnknownMessageProps = MessageRendererInterface;
10
- const UnknownMessage = ({ message, variant, pressed }: UnknownMessageProps) => {
11
- const { STRINGS } = useLocalization();
12
- const { colors } = useUIKitTheme();
13
- const color = colors.ui.groupChannelMessage[variant][pressed ? 'pressed' : 'enabled'];
14
- return (
15
- <View style={[styles.container, { backgroundColor: color.background }]}>
16
- <Text body3 color={colors.onBackground01}>
17
- {STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_TITLE(message)}
18
- </Text>
19
- <Text body3 color={colors.onBackground02}>
20
- {STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_DESC(message)}
21
- </Text>
22
- </View>
23
- );
24
- };
25
-
26
- const styles = createStyleSheet({
27
- container: {
28
- paddingHorizontal: 12,
29
- paddingVertical: 6,
30
- borderRadius: 16,
31
- },
32
- });
33
-
34
- export default UnknownMessage;
@@ -1,102 +0,0 @@
1
- import React from 'react';
2
- import { View } from 'react-native';
3
-
4
- import { RegexText, Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';
5
- import { urlRegexStrict } from '@sendbird/uikit-utils';
6
-
7
- import { useLocalization, useSendbirdChat, useUserProfile } from '../../../hooks/useContext';
8
- import SBUUtils from '../../../libs/SBUUtils';
9
- import type { UserMessageProps } from './index';
10
-
11
- const BaseUserMessage = ({
12
- message,
13
- variant,
14
- pressed,
15
- children,
16
- onLongPressMentionedUser,
17
- onLongPressURL,
18
- }: UserMessageProps) => {
19
- const { mentionManager, currentUser } = useSendbirdChat();
20
- const { show } = useUserProfile();
21
- const { STRINGS } = useLocalization();
22
- const { colors, palette } = useUIKitTheme();
23
-
24
- const color = colors.ui.groupChannelMessage[variant][pressed ? 'pressed' : 'enabled'];
25
-
26
- return (
27
- <View style={[styles.container, { backgroundColor: color.background }]}>
28
- <View style={styles.wrapper}>
29
- <Text body3 color={color.textMsg}>
30
- <RegexText
31
- body3
32
- color={color.textMsg}
33
- patterns={[
34
- {
35
- regex: mentionManager.templateRegex,
36
- replacer({ match, groups, parentProps, index, keyPrefix }) {
37
- const user = message.mentionedUsers?.find((it) => it.userId === groups[2]);
38
- if (user) {
39
- return (
40
- <Text
41
- {...parentProps}
42
- key={`${keyPrefix}-${index}`}
43
- onPress={() => show(user)}
44
- onLongPress={onLongPressMentionedUser}
45
- style={[
46
- parentProps?.style,
47
- { fontWeight: 'bold' },
48
- user.userId === currentUser?.userId && { backgroundColor: palette.highlight },
49
- ]}
50
- >
51
- {`${mentionManager.asMentionedMessageText(user)}`}
52
- </Text>
53
- );
54
- }
55
- return match;
56
- },
57
- },
58
- {
59
- regex: urlRegexStrict,
60
- replacer({ match, parentProps, index, keyPrefix }) {
61
- return (
62
- <Text
63
- {...parentProps}
64
- key={`${keyPrefix}-${index}`}
65
- onPress={() => SBUUtils.openURL(match)}
66
- onLongPress={onLongPressURL}
67
- style={[parentProps?.style, { textDecorationLine: 'underline' }]}
68
- >
69
- {match}
70
- </Text>
71
- );
72
- },
73
- },
74
- ]}
75
- >
76
- {mentionManager.shouldUseMentionedMessageTemplate(message)
77
- ? message.mentionedMessageTemplate
78
- : message.message}
79
- </RegexText>
80
- {Boolean(message.updatedAt) && (
81
- <Text body3 color={color.textEdited}>
82
- {STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_EDITED_POSTFIX}
83
- </Text>
84
- )}
85
- </Text>
86
- </View>
87
- {children}
88
- </View>
89
- );
90
- };
91
- const styles = createStyleSheet({
92
- container: {
93
- borderRadius: 16,
94
- overflow: 'hidden',
95
- },
96
- wrapper: {
97
- paddingHorizontal: 12,
98
- paddingVertical: 6,
99
- },
100
- });
101
-
102
- export default BaseUserMessage;
@@ -1,188 +0,0 @@
1
- import React, { useState } from 'react';
2
- import { TouchableOpacity, View } from 'react-native';
3
-
4
- import type { OGMetaData } from '@sendbird/chat/message';
5
- import { Icon, Image, RegexText, Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';
6
- import { conditionChaining, urlRegexRough } from '@sendbird/uikit-utils';
7
-
8
- import { useLocalization, useSendbirdChat, useUserProfile } from '../../../hooks/useContext';
9
- import SBUUtils from '../../../libs/SBUUtils';
10
- import type { UserMessageProps } from './index';
11
-
12
- type Props = UserMessageProps & {
13
- ogMetaData: OGMetaData;
14
- };
15
-
16
- const OpenGraphUserMessage = ({
17
- message,
18
- variant,
19
- pressed,
20
- ogMetaData,
21
- children,
22
- onLongPressMentionedUser,
23
- onLongPressURL,
24
- }: Props) => {
25
- const { mentionManager, currentUser } = useSendbirdChat();
26
- const { STRINGS } = useLocalization();
27
- const { show } = useUserProfile();
28
- const { colors, select, palette } = useUIKitTheme();
29
-
30
- const [imageNotFound, setImageNotFound] = useState(false);
31
- const color = colors.ui.groupChannelMessage[variant][pressed ? 'pressed' : 'enabled'];
32
-
33
- const containerBackground = select({ dark: palette.background400, light: palette.background100 });
34
-
35
- return (
36
- <View style={[styles.bubbleContainer, { backgroundColor: containerBackground }]}>
37
- <View style={[styles.container, styles.bubbleContainer, { backgroundColor: color.background }]}>
38
- <View style={styles.messageContainer}>
39
- <Text body3 color={color.textMsg}>
40
- <RegexText
41
- body3
42
- color={color.textMsg}
43
- patterns={[
44
- {
45
- regex: mentionManager.templateRegex,
46
- replacer({ match, groups, parentProps, keyPrefix, index }) {
47
- const user = message.mentionedUsers?.find((it) => it.userId === groups[2]);
48
- if (user) {
49
- const isCurrentUser = user.userId === currentUser?.userId;
50
- return (
51
- <Text
52
- {...parentProps}
53
- key={`${keyPrefix}-${index}`}
54
- onPress={() => show(user)}
55
- onLongPress={onLongPressMentionedUser}
56
- style={[
57
- parentProps?.style,
58
- styles.mentionedText,
59
- isCurrentUser && { backgroundColor: palette.highlight },
60
- ]}
61
- >
62
- {`${mentionManager.asMentionedMessageText(user)}`}
63
- </Text>
64
- );
65
- }
66
- return match;
67
- },
68
- },
69
- {
70
- regex: urlRegexRough,
71
- replacer({ match, parentProps, keyPrefix, index }) {
72
- return (
73
- <Text
74
- {...parentProps}
75
- key={`${keyPrefix}-${index}`}
76
- onPress={() => SBUUtils.openURL(match)}
77
- onLongPress={onLongPressURL}
78
- style={[parentProps?.style, styles.urlText]}
79
- >
80
- {match}
81
- </Text>
82
- );
83
- },
84
- },
85
- ]}
86
- >
87
- {mentionManager.shouldUseMentionedMessageTemplate(message)
88
- ? message.mentionedMessageTemplate
89
- : message.message}
90
- </RegexText>
91
- {Boolean(message.updatedAt) && (
92
- <Text body3 color={color.textEdited}>
93
- {STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_EDITED_POSTFIX}
94
- </Text>
95
- )}
96
- </Text>
97
- </View>
98
- <TouchableOpacity
99
- style={{ backgroundColor: select({ dark: palette.background500, light: palette.background200 }) }}
100
- activeOpacity={0.85}
101
- onPress={() => SBUUtils.openURL(ogMetaData.url)}
102
- >
103
- <View
104
- style={[
105
- styles.ogImageContainer,
106
- { backgroundColor: select({ dark: palette.background500, light: palette.background200 }) },
107
- ]}
108
- >
109
- {conditionChaining(
110
- [imageNotFound],
111
- [
112
- <Icon
113
- containerStyle={styles.ogImage}
114
- icon={'thumbnail-none'}
115
- size={48}
116
- color={colors.onBackground02}
117
- />,
118
- <Image
119
- source={{ uri: ogMetaData.defaultImage?.url }}
120
- style={styles.ogImage}
121
- resizeMode={'cover'}
122
- onError={() => setImageNotFound(true)}
123
- />,
124
- ],
125
- )}
126
- </View>
127
- <View style={[styles.ogContainer, { backgroundColor: containerBackground }]}>
128
- <Text numberOfLines={3} body2 color={colors.onBackground01} style={styles.ogTitle}>
129
- {ogMetaData.title}
130
- </Text>
131
- {Boolean(ogMetaData.description) && (
132
- <Text numberOfLines={1} caption2 color={colors.onBackground01} style={styles.ogDesc}>
133
- {ogMetaData.description}
134
- </Text>
135
- )}
136
- <Text numberOfLines={1} caption2 color={colors.onBackground02}>
137
- {ogMetaData.url}
138
- </Text>
139
- </View>
140
- </TouchableOpacity>
141
- </View>
142
- {children}
143
- </View>
144
- );
145
- };
146
-
147
- const styles = createStyleSheet({
148
- bubbleContainer: {
149
- borderRadius: 16,
150
- overflow: 'hidden',
151
- },
152
- container: {
153
- width: 240,
154
- maxWidth: 240,
155
- },
156
- messageContainer: {
157
- paddingVertical: 6,
158
- paddingHorizontal: 12,
159
- },
160
- ogContainer: {
161
- paddingHorizontal: 12,
162
- paddingTop: 8,
163
- paddingBottom: 12,
164
- },
165
- ogImageContainer: {
166
- flex: 1,
167
- height: 136,
168
- },
169
- ogImage: {
170
- width: '100%',
171
- height: '100%',
172
- },
173
- ogTitle: {
174
- marginBottom: 4,
175
- },
176
- ogDesc: {
177
- lineHeight: 14,
178
- marginBottom: 8,
179
- },
180
- mentionedText: {
181
- fontWeight: 'bold',
182
- },
183
- urlText: {
184
- textDecorationLine: 'underline',
185
- },
186
- });
187
-
188
- export default OpenGraphUserMessage;
@@ -1,24 +0,0 @@
1
- import React from 'react';
2
-
3
- import type { SendbirdUserMessage } from '@sendbird/uikit-utils';
4
-
5
- import type { MessageRendererInterface } from '../index';
6
- import BaseUserMessage from './BaseUserMessage';
7
- import OpenGraphUserMessage from './OpenGraphUserMessage';
8
-
9
- export type UserMessageProps = MessageRendererInterface<
10
- SendbirdUserMessage,
11
- {
12
- onLongPressMentionedUser?: () => void;
13
- onLongPressURL?: () => void;
14
- }
15
- >;
16
-
17
- const UserMessage = (props: UserMessageProps) => {
18
- if (props.message.ogMetaData) {
19
- return <OpenGraphUserMessage {...props} ogMetaData={props.message.ogMetaData} />;
20
- }
21
- return <BaseUserMessage {...props} />;
22
- };
23
-
24
- export default React.memo(UserMessage);
@@ -1,198 +0,0 @@
1
- import React from 'react';
2
- import { Pressable, PressableProps, View } from 'react-native';
3
-
4
- import { createStyleSheet } from '@sendbird/uikit-react-native-foundation';
5
- import type { SendbirdMessage } from '@sendbird/uikit-utils';
6
- import {
7
- calcMessageGrouping,
8
- conditionChaining,
9
- isMyMessage,
10
- shouldRenderReaction,
11
- useIIFE,
12
- } from '@sendbird/uikit-utils';
13
-
14
- import { DEFAULT_LONG_PRESS_DELAY } from '../../constants';
15
- import type { GroupChannelProps } from '../../domain/groupChannel/types';
16
- import { useSendbirdChat } from '../../hooks/useContext';
17
- import { ReactionAddons } from '../ReactionAddons';
18
- import AdminMessage from './AdminMessage';
19
- import FileMessage from './FileMessage';
20
- import MessageContainer from './MessageContainer';
21
- import MessageDateSeparator from './MessageDateSeparator';
22
- import MessageIncomingAvatar from './MessageIncomingAvatar';
23
- import MessageIncomingSenderName from './MessageIncomingSenderName';
24
- import MessageOutgoingStatus from './MessageOutgoingStatus';
25
- import MessageTime from './MessageTime';
26
- import UnknownMessage from './UnknownMessage';
27
- import UserMessage from './UserMessage';
28
-
29
- type MessageStyleVariant = 'outgoing' | 'incoming';
30
- export type MessageRendererInterface<T = SendbirdMessage, AdditionalProps = unknown> = {
31
- message: T;
32
- prevMessage?: SendbirdMessage;
33
- nextMessage?: SendbirdMessage;
34
- variant: MessageStyleVariant;
35
- groupWithPrev: boolean;
36
- groupWithNext: boolean;
37
- pressed: boolean;
38
- children?: React.ReactElement | null;
39
- } & AdditionalProps;
40
-
41
- const MessageRenderer: GroupChannelProps['Fragment']['renderMessage'] = ({
42
- currentUserId,
43
- channel,
44
- message,
45
- onPress,
46
- onLongPress,
47
- ...rest
48
- }) => {
49
- const variant: MessageStyleVariant = isMyMessage(message, currentUserId) ? 'outgoing' : 'incoming';
50
- const isOutgoing = variant === 'outgoing';
51
- const isIncoming = variant === 'incoming';
52
- const variantContainerStyle = { incoming: styles.chatIncoming, outgoing: styles.chatOutgoing }[variant];
53
-
54
- const { groupWithPrev, groupWithNext } = calcMessageGrouping(
55
- Boolean(rest.enableMessageGrouping),
56
- message,
57
- rest.prevMessage,
58
- rest.nextMessage,
59
- );
60
-
61
- const { features } = useSendbirdChat();
62
-
63
- const reactionChildren = useIIFE(() => {
64
- if (shouldRenderReaction(channel, features.reactionEnabled) && message.reactions && message.reactions.length > 0) {
65
- return <ReactionAddons.Message channel={channel} message={message} />;
66
- }
67
- return null;
68
- });
69
-
70
- const messageComponent = useIIFE(() => {
71
- const pressableProps: PressableProps = {
72
- style: styles.msgContainer,
73
- disabled: !onPress && !onLongPress,
74
- onPress,
75
- onLongPress,
76
- delayLongPress: DEFAULT_LONG_PRESS_DELAY,
77
- };
78
- const messageProps = { ...rest, variant, groupWithNext, groupWithPrev };
79
-
80
- if (message.isUserMessage()) {
81
- return (
82
- <Pressable {...pressableProps}>
83
- {({ pressed }) => (
84
- <UserMessage
85
- message={message}
86
- pressed={pressed}
87
- onLongPressURL={onLongPress}
88
- onLongPressMentionedUser={onLongPress}
89
- {...messageProps}
90
- >
91
- {reactionChildren}
92
- </UserMessage>
93
- )}
94
- </Pressable>
95
- );
96
- }
97
-
98
- if (message.isFileMessage()) {
99
- return (
100
- <Pressable {...pressableProps}>
101
- {({ pressed }) => (
102
- <FileMessage message={message} pressed={pressed} {...messageProps}>
103
- {reactionChildren}
104
- </FileMessage>
105
- )}
106
- </Pressable>
107
- );
108
- }
109
-
110
- if (message.isAdminMessage()) {
111
- return <AdminMessage message={message} pressed={false} {...messageProps} />;
112
- }
113
-
114
- return (
115
- <Pressable {...pressableProps}>
116
- {({ pressed }) => <UnknownMessage message={message} pressed={pressed} {...messageProps} />}
117
- </Pressable>
118
- );
119
- });
120
-
121
- return (
122
- <MessageContainer>
123
- <MessageDateSeparator message={message} prevMessage={rest.prevMessage} />
124
- {message.isAdminMessage() && messageComponent}
125
- {!message.isAdminMessage() && (
126
- <View
127
- style={[
128
- variantContainerStyle,
129
- conditionChaining(
130
- [groupWithNext, Boolean(rest.nextMessage)],
131
- [styles.chatGroup, styles.chatNonGroup, styles.chatLastMessage],
132
- ),
133
- ]}
134
- >
135
- {isOutgoing && (
136
- <View style={styles.outgoingContainer}>
137
- <MessageOutgoingStatus channel={channel} message={message} />
138
- <MessageTime message={message} grouping={groupWithNext} style={styles.timeOutgoing} />
139
- </View>
140
- )}
141
- {isIncoming && <MessageIncomingAvatar message={message} grouping={groupWithNext} />}
142
- <View style={styles.bubbleContainer}>
143
- {isIncoming && <MessageIncomingSenderName message={message} grouping={groupWithPrev} />}
144
- <View style={styles.bubbleWrapper}>
145
- {messageComponent}
146
- {isIncoming && <MessageTime message={message} grouping={groupWithNext} style={styles.timeIncoming} />}
147
- </View>
148
- </View>
149
- </View>
150
- )}
151
- </MessageContainer>
152
- );
153
- };
154
-
155
- const styles = createStyleSheet({
156
- chatIncoming: {
157
- flexDirection: 'row',
158
- justifyContent: 'flex-start',
159
- alignItems: 'flex-end',
160
- },
161
- chatOutgoing: {
162
- flexDirection: 'row',
163
- justifyContent: 'flex-end',
164
- alignItems: 'flex-end',
165
- },
166
- timeIncoming: {
167
- marginLeft: 4,
168
- },
169
- timeOutgoing: {
170
- marginRight: 4,
171
- },
172
- chatGroup: {
173
- marginBottom: 2,
174
- },
175
- chatNonGroup: {
176
- marginBottom: 16,
177
- },
178
- chatLastMessage: {
179
- marginBottom: 16,
180
- },
181
- msgContainer: {
182
- maxWidth: 240,
183
- },
184
- bubbleContainer: {
185
- flexShrink: 1,
186
- },
187
- bubbleWrapper: {
188
- flexDirection: 'row',
189
- alignItems: 'flex-end',
190
- },
191
- outgoingContainer: {
192
- flexDirection: 'row',
193
- alignItems: 'flex-end',
194
- justifyContent: 'center',
195
- },
196
- });
197
-
198
- export default React.memo(MessageRenderer);