@sendbird/uikit-react-native 3.11.2 → 3.11.4

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 (281) hide show
  1. package/lib/commonjs/components/ChannelInput/EditInput.js +1 -2
  2. package/lib/commonjs/components/ChannelInput/EditInput.js.map +1 -1
  3. package/lib/commonjs/components/ChannelInput/SendInput.js +1 -2
  4. package/lib/commonjs/components/ChannelInput/SendInput.js.map +1 -1
  5. package/lib/commonjs/components/ChannelInput/VoiceMessageInput.js +1 -2
  6. package/lib/commonjs/components/ChannelInput/VoiceMessageInput.js.map +1 -1
  7. package/lib/commonjs/components/ChannelInput/index.js +1 -2
  8. package/lib/commonjs/components/ChannelInput/index.js.map +1 -1
  9. package/lib/commonjs/components/ChatFlatList/index.js +1 -2
  10. package/lib/commonjs/components/ChatFlatList/index.js.map +1 -1
  11. package/lib/commonjs/components/FileViewer/FileViewerContent.js +2 -3
  12. package/lib/commonjs/components/FileViewer/FileViewerContent.js.map +1 -1
  13. package/lib/commonjs/components/FileViewer/index.js +1 -2
  14. package/lib/commonjs/components/FileViewer/index.js.map +1 -1
  15. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js +1 -2
  16. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageFocusAnimation.js.map +1 -1
  17. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js +1 -2
  18. package/lib/commonjs/components/GroupChannelMessageRenderer/GroupChannelMessageParentMessage.js.map +1 -1
  19. package/lib/commonjs/components/GroupChannelMessageRenderer/index.js +1 -2
  20. package/lib/commonjs/components/GroupChannelMessageRenderer/index.js.map +1 -1
  21. package/lib/commonjs/components/ReactionBottomSheets/ReactionUserListBottomSheet.js +1 -2
  22. package/lib/commonjs/components/ReactionBottomSheets/ReactionUserListBottomSheet.js.map +1 -1
  23. package/lib/commonjs/components/ThreadChatFlatList/index.js +1 -2
  24. package/lib/commonjs/components/ThreadChatFlatList/index.js.map +1 -1
  25. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js +1 -2
  26. package/lib/commonjs/components/ThreadParentMessageRenderer/ThreadParentMessage.file.voice.js.map +1 -1
  27. package/lib/commonjs/components/ThreadParentMessageRenderer/index.js +1 -2
  28. package/lib/commonjs/components/ThreadParentMessageRenderer/index.js.map +1 -1
  29. package/lib/commonjs/containers/GroupChannelPreviewContainer.js +1 -2
  30. package/lib/commonjs/containers/GroupChannelPreviewContainer.js.map +1 -1
  31. package/lib/commonjs/containers/SendbirdUIKitContainer.js +1 -2
  32. package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
  33. package/lib/commonjs/contexts/PlatformServiceCtx.js +1 -2
  34. package/lib/commonjs/contexts/PlatformServiceCtx.js.map +1 -1
  35. package/lib/commonjs/contexts/ReactionCtx.js +1 -2
  36. package/lib/commonjs/contexts/ReactionCtx.js.map +1 -1
  37. package/lib/commonjs/contexts/SendbirdChatCtx.js +1 -2
  38. package/lib/commonjs/contexts/SendbirdChatCtx.js.map +1 -1
  39. package/lib/commonjs/contexts/UserProfileCtx.js +1 -2
  40. package/lib/commonjs/contexts/UserProfileCtx.js.map +1 -1
  41. package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js +1 -2
  42. package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js.map +1 -1
  43. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput.js +1 -2
  44. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput.js.map +1 -1
  45. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +1 -2
  46. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  47. package/lib/commonjs/domain/groupChannel/component/GroupChannelSuggestedMentionList.js +1 -2
  48. package/lib/commonjs/domain/groupChannel/component/GroupChannelSuggestedMentionList.js.map +1 -1
  49. package/lib/commonjs/domain/groupChannel/module/moduleContext.js +1 -2
  50. package/lib/commonjs/domain/groupChannel/module/moduleContext.js.map +1 -1
  51. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js +1 -2
  52. package/lib/commonjs/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.js.map +1 -1
  53. package/lib/commonjs/domain/groupChannelBannedUsers/module/moduleContext.js +1 -2
  54. package/lib/commonjs/domain/groupChannelBannedUsers/module/moduleContext.js.map +1 -1
  55. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListHeader.js +1 -2
  56. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListHeader.js.map +1 -1
  57. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js +1 -2
  58. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -1
  59. package/lib/commonjs/domain/groupChannelList/module/moduleContext.js +1 -2
  60. package/lib/commonjs/domain/groupChannelList/module/moduleContext.js.map +1 -1
  61. package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationHeader.js +1 -2
  62. package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationHeader.js.map +1 -1
  63. package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationMenu.js +1 -2
  64. package/lib/commonjs/domain/groupChannelModeration/component/GroupChannelModerationMenu.js.map +1 -1
  65. package/lib/commonjs/domain/groupChannelModeration/module/moduleContext.js +1 -2
  66. package/lib/commonjs/domain/groupChannelModeration/module/moduleContext.js.map +1 -1
  67. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js +1 -2
  68. package/lib/commonjs/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.js.map +1 -1
  69. package/lib/commonjs/domain/groupChannelMutedMembers/module/moduleContext.js +1 -2
  70. package/lib/commonjs/domain/groupChannelMutedMembers/module/moduleContext.js.map +1 -1
  71. package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js +1 -2
  72. package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.js.map +1 -1
  73. package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js +1 -2
  74. package/lib/commonjs/domain/groupChannelNotifications/component/GroupChannelNotificationsView.js.map +1 -1
  75. package/lib/commonjs/domain/groupChannelNotifications/module/moduleContext.js +1 -2
  76. package/lib/commonjs/domain/groupChannelNotifications/module/moduleContext.js.map +1 -1
  77. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js +1 -2
  78. package/lib/commonjs/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.js.map +1 -1
  79. package/lib/commonjs/domain/groupChannelOperators/module/moduleContext.js +1 -2
  80. package/lib/commonjs/domain/groupChannelOperators/module/moduleContext.js.map +1 -1
  81. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js +1 -2
  82. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js.map +1 -1
  83. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +1 -2
  84. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -1
  85. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +1 -2
  86. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  87. package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js +1 -2
  88. package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
  89. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadHeader.js +1 -2
  90. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadHeader.js.map +1 -1
  91. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadInput.js +1 -2
  92. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadInput.js.map +1 -1
  93. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadMessageList.js +1 -2
  94. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadMessageList.js.map +1 -1
  95. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js +1 -2
  96. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js.map +1 -1
  97. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js +1 -2
  98. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js.map +1 -1
  99. package/lib/commonjs/domain/groupChannelThread/module/moduleContext.js +1 -2
  100. package/lib/commonjs/domain/groupChannelThread/module/moduleContext.js.map +1 -1
  101. package/lib/commonjs/domain/messageSearch/component/MessageSearchHeader.js +1 -2
  102. package/lib/commonjs/domain/messageSearch/component/MessageSearchHeader.js.map +1 -1
  103. package/lib/commonjs/domain/messageSearch/module/moduleContext.js +1 -2
  104. package/lib/commonjs/domain/messageSearch/module/moduleContext.js.map +1 -1
  105. package/lib/commonjs/domain/openChannel/component/OpenChannelHeader.js +1 -2
  106. package/lib/commonjs/domain/openChannel/component/OpenChannelHeader.js.map +1 -1
  107. package/lib/commonjs/domain/openChannel/component/OpenChannelInput.js +1 -2
  108. package/lib/commonjs/domain/openChannel/component/OpenChannelInput.js.map +1 -1
  109. package/lib/commonjs/domain/openChannel/component/OpenChannelMessageList.js +1 -2
  110. package/lib/commonjs/domain/openChannel/component/OpenChannelMessageList.js.map +1 -1
  111. package/lib/commonjs/domain/openChannel/module/moduleContext.js +1 -2
  112. package/lib/commonjs/domain/openChannel/module/moduleContext.js.map +1 -1
  113. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersHeader.js +1 -2
  114. package/lib/commonjs/domain/openChannelBannedUsers/component/OpenChannelBannedUsersHeader.js.map +1 -1
  115. package/lib/commonjs/domain/openChannelBannedUsers/module/moduleContext.js +1 -2
  116. package/lib/commonjs/domain/openChannelBannedUsers/module/moduleContext.js.map +1 -1
  117. package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateHeader.js +1 -2
  118. package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateHeader.js.map +1 -1
  119. package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateProfileInput.js +1 -2
  120. package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateProfileInput.js.map +1 -1
  121. package/lib/commonjs/domain/openChannelCreate/module/moduleContext.js +1 -2
  122. package/lib/commonjs/domain/openChannelCreate/module/moduleContext.js.map +1 -1
  123. package/lib/commonjs/domain/openChannelList/component/OpenChannelListHeader.js +1 -2
  124. package/lib/commonjs/domain/openChannelList/component/OpenChannelListHeader.js.map +1 -1
  125. package/lib/commonjs/domain/openChannelList/module/moduleContext.js +1 -2
  126. package/lib/commonjs/domain/openChannelList/module/moduleContext.js.map +1 -1
  127. package/lib/commonjs/domain/openChannelModeration/component/OpenChannelModerationHeader.js +1 -2
  128. package/lib/commonjs/domain/openChannelModeration/component/OpenChannelModerationHeader.js.map +1 -1
  129. package/lib/commonjs/domain/openChannelModeration/module/moduleContext.js +1 -2
  130. package/lib/commonjs/domain/openChannelModeration/module/moduleContext.js.map +1 -1
  131. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsHeader.js +1 -2
  132. package/lib/commonjs/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsHeader.js.map +1 -1
  133. package/lib/commonjs/domain/openChannelMutedParticipants/module/moduleContext.js +1 -2
  134. package/lib/commonjs/domain/openChannelMutedParticipants/module/moduleContext.js.map +1 -1
  135. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsHeader.js +1 -2
  136. package/lib/commonjs/domain/openChannelOperators/component/OpenChannelOperatorsHeader.js.map +1 -1
  137. package/lib/commonjs/domain/openChannelOperators/module/moduleContext.js +1 -2
  138. package/lib/commonjs/domain/openChannelOperators/module/moduleContext.js.map +1 -1
  139. package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsHeader.js +1 -2
  140. package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsHeader.js.map +1 -1
  141. package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsInfo.js +1 -2
  142. package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsInfo.js.map +1 -1
  143. package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsMenu.js +1 -2
  144. package/lib/commonjs/domain/openChannelSettings/component/OpenChannelSettingsMenu.js.map +1 -1
  145. package/lib/commonjs/domain/openChannelSettings/module/moduleContext.js +1 -2
  146. package/lib/commonjs/domain/openChannelSettings/module/moduleContext.js.map +1 -1
  147. package/lib/commonjs/domain/userList/component/UserListHeader.js +1 -2
  148. package/lib/commonjs/domain/userList/component/UserListHeader.js.map +1 -1
  149. package/lib/commonjs/domain/userList/component/UserListList.js +1 -2
  150. package/lib/commonjs/domain/userList/component/UserListList.js.map +1 -1
  151. package/lib/commonjs/domain/userList/module/moduleContext.js +1 -2
  152. package/lib/commonjs/domain/userList/module/moduleContext.js.map +1 -1
  153. package/lib/commonjs/fragments/createGroupChannelFragment.js +1 -2
  154. package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
  155. package/lib/commonjs/fragments/createGroupChannelInviteFragment.js +1 -2
  156. package/lib/commonjs/fragments/createGroupChannelInviteFragment.js.map +1 -1
  157. package/lib/commonjs/fragments/createGroupChannelMembersFragment.js +1 -2
  158. package/lib/commonjs/fragments/createGroupChannelMembersFragment.js.map +1 -1
  159. package/lib/commonjs/fragments/createGroupChannelRegisterOperatorFragment.js +1 -2
  160. package/lib/commonjs/fragments/createGroupChannelRegisterOperatorFragment.js.map +1 -1
  161. package/lib/commonjs/fragments/createGroupChannelThreadFragment.js +1 -2
  162. package/lib/commonjs/fragments/createGroupChannelThreadFragment.js.map +1 -1
  163. package/lib/commonjs/fragments/createMessageSearchFragment.js +1 -2
  164. package/lib/commonjs/fragments/createMessageSearchFragment.js.map +1 -1
  165. package/lib/commonjs/fragments/createOpenChannelCreateFragment.js +1 -2
  166. package/lib/commonjs/fragments/createOpenChannelCreateFragment.js.map +1 -1
  167. package/lib/commonjs/fragments/createOpenChannelFragment.js +1 -2
  168. package/lib/commonjs/fragments/createOpenChannelFragment.js.map +1 -1
  169. package/lib/commonjs/fragments/createOpenChannelParticipantsFragment.js +1 -2
  170. package/lib/commonjs/fragments/createOpenChannelParticipantsFragment.js.map +1 -1
  171. package/lib/commonjs/fragments/createOpenChannelRegisterOperatorFragment.js +1 -2
  172. package/lib/commonjs/fragments/createOpenChannelRegisterOperatorFragment.js.map +1 -1
  173. package/lib/commonjs/index.js +41 -42
  174. package/lib/commonjs/index.js.map +1 -1
  175. package/lib/commonjs/libs/InternalLocalCacheStorage.js +6 -1
  176. package/lib/commonjs/libs/InternalLocalCacheStorage.js.map +1 -1
  177. package/lib/commonjs/libs/SBUError.js +1 -0
  178. package/lib/commonjs/libs/SBUError.js.map +1 -1
  179. package/lib/commonjs/platform/createFileService.expo.js +3 -3
  180. package/lib/commonjs/platform/createFileService.expo.js.map +1 -1
  181. package/lib/commonjs/platform/createMediaService.expo.js +2 -3
  182. package/lib/commonjs/platform/createMediaService.expo.js.map +1 -1
  183. package/lib/commonjs/types.js.map +1 -1
  184. package/lib/commonjs/utils/expoBackwardUtils.js +51 -1
  185. package/lib/commonjs/utils/expoBackwardUtils.js.map +1 -1
  186. package/lib/commonjs/version.js +1 -1
  187. package/lib/commonjs/version.js.map +1 -1
  188. package/lib/module/components/FileViewer/FileViewerContent.js +1 -1
  189. package/lib/module/components/FileViewer/FileViewerContent.js.map +1 -1
  190. package/lib/module/domain/openChannelCreate/component/OpenChannelCreateProfileInput.js +1 -1
  191. package/lib/module/domain/openChannelCreate/component/OpenChannelCreateProfileInput.js.map +1 -1
  192. package/lib/module/libs/InternalLocalCacheStorage.js +6 -1
  193. package/lib/module/libs/InternalLocalCacheStorage.js.map +1 -1
  194. package/lib/module/libs/SBUError.js +1 -0
  195. package/lib/module/libs/SBUError.js.map +1 -1
  196. package/lib/module/platform/createFileService.expo.js +3 -3
  197. package/lib/module/platform/createFileService.expo.js.map +1 -1
  198. package/lib/module/platform/createMediaService.expo.js +1 -1
  199. package/lib/module/platform/createMediaService.expo.js.map +1 -1
  200. package/lib/module/types.js.map +1 -1
  201. package/lib/module/utils/expoBackwardUtils.js +52 -1
  202. package/lib/module/utils/expoBackwardUtils.js.map +1 -1
  203. package/lib/module/version.js +1 -1
  204. package/lib/module/version.js.map +1 -1
  205. package/lib/typescript/src/components/ChannelMessageList/index.d.ts +2 -1
  206. package/lib/typescript/src/components/ChannelThreadMessageList/index.d.ts +2 -1
  207. package/lib/typescript/src/components/ChatFlatList/index.d.ts +1 -1
  208. package/lib/typescript/src/components/GroupChannelMessageRenderer/GroupChannelMessageDateSeparator.d.ts +1 -1
  209. package/lib/typescript/src/components/GroupChannelMessageRenderer/index.d.ts +9 -11
  210. package/lib/typescript/src/components/OpenChannelMessageRenderer/OpenChannelMessageDateSeparator.d.ts +1 -1
  211. package/lib/typescript/src/components/OpenChannelMessageRenderer/index.d.ts +9 -11
  212. package/lib/typescript/src/components/ReactionAddons/MessageReactionAddon.d.ts +1 -1
  213. package/lib/typescript/src/components/ReactionAddons/index.d.ts +5 -6
  214. package/lib/typescript/src/components/ThreadParentMessageRenderer/index.d.ts +1 -8
  215. package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +1 -1
  216. package/lib/typescript/src/domain/groupChannel/component/GroupChannelHeader.d.ts +1 -1
  217. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput.d.ts +2 -1
  218. package/lib/typescript/src/domain/groupChannel/component/GroupChannelMessageList.d.ts +2 -12
  219. package/lib/typescript/src/domain/groupChannel/component/GroupChannelSuggestedMentionList.d.ts +1 -1
  220. package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersHeader.d.ts +1 -1
  221. package/lib/typescript/src/domain/groupChannelBannedUsers/component/GroupChannelBannedUsersList.d.ts +1 -1
  222. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListHeader.d.ts +1 -1
  223. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListList.d.ts +1 -1
  224. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListTypeSelector.d.ts +1 -1
  225. package/lib/typescript/src/domain/groupChannelModeration/component/GroupChannelModerationHeader.d.ts +1 -1
  226. package/lib/typescript/src/domain/groupChannelModeration/component/GroupChannelModerationMenu.d.ts +1 -1
  227. package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersHeader.d.ts +1 -1
  228. package/lib/typescript/src/domain/groupChannelMutedMembers/component/GroupChannelMutedMembersList.d.ts +1 -1
  229. package/lib/typescript/src/domain/groupChannelNotifications/component/GroupChannelNotificationsHeader.d.ts +1 -1
  230. package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsHeader.d.ts +1 -1
  231. package/lib/typescript/src/domain/groupChannelOperators/component/GroupChannelOperatorsList.d.ts +1 -1
  232. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsHeader.d.ts +1 -1
  233. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsInfo.d.ts +1 -1
  234. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.d.ts +1 -1
  235. package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadHeader.d.ts +1 -1
  236. package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadInput.d.ts +2 -1
  237. package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadMessageList.d.ts +2 -5
  238. package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.d.ts +2 -6
  239. package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.d.ts +1 -1
  240. package/lib/typescript/src/domain/groupChannelUserList/types.d.ts +0 -1
  241. package/lib/typescript/src/domain/messageSearch/component/MessageSearchHeader.d.ts +1 -1
  242. package/lib/typescript/src/domain/messageSearch/component/MessageSearchList.d.ts +1 -1
  243. package/lib/typescript/src/domain/openChannel/component/OpenChannelHeader.d.ts +2 -5
  244. package/lib/typescript/src/domain/openChannel/component/OpenChannelInput.d.ts +2 -1
  245. package/lib/typescript/src/domain/openChannel/component/OpenChannelMessageList.d.ts +2 -1
  246. package/lib/typescript/src/domain/openChannelBannedUsers/component/OpenChannelBannedUsersHeader.d.ts +1 -1
  247. package/lib/typescript/src/domain/openChannelBannedUsers/component/OpenChannelBannedUsersList.d.ts +1 -1
  248. package/lib/typescript/src/domain/openChannelCreate/component/OpenChannelCreateHeader.d.ts +1 -1
  249. package/lib/typescript/src/domain/openChannelCreate/component/OpenChannelCreateProfileInput.d.ts +1 -1
  250. package/lib/typescript/src/domain/openChannelList/component/OpenChannelListHeader.d.ts +1 -1
  251. package/lib/typescript/src/domain/openChannelList/component/OpenChannelListList.d.ts +1 -1
  252. package/lib/typescript/src/domain/openChannelModeration/component/OpenChannelModerationHeader.d.ts +1 -1
  253. package/lib/typescript/src/domain/openChannelModeration/component/OpenChannelModerationMenu.d.ts +1 -1
  254. package/lib/typescript/src/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsHeader.d.ts +1 -1
  255. package/lib/typescript/src/domain/openChannelMutedParticipants/component/OpenChannelMutedParticipantsList.d.ts +1 -1
  256. package/lib/typescript/src/domain/openChannelOperators/component/OpenChannelOperatorsHeader.d.ts +1 -1
  257. package/lib/typescript/src/domain/openChannelOperators/component/OpenChannelOperatorsList.d.ts +1 -1
  258. package/lib/typescript/src/domain/openChannelSettings/component/OpenChannelSettingsHeader.d.ts +1 -1
  259. package/lib/typescript/src/domain/openChannelSettings/component/OpenChannelSettingsInfo.d.ts +1 -1
  260. package/lib/typescript/src/domain/openChannelSettings/component/OpenChannelSettingsMenu.d.ts +1 -1
  261. package/lib/typescript/src/domain/userList/component/UserListHeader.d.ts +1 -7
  262. package/lib/typescript/src/domain/userList/component/UserListList.d.ts +1 -8
  263. package/lib/typescript/src/fragments/createGroupChannelCreateFragment.d.ts +1 -1
  264. package/lib/typescript/src/fragments/createGroupChannelInviteFragment.d.ts +1 -1
  265. package/lib/typescript/src/hooks/useChannelInputItems.d.ts +4 -4
  266. package/lib/typescript/src/hooks/useMentionTextInput.d.ts +0 -1
  267. package/lib/typescript/src/libs/MentionManager.d.ts +2 -2
  268. package/lib/typescript/src/platform/dynamicModule.d.ts +1 -1
  269. package/lib/typescript/src/types.d.ts +4 -1
  270. package/lib/typescript/src/utils/expoBackwardUtils.d.ts +36 -0
  271. package/lib/typescript/src/utils/promise.d.ts +3 -3
  272. package/lib/typescript/src/version.d.ts +1 -1
  273. package/package.json +32 -23
  274. package/src/components/FileViewer/FileViewerContent.tsx +6 -3
  275. package/src/domain/openChannelCreate/component/OpenChannelCreateProfileInput.tsx +1 -1
  276. package/src/libs/InternalLocalCacheStorage.ts +6 -1
  277. package/src/platform/createFileService.expo.ts +5 -3
  278. package/src/platform/createMediaService.expo.tsx +1 -1
  279. package/src/types.ts +5 -1
  280. package/src/utils/expoBackwardUtils.ts +71 -1
  281. package/src/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeZoomableView","require","_react","_interopRequireWildcard","_reactNative","_uikitReactNativeFoundation","_uikitUtils","_useContext","_SBUUtils","_interopRequireDefault","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","FileViewerContent","type","src","topInset","bottomInset","maxZoom","minZoom","onPress","loading","setLoading","useState","defaultHeight","useHeaderStyle","mediaService","usePlatformService","palette","useUIKitTheme","source","uri","onLoadEnd","mediaViewer","useIIFE","createElement","ZoomableImageView","style","StyleSheet","absoluteFill","resizeMode","zoomProps","onTouchEnd","VideoComponent","top","bottom","onLoad","Box","styles","container","LoadingSpinner","position","size","color","primary300","props","width","height","useWindowDimensions","imageSize","useRef","contentSizeProps","setContentSizeProps","contentWidth","contentHeight","useLayoutEffect","SBUUtils","safeRun","image","current","getImageSize","viewRatio","imageRatio","fitDirection","ratio","actualSize","ReactNativeZoomableView","visualTouchFeedbackEnabled","initialZoom","Image","createStyleSheet","zIndex","flex","alignItems","justifyContent","_default","exports"],"sources":["FileViewerContent.tsx"],"sourcesContent":["import { ReactNativeZoomableView, ReactNativeZoomableViewProps } from '@openspacelabs/react-native-zoomable-view';\nimport React, { useLayoutEffect, useRef, useState } from 'react';\nimport { ImageProps, ImageStyle, ImageURISource, StyleProp, StyleSheet, useWindowDimensions } from 'react-native';\n\nimport {\n Box,\n Image,\n LoadingSpinner,\n createStyleSheet,\n useHeaderStyle,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport { FileType, useIIFE } from '@sendbird/uikit-utils';\n\nimport { usePlatformService } from '../../hooks/useContext';\nimport SBUUtils from '../../libs/SBUUtils';\n\ntype Props = {\n type: FileType;\n src: string;\n topInset?: number;\n bottomInset?: number;\n maxZoom?: number;\n minZoom?: number;\n onPress?: () => void;\n};\nconst FileViewerContent = ({ type, src, topInset = 0, bottomInset = 0, maxZoom = 4, minZoom = 1, onPress }: Props) => {\n const [loading, setLoading] = useState(true);\n\n const { defaultHeight } = useHeaderStyle();\n const { mediaService } = usePlatformService();\n const { palette } = useUIKitTheme();\n\n const source = { uri: src };\n const onLoadEnd = () => setLoading(false);\n const mediaViewer = useIIFE(() => {\n switch (type) {\n case 'image': {\n return (\n <ZoomableImageView\n source={source}\n style={StyleSheet.absoluteFill}\n resizeMode={'contain'}\n onLoadEnd={onLoadEnd}\n zoomProps={{\n minZoom,\n maxZoom,\n onTouchEnd: onPress,\n }}\n />\n );\n }\n\n case 'video':\n case 'audio': {\n return (\n <mediaService.VideoComponent\n source={source}\n style={[StyleSheet.absoluteFill, { top: topInset, bottom: defaultHeight + bottomInset }]}\n resizeMode={'contain'}\n onLoad={onLoadEnd}\n />\n );\n }\n\n default: {\n return null;\n }\n }\n });\n\n return (\n <Box style={styles.container}>\n {mediaViewer}\n {loading && <LoadingSpinner style={{ position: 'absolute' }} size={40} color={palette.primary300} />}\n </Box>\n );\n};\n\nconst ZoomableImageView = ({\n zoomProps,\n ...props\n}: {\n source: ImageURISource;\n style: StyleProp<ImageStyle>;\n resizeMode: ImageProps['resizeMode'];\n onLoadEnd: () => void;\n zoomProps?: ReactNativeZoomableViewProps;\n}) => {\n const { width, height } = useWindowDimensions();\n\n const imageSize = useRef<{ width: number; height: number }>();\n const [contentSizeProps, setContentSizeProps] = useState<ReactNativeZoomableViewProps>({\n contentWidth: width,\n contentHeight: height,\n });\n\n useLayoutEffect(() => {\n SBUUtils.safeRun(async () => {\n if (props.source.uri) {\n const image = imageSize.current ?? (await SBUUtils.getImageSize(props.source.uri));\n imageSize.current = image;\n\n const viewRatio = width / height;\n const imageRatio = image.width / image.height;\n\n const fitDirection = viewRatio > imageRatio ? 'height' : 'width';\n const ratio = fitDirection === 'height' ? height / image.height : width / image.width;\n const actualSize = { width: image.width * ratio, height: image.height * ratio };\n\n setContentSizeProps({\n contentWidth: actualSize.width,\n contentHeight: actualSize.height,\n });\n }\n });\n }, [props.source.uri, width, height]);\n\n return (\n <ReactNativeZoomableView\n visualTouchFeedbackEnabled={false}\n style={{ width, height }}\n initialZoom={1}\n {...contentSizeProps}\n {...zoomProps}\n >\n <Image {...props} />\n </ReactNativeZoomableView>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n zIndex: 0,\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nexport default FileViewerContent;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeZoomableView","require","_react","_interopRequireWildcard","_reactNative","_uikitReactNativeFoundation","_uikitUtils","_useContext","_SBUUtils","_interopRequireDefault","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","FileViewerContent","type","src","topInset","bottomInset","maxZoom","minZoom","onPress","loading","setLoading","useState","defaultHeight","useHeaderStyle","mediaService","usePlatformService","palette","useUIKitTheme","source","uri","onLoadEnd","mediaViewer","useIIFE","createElement","ZoomableImageView","style","StyleSheet","absoluteFill","resizeMode","zoomProps","onSingleTap","VideoComponent","top","bottom","onLoad","Box","styles","container","LoadingSpinner","position","size","color","primary300","props","width","height","useWindowDimensions","imageSize","useRef","contentSizeProps","setContentSizeProps","contentWidth","contentHeight","useLayoutEffect","SBUUtils","safeRun","image","current","getImageSize","viewRatio","imageRatio","fitDirection","ratio","actualSize","ReactNativeZoomableView","visualTouchFeedbackEnabled","initialZoom","Image","createStyleSheet","zIndex","flex","alignItems","justifyContent","_default","exports"],"sources":["FileViewerContent.tsx"],"sourcesContent":["import { ReactNativeZoomableView, ReactNativeZoomableViewProps } from '@openspacelabs/react-native-zoomable-view';\nimport React, { useLayoutEffect, useRef, useState } from 'react';\nimport { ImageProps, ImageStyle, ImageURISource, StyleProp, StyleSheet, useWindowDimensions } from 'react-native';\n\nimport {\n Box,\n Image,\n LoadingSpinner,\n createStyleSheet,\n useHeaderStyle,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport { FileType, useIIFE } from '@sendbird/uikit-utils';\n\nimport { usePlatformService } from '../../hooks/useContext';\nimport SBUUtils from '../../libs/SBUUtils';\n\ntype Props = {\n type: FileType;\n src: string;\n topInset?: number;\n bottomInset?: number;\n maxZoom?: number;\n minZoom?: number;\n onPress?: () => void;\n};\nconst FileViewerContent = ({ type, src, topInset = 0, bottomInset = 0, maxZoom = 4, minZoom = 1, onPress }: Props) => {\n const [loading, setLoading] = useState(true);\n\n const { defaultHeight } = useHeaderStyle();\n const { mediaService } = usePlatformService();\n const { palette } = useUIKitTheme();\n\n const source = { uri: src };\n const onLoadEnd = () => setLoading(false);\n const mediaViewer = useIIFE(() => {\n switch (type) {\n case 'image': {\n return (\n <ZoomableImageView\n source={source}\n style={StyleSheet.absoluteFill}\n resizeMode={'contain'}\n onLoadEnd={onLoadEnd}\n zoomProps={{\n minZoom,\n maxZoom,\n onSingleTap: onPress,\n }}\n />\n );\n }\n\n case 'video':\n case 'audio': {\n return (\n <mediaService.VideoComponent\n source={source}\n style={[StyleSheet.absoluteFill, { top: topInset, bottom: defaultHeight + bottomInset }]}\n resizeMode={'contain'}\n onLoad={onLoadEnd}\n />\n );\n }\n\n default: {\n return null;\n }\n }\n });\n\n return (\n <Box style={styles.container}>\n {mediaViewer}\n {loading && <LoadingSpinner style={{ position: 'absolute' }} size={40} color={palette.primary300} />}\n </Box>\n );\n};\n\nconst ZoomableImageView = ({\n zoomProps,\n ...props\n}: {\n source: ImageURISource;\n style: StyleProp<ImageStyle>;\n resizeMode: ImageProps['resizeMode'];\n onLoadEnd: () => void;\n zoomProps?: Partial<ReactNativeZoomableViewProps>;\n}) => {\n const { width, height } = useWindowDimensions();\n\n const imageSize = useRef<{ width: number; height: number }>();\n const [contentSizeProps, setContentSizeProps] = useState<{\n contentWidth: number;\n contentHeight: number;\n }>({\n contentWidth: width,\n contentHeight: height,\n });\n\n useLayoutEffect(() => {\n SBUUtils.safeRun(async () => {\n if (props.source.uri) {\n const image = imageSize.current ?? (await SBUUtils.getImageSize(props.source.uri));\n imageSize.current = image;\n\n const viewRatio = width / height;\n const imageRatio = image.width / image.height;\n\n const fitDirection = viewRatio > imageRatio ? 'height' : 'width';\n const ratio = fitDirection === 'height' ? height / image.height : width / image.width;\n const actualSize = { width: image.width * ratio, height: image.height * ratio };\n\n setContentSizeProps({\n contentWidth: actualSize.width,\n contentHeight: actualSize.height,\n });\n }\n });\n }, [props.source.uri, width, height]);\n\n return (\n <ReactNativeZoomableView\n visualTouchFeedbackEnabled={false}\n style={{ width, height }}\n initialZoom={1}\n {...contentSizeProps}\n {...zoomProps}\n >\n <Image {...props} />\n </ReactNativeZoomableView>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n zIndex: 0,\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nexport default FileViewerContent;\n"],"mappings":"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","ignoreList":[]}
@@ -14,8 +14,7 @@ var _FileViewerContent = _interopRequireDefault(require("./FileViewerContent"));
14
14
  var _FileViewerFooter = _interopRequireDefault(require("./FileViewerFooter"));
15
15
  var _FileViewerHeader = _interopRequireDefault(require("./FileViewerHeader"));
16
16
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
18
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
19
18
  const FileViewer = ({
20
19
  headerShown = true,
21
20
  maxZoom = 3,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeSafeAreaContext","_uikitReactNativeFoundation","_uikitUtils","_useContext","_FileViewerContent","_interopRequireDefault","_FileViewerFooter","_FileViewerHeader","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","FileViewer","headerShown","maxZoom","minZoom","headerTopInset","fileMessage","onClose","onPressDownload","onPressDelete","deleteMessage","topInset","statusBarTranslucent","useHeaderStyle","bottom","useSafeAreaInsets","palette","useUIKitTheme","alert","useAlert","show","useToast","fileService","usePlatformService","currentUser","useSendbirdChat","STRINGS","useLocalization","fileType","getFileType","type","getFileExtension","url","canDelete","isMyMessage","userId","basicTopInset","onPressDeleteButton","title","LABELS","CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE","buttons","text","CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL","CHANNEL_MESSAGE_DELETE_CONFIRM_OK","style","onPress","then","catch","TOAST","DELETE_MSG_ERROR","onPressDownloadButton","toMegabyte","size","DOWNLOAD_START","save","fileUrl","fileName","name","response","DOWNLOAD_OK","Logger","log","err","DOWNLOAD_ERROR","useEffect","createElement","Box","flex","backgroundColor","background700","StatusBar","barStyle","animated","FILE_VIEWER","TITLE","subtitle","SUBTITLE","bottomInset","src","deleteShown","_default","exports"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport { StatusBar } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { Box, useAlert, useHeaderStyle, useToast, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdFileMessage } from '@sendbird/uikit-utils';\nimport { Logger, getFileExtension, getFileType, isMyMessage, toMegabyte } from '@sendbird/uikit-utils';\n\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../../hooks/useContext';\nimport FileViewerContent from './FileViewerContent';\nimport FileViewerFooter from './FileViewerFooter';\nimport FileViewerHeader from './FileViewerHeader';\n\ntype Props = {\n fileMessage: SendbirdFileMessage;\n deleteMessage: () => Promise<void>;\n\n onClose: () => void;\n onPressDownload?: (message: SendbirdFileMessage) => void;\n onPressDelete?: (message: SendbirdFileMessage) => void;\n\n headerShown?: boolean;\n headerTopInset?: number;\n\n /** This prop is only available on the Image viewer */\n minZoom?: number;\n /** This prop is only available on the Image viewer */\n maxZoom?: number;\n};\n\nconst FileViewer = ({\n headerShown = true,\n maxZoom = 3,\n minZoom = 1,\n headerTopInset,\n fileMessage,\n onClose,\n onPressDownload,\n onPressDelete,\n deleteMessage,\n}: Props) => {\n const { topInset, statusBarTranslucent } = useHeaderStyle();\n const { bottom } = useSafeAreaInsets();\n const { palette } = useUIKitTheme();\n const { alert } = useAlert();\n const { show } = useToast();\n\n const { fileService } = usePlatformService();\n const { currentUser } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n\n const fileType = getFileType(fileMessage.type || getFileExtension(fileMessage.url));\n const canDelete = isMyMessage(fileMessage, currentUser?.userId);\n const basicTopInset = statusBarTranslucent ? topInset : 0;\n\n const onPressDeleteButton = () => {\n if (!canDelete) return;\n\n if (onPressDelete) {\n onPressDelete(fileMessage);\n } else {\n alert({\n title: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE,\n buttons: [\n {\n text: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL,\n },\n {\n text: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE_CONFIRM_OK,\n style: 'destructive',\n onPress: () => {\n deleteMessage()\n .then(() => {\n onClose();\n })\n .catch(() => {\n show(STRINGS.TOAST.DELETE_MSG_ERROR, 'error');\n });\n },\n },\n ],\n });\n }\n };\n\n const onPressDownloadButton = () => {\n if (onPressDownload) {\n onPressDownload(fileMessage);\n } else {\n if (toMegabyte(fileMessage.size) > 4) {\n show(STRINGS.TOAST.DOWNLOAD_START, 'success');\n }\n\n fileService\n .save({ fileUrl: fileMessage.url, fileName: fileMessage.name, fileType: fileMessage.type })\n .then((response) => {\n show(STRINGS.TOAST.DOWNLOAD_OK, 'success');\n Logger.log('File saved to', response);\n })\n .catch((err) => {\n show(STRINGS.TOAST.DOWNLOAD_ERROR, 'error');\n Logger.log('File save failure', err);\n });\n }\n };\n\n useEffect(() => {\n if (fileType === 'file') onClose();\n }, []);\n\n return (\n <Box flex={1} backgroundColor={palette.background700}>\n <StatusBar barStyle={'light-content'} animated />\n <FileViewerHeader\n topInset={headerTopInset ?? basicTopInset}\n headerShown={headerShown}\n title={STRINGS.FILE_VIEWER.TITLE(fileMessage)}\n subtitle={STRINGS.FILE_VIEWER.SUBTITLE(fileMessage)}\n onClose={onClose}\n />\n <FileViewerContent\n topInset={headerTopInset ?? basicTopInset}\n bottomInset={bottom}\n type={fileType}\n src={fileMessage.url}\n maxZoom={maxZoom}\n minZoom={minZoom}\n />\n <FileViewerFooter\n bottomInset={bottom}\n deleteShown={canDelete}\n onPressDelete={onPressDeleteButton}\n onPressDownload={onPressDownloadButton}\n />\n </Box>\n );\n};\n\nexport default FileViewer;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeSafeAreaContext","_uikitReactNativeFoundation","_uikitUtils","_useContext","_FileViewerContent","_interopRequireDefault","_FileViewerFooter","_FileViewerHeader","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","FileViewer","headerShown","maxZoom","minZoom","headerTopInset","fileMessage","onClose","onPressDownload","onPressDelete","deleteMessage","topInset","statusBarTranslucent","useHeaderStyle","bottom","useSafeAreaInsets","palette","useUIKitTheme","alert","useAlert","show","useToast","fileService","usePlatformService","currentUser","useSendbirdChat","STRINGS","useLocalization","fileType","getFileType","type","getFileExtension","url","canDelete","isMyMessage","userId","basicTopInset","onPressDeleteButton","title","LABELS","CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE","buttons","text","CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL","CHANNEL_MESSAGE_DELETE_CONFIRM_OK","style","onPress","then","catch","TOAST","DELETE_MSG_ERROR","onPressDownloadButton","toMegabyte","size","DOWNLOAD_START","save","fileUrl","fileName","name","response","DOWNLOAD_OK","Logger","log","err","DOWNLOAD_ERROR","useEffect","createElement","Box","flex","backgroundColor","background700","StatusBar","barStyle","animated","FILE_VIEWER","TITLE","subtitle","SUBTITLE","bottomInset","src","deleteShown","_default","exports"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport { StatusBar } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { Box, useAlert, useHeaderStyle, useToast, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdFileMessage } from '@sendbird/uikit-utils';\nimport { Logger, getFileExtension, getFileType, isMyMessage, toMegabyte } from '@sendbird/uikit-utils';\n\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../../hooks/useContext';\nimport FileViewerContent from './FileViewerContent';\nimport FileViewerFooter from './FileViewerFooter';\nimport FileViewerHeader from './FileViewerHeader';\n\ntype Props = {\n fileMessage: SendbirdFileMessage;\n deleteMessage: () => Promise<void>;\n\n onClose: () => void;\n onPressDownload?: (message: SendbirdFileMessage) => void;\n onPressDelete?: (message: SendbirdFileMessage) => void;\n\n headerShown?: boolean;\n headerTopInset?: number;\n\n /** This prop is only available on the Image viewer */\n minZoom?: number;\n /** This prop is only available on the Image viewer */\n maxZoom?: number;\n};\n\nconst FileViewer = ({\n headerShown = true,\n maxZoom = 3,\n minZoom = 1,\n headerTopInset,\n fileMessage,\n onClose,\n onPressDownload,\n onPressDelete,\n deleteMessage,\n}: Props) => {\n const { topInset, statusBarTranslucent } = useHeaderStyle();\n const { bottom } = useSafeAreaInsets();\n const { palette } = useUIKitTheme();\n const { alert } = useAlert();\n const { show } = useToast();\n\n const { fileService } = usePlatformService();\n const { currentUser } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n\n const fileType = getFileType(fileMessage.type || getFileExtension(fileMessage.url));\n const canDelete = isMyMessage(fileMessage, currentUser?.userId);\n const basicTopInset = statusBarTranslucent ? topInset : 0;\n\n const onPressDeleteButton = () => {\n if (!canDelete) return;\n\n if (onPressDelete) {\n onPressDelete(fileMessage);\n } else {\n alert({\n title: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE,\n buttons: [\n {\n text: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL,\n },\n {\n text: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE_CONFIRM_OK,\n style: 'destructive',\n onPress: () => {\n deleteMessage()\n .then(() => {\n onClose();\n })\n .catch(() => {\n show(STRINGS.TOAST.DELETE_MSG_ERROR, 'error');\n });\n },\n },\n ],\n });\n }\n };\n\n const onPressDownloadButton = () => {\n if (onPressDownload) {\n onPressDownload(fileMessage);\n } else {\n if (toMegabyte(fileMessage.size) > 4) {\n show(STRINGS.TOAST.DOWNLOAD_START, 'success');\n }\n\n fileService\n .save({ fileUrl: fileMessage.url, fileName: fileMessage.name, fileType: fileMessage.type })\n .then((response) => {\n show(STRINGS.TOAST.DOWNLOAD_OK, 'success');\n Logger.log('File saved to', response);\n })\n .catch((err) => {\n show(STRINGS.TOAST.DOWNLOAD_ERROR, 'error');\n Logger.log('File save failure', err);\n });\n }\n };\n\n useEffect(() => {\n if (fileType === 'file') onClose();\n }, []);\n\n return (\n <Box flex={1} backgroundColor={palette.background700}>\n <StatusBar barStyle={'light-content'} animated />\n <FileViewerHeader\n topInset={headerTopInset ?? basicTopInset}\n headerShown={headerShown}\n title={STRINGS.FILE_VIEWER.TITLE(fileMessage)}\n subtitle={STRINGS.FILE_VIEWER.SUBTITLE(fileMessage)}\n onClose={onClose}\n />\n <FileViewerContent\n topInset={headerTopInset ?? basicTopInset}\n bottomInset={bottom}\n type={fileType}\n src={fileMessage.url}\n maxZoom={maxZoom}\n minZoom={minZoom}\n />\n <FileViewerFooter\n bottomInset={bottom}\n deleteShown={canDelete}\n onPressDelete={onPressDeleteButton}\n onPressDownload={onPressDownloadButton}\n />\n </Box>\n );\n};\n\nexport default FileViewer;\n"],"mappings":"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","ignoreList":[]}
@@ -8,8 +8,7 @@ var _react = _interopRequireWildcard(require("react"));
8
8
  var _reactNative = require("react-native");
9
9
  var _uikitUtils = require("@sendbird/uikit-utils");
10
10
  var _constants = require("../../constants");
11
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
12
  const GroupChannelMessageFocusAnimation = props => {
14
13
  const isFirstMount = (0, _uikitUtils.useIsFirstMount)();
15
14
  const translateY = (0, _react.useRef)(new _reactNative.Animated.Value(0)).current;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_uikitUtils","_constants","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","GroupChannelMessageFocusAnimation","props","isFirstMount","useIsFirstMount","translateY","useRef","Animated","Value","current","useEffect","focused","delay","MESSAGE_FOCUS_ANIMATION_DELAY","MESSAGE_SEARCH_SAFE_SCROLL_DELAY","setTimeout","sequence","toValue","duration","map","value","timing","useNativeDriver","easing","Easing","inOut","ease","start","createElement","View","style","transform","children","_default","exports"],"sources":["GroupChannelMessageFocusAnimation.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport { Animated, Easing } from 'react-native';\n\nimport { useIsFirstMount } from '@sendbird/uikit-utils';\n\nimport { MESSAGE_FOCUS_ANIMATION_DELAY, MESSAGE_SEARCH_SAFE_SCROLL_DELAY } from '../../constants';\n\nconst GroupChannelMessageFocusAnimation = (props: React.PropsWithChildren<{ focused: boolean }>) => {\n const isFirstMount = useIsFirstMount();\n const translateY = useRef(new Animated.Value(0)).current;\n\n useEffect(() => {\n if (props.focused) {\n const delay = MESSAGE_FOCUS_ANIMATION_DELAY + (isFirstMount ? MESSAGE_SEARCH_SAFE_SCROLL_DELAY : 0);\n setTimeout(() => {\n Animated.sequence(\n [\n { toValue: -10, duration: 500 },\n { toValue: 0, duration: 100 },\n { toValue: -10, duration: 200 },\n { toValue: 0, duration: 100 },\n ].map((value) =>\n Animated.timing(translateY, { ...value, useNativeDriver: true, easing: Easing.inOut(Easing.ease) }),\n ),\n ).start();\n }, delay);\n }\n }, [props.focused]);\n\n return <Animated.View style={{ transform: [{ translateY }] }}>{props.children}</Animated.View>;\n};\n\nexport default GroupChannelMessageFocusAnimation;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_uikitUtils","_constants","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","GroupChannelMessageFocusAnimation","props","isFirstMount","useIsFirstMount","translateY","useRef","Animated","Value","current","useEffect","focused","delay","MESSAGE_FOCUS_ANIMATION_DELAY","MESSAGE_SEARCH_SAFE_SCROLL_DELAY","setTimeout","sequence","toValue","duration","map","value","timing","useNativeDriver","easing","Easing","inOut","ease","start","createElement","View","style","transform","children","_default","exports"],"sources":["GroupChannelMessageFocusAnimation.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport { Animated, Easing } from 'react-native';\n\nimport { useIsFirstMount } from '@sendbird/uikit-utils';\n\nimport { MESSAGE_FOCUS_ANIMATION_DELAY, MESSAGE_SEARCH_SAFE_SCROLL_DELAY } from '../../constants';\n\nconst GroupChannelMessageFocusAnimation = (props: React.PropsWithChildren<{ focused: boolean }>) => {\n const isFirstMount = useIsFirstMount();\n const translateY = useRef(new Animated.Value(0)).current;\n\n useEffect(() => {\n if (props.focused) {\n const delay = MESSAGE_FOCUS_ANIMATION_DELAY + (isFirstMount ? MESSAGE_SEARCH_SAFE_SCROLL_DELAY : 0);\n setTimeout(() => {\n Animated.sequence(\n [\n { toValue: -10, duration: 500 },\n { toValue: 0, duration: 100 },\n { toValue: -10, duration: 200 },\n { toValue: 0, duration: 100 },\n ].map((value) =>\n Animated.timing(translateY, { ...value, useNativeDriver: true, easing: Easing.inOut(Easing.ease) }),\n ),\n ).start();\n }, delay);\n }\n }, [props.focused]);\n\n return <Animated.View style={{ transform: [{ translateY }] }}>{props.children}</Animated.View>;\n};\n\nexport default GroupChannelMessageFocusAnimation;\n"],"mappings":"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","ignoreList":[]}
@@ -9,8 +9,7 @@ var _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundati
9
9
  var _uikitUtils = require("@sendbird/uikit-utils");
10
10
  var _moduleContext = require("../../domain/groupChannel/module/moduleContext");
11
11
  var _useContext = require("../../hooks/useContext");
12
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
13
  const GroupChannelMessageParentMessage = ({
15
14
  variant,
16
15
  channel,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_uikitReactNativeFoundation","_uikitUtils","_moduleContext","_useContext","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","GroupChannelMessageParentMessage","variant","channel","message","childMessage","onPress","currentUser","useSendbirdChat","groupChannelPubSub","useContext","GroupChannelContexts","PubSub","select","colors","palette","useUIKitTheme","STRINGS","useLocalization","mediaService","usePlatformService","parentMessage","setParentMessage","useState","type","getMessageType","useEffect","subscribe","data","updatedParent","messages","find","it","messageId","renderMessageWithText","createElement","Box","style","styles","bubbleContainer","backgroundColor","light","background100","dark","background400","Text","body3","color","onBackground03","suppressHighlighting","numberOfLines","ellipsizeMode","renderFileMessageAsVideoThumbnail","url","VideoThumbnail","image","iconSize","source","fetchThumbnailFromVideoSource","uri","getVideoThumbnail","timeMills","renderFileMessageAsPreview","ImageWithPlaceholder","renderFileMessageAsDownloadable","name","Icon","icon","getFileIconFromMessageType","size","containerStyle","fileIcon","truncate","mode","maxLen","parentMessageComponent","useIIFE","messageOffsetTimestamp","createdAt","LABELS","MESSAGE_UNAVAILABLE","getThumbnailUriFromFileMessage","VOICE_MESSAGE","alignItems","paddingStart","paddingEnd","PressBox","senderLabel","marginEnd","caption1","REPLY_FROM_SENDER_TO_RECEIVER","userId","flexDirection","justifyContent","messageContainer","createStyleSheet","opacity","marginTop","marginBottom","maxWidth","overflow","borderRadius","paddingHorizontal","paddingBottom","paddingTop","width","height","_default","exports"],"sources":["GroupChannelMessageParentMessage.tsx"],"sourcesContent":["import React, { useContext, useEffect, useState } from 'react';\n\nimport {\n Box,\n Icon,\n ImageWithPlaceholder,\n PressBox,\n Text,\n VideoThumbnail,\n createStyleSheet,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdFileMessage,\n SendbirdGroupChannel,\n SendbirdMessage,\n SendbirdUserMessage,\n getFileIconFromMessageType,\n getMessageType,\n getThumbnailUriFromFileMessage,\n truncate,\n useIIFE,\n} from '@sendbird/uikit-utils';\n\nimport { GroupChannelContexts } from '../../domain/groupChannel/module/moduleContext';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../../hooks/useContext';\n\ntype Props = {\n variant: 'outgoing' | 'incoming';\n channel: SendbirdGroupChannel;\n message: SendbirdUserMessage | SendbirdFileMessage;\n childMessage: SendbirdUserMessage | SendbirdFileMessage;\n onPress?: (parentMessage: SendbirdMessage, childMessage: SendbirdUserMessage | SendbirdFileMessage) => void;\n};\n\nconst GroupChannelMessageParentMessage = ({ variant, channel, message, childMessage, onPress }: Props) => {\n const { currentUser } = useSendbirdChat();\n const groupChannelPubSub = useContext(GroupChannelContexts.PubSub);\n const { select, colors, palette } = useUIKitTheme();\n const { STRINGS } = useLocalization();\n const { mediaService } = usePlatformService();\n\n const [parentMessage, setParentMessage] = useState(() => message);\n const type = getMessageType(parentMessage);\n\n useEffect(() => {\n return groupChannelPubSub.subscribe(({ type, data }) => {\n if (type === 'MESSAGES_UPDATED') {\n const updatedParent = data.messages.find((it): it is SendbirdUserMessage | SendbirdFileMessage => {\n return it.messageId === parentMessage.messageId;\n });\n if (updatedParent) setParentMessage(updatedParent);\n }\n });\n }, []);\n\n const renderMessageWithText = (message: string) => {\n return (\n <Box\n style={styles.bubbleContainer}\n backgroundColor={select({ light: palette.background100, dark: palette.background400 })}\n >\n <Text body3 color={colors.onBackground03} suppressHighlighting numberOfLines={2} ellipsizeMode={'tail'}>\n {message}\n </Text>\n </Box>\n );\n };\n\n const renderFileMessageAsVideoThumbnail = (url: string) => {\n return (\n <VideoThumbnail\n style={styles.image}\n iconSize={18}\n source={url}\n fetchThumbnailFromVideoSource={(uri) => mediaService.getVideoThumbnail({ url: uri, timeMills: 1000 })}\n />\n );\n };\n const renderFileMessageAsPreview = (url: string) => {\n return <ImageWithPlaceholder style={styles.image} source={{ uri: url }} />;\n };\n const renderFileMessageAsDownloadable = (name: string) => {\n return (\n <Box\n style={styles.bubbleContainer}\n backgroundColor={select({ light: palette.background100, dark: palette.background400 })}\n >\n <Icon\n icon={getFileIconFromMessageType(type)}\n size={16}\n color={colors.onBackground03}\n containerStyle={styles.fileIcon}\n />\n <Text body3 color={colors.onBackground03} numberOfLines={1} ellipsizeMode={'middle'}>\n {truncate(name, { mode: 'mid', maxLen: 20 })}\n </Text>\n </Box>\n );\n };\n\n const parentMessageComponent = useIIFE(() => {\n if (channel.messageOffsetTimestamp > parentMessage.createdAt) {\n return renderMessageWithText(STRINGS.LABELS.MESSAGE_UNAVAILABLE);\n }\n\n switch (type) {\n case 'user':\n case 'user.opengraph': {\n return renderMessageWithText((parentMessage as SendbirdUserMessage).message);\n }\n case 'file':\n case 'file.audio': {\n return renderFileMessageAsDownloadable((parentMessage as SendbirdFileMessage).name);\n }\n case 'file.video': {\n return renderFileMessageAsVideoThumbnail(getThumbnailUriFromFileMessage(parentMessage as SendbirdFileMessage));\n }\n case 'file.image': {\n return renderFileMessageAsPreview(getThumbnailUriFromFileMessage(parentMessage as SendbirdFileMessage));\n }\n case 'file.voice': {\n return renderMessageWithText(STRINGS.LABELS.VOICE_MESSAGE);\n }\n default: {\n return null;\n }\n }\n });\n\n return (\n <Box>\n <Box\n alignItems={variant === 'outgoing' ? 'flex-end' : 'flex-start'}\n paddingStart={variant === 'outgoing' ? 0 : 12}\n paddingEnd={variant === 'outgoing' ? 12 : 0}\n >\n <PressBox onPress={() => onPress?.(parentMessage, childMessage)} style={styles.senderLabel}>\n <Icon icon={'reply-filled'} size={13} color={colors.onBackground03} containerStyle={{ marginEnd: 4 }} />\n <Text caption1 color={colors.onBackground03}>\n {STRINGS.LABELS.REPLY_FROM_SENDER_TO_RECEIVER(childMessage, parentMessage, currentUser?.userId)}\n </Text>\n </PressBox>\n </Box>\n <Box\n flexDirection={'row'}\n justifyContent={variant === 'outgoing' ? 'flex-end' : 'flex-start'}\n style={styles.messageContainer}\n >\n <PressBox onPress={() => onPress?.(parentMessage, childMessage)}>{parentMessageComponent}</PressBox>\n </Box>\n </Box>\n );\n};\n\nconst styles = createStyleSheet({\n messageContainer: {\n opacity: 0.5,\n marginTop: 4,\n marginBottom: -6,\n },\n bubbleContainer: {\n maxWidth: 220,\n overflow: 'hidden',\n flexDirection: 'row',\n alignItems: 'center',\n borderRadius: 16,\n paddingHorizontal: 12,\n paddingBottom: 12,\n paddingTop: 6,\n },\n image: {\n width: 156,\n height: 104,\n borderRadius: 16,\n overflow: 'hidden',\n },\n fileIcon: {\n width: 16,\n height: 16,\n borderRadius: 10,\n marginEnd: 4,\n marginTop: 2,\n },\n senderLabel: {\n flexDirection: 'row',\n },\n});\n\nexport default GroupChannelMessageParentMessage;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,2BAAA,GAAAD,OAAA;AAUA,IAAAE,WAAA,GAAAF,OAAA;AAYA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AAA8F,SAAAK,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAP,wBAAAO,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAU9F,MAAMW,gCAAgC,GAAGA,CAAC;EAAEC,OAAO;EAAEC,OAAO;EAAEC,OAAO;EAAEC,YAAY;EAAEC;AAAe,CAAC,KAAK;EACxG,MAAM;IAAEC;EAAY,CAAC,GAAG,IAAAC,2BAAe,EAAC,CAAC;EACzC,MAAMC,kBAAkB,GAAG,IAAAC,iBAAU,EAACC,mCAAoB,CAACC,MAAM,CAAC;EAClE,MAAM;IAAEC,MAAM;IAAEC,MAAM;IAAEC;EAAQ,CAAC,GAAG,IAAAC,yCAAa,EAAC,CAAC;EACnD,MAAM;IAAEC;EAAQ,CAAC,GAAG,IAAAC,2BAAe,EAAC,CAAC;EACrC,MAAM;IAAEC;EAAa,CAAC,GAAG,IAAAC,8BAAkB,EAAC,CAAC;EAE7C,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAC,eAAQ,EAAC,MAAMnB,OAAO,CAAC;EACjE,MAAMoB,IAAI,GAAG,IAAAC,0BAAc,EAACJ,aAAa,CAAC;EAE1C,IAAAK,gBAAS,EAAC,MAAM;IACd,OAAOjB,kBAAkB,CAACkB,SAAS,CAAC,CAAC;MAAEH,IAAI;MAAEI;IAAK,CAAC,KAAK;MACtD,IAAIJ,IAAI,KAAK,kBAAkB,EAAE;QAC/B,MAAMK,aAAa,GAAGD,IAAI,CAACE,QAAQ,CAACC,IAAI,CAAEC,EAAE,IAAsD;UAChG,OAAOA,EAAE,CAACC,SAAS,KAAKZ,aAAa,CAACY,SAAS;QACjD,CAAC,CAAC;QACF,IAAIJ,aAAa,EAAEP,gBAAgB,CAACO,aAAa,CAAC;MACpD;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMK,qBAAqB,GAAI9B,OAAe,IAAK;IACjD,oBACE9B,MAAA,CAAAa,OAAA,CAAAgD,aAAA,CAAC1D,2BAAA,CAAA2D,GAAG;MACFC,KAAK,EAAEC,MAAM,CAACC,eAAgB;MAC9BC,eAAe,EAAE3B,MAAM,CAAC;QAAE4B,KAAK,EAAE1B,OAAO,CAAC2B,aAAa;QAAEC,IAAI,EAAE5B,OAAO,CAAC6B;MAAc,CAAC;IAAE,gBAEvFtE,MAAA,CAAAa,OAAA,CAAAgD,aAAA,CAAC1D,2BAAA,CAAAoE,IAAI;MAACC,KAAK;MAACC,KAAK,EAAEjC,MAAM,CAACkC,cAAe;MAACC,oBAAoB;MAACC,aAAa,EAAE,CAAE;MAACC,aAAa,EAAE;IAAO,GACpG/C,OACG,CACH,CAAC;EAEV,CAAC;EAED,MAAMgD,iCAAiC,GAAIC,GAAW,IAAK;IACzD,oBACE/E,MAAA,CAAAa,OAAA,CAAAgD,aAAA,CAAC1D,2BAAA,CAAA6E,cAAc;MACbjB,KAAK,EAAEC,MAAM,CAACiB,KAAM;MACpBC,QAAQ,EAAE,EAAG;MACbC,MAAM,EAAEJ,GAAI;MACZK,6BAA6B,EAAGC,GAAG,IAAKxC,YAAY,CAACyC,iBAAiB,CAAC;QAAEP,GAAG,EAAEM,GAAG;QAAEE,SAAS,EAAE;MAAK,CAAC;IAAE,CACvG,CAAC;EAEN,CAAC;EACD,MAAMC,0BAA0B,GAAIT,GAAW,IAAK;IAClD,oBAAO/E,MAAA,CAAAa,OAAA,CAAAgD,aAAA,CAAC1D,2BAAA,CAAAsF,oBAAoB;MAAC1B,KAAK,EAAEC,MAAM,CAACiB,KAAM;MAACE,MAAM,EAAE;QAAEE,GAAG,EAAEN;MAAI;IAAE,CAAE,CAAC;EAC5E,CAAC;EACD,MAAMW,+BAA+B,GAAIC,IAAY,IAAK;IACxD,oBACE3F,MAAA,CAAAa,OAAA,CAAAgD,aAAA,CAAC1D,2BAAA,CAAA2D,GAAG;MACFC,KAAK,EAAEC,MAAM,CAACC,eAAgB;MAC9BC,eAAe,EAAE3B,MAAM,CAAC;QAAE4B,KAAK,EAAE1B,OAAO,CAAC2B,aAAa;QAAEC,IAAI,EAAE5B,OAAO,CAAC6B;MAAc,CAAC;IAAE,gBAEvFtE,MAAA,CAAAa,OAAA,CAAAgD,aAAA,CAAC1D,2BAAA,CAAAyF,IAAI;MACHC,IAAI,EAAE,IAAAC,sCAA0B,EAAC5C,IAAI,CAAE;MACvC6C,IAAI,EAAE,EAAG;MACTtB,KAAK,EAAEjC,MAAM,CAACkC,cAAe;MAC7BsB,cAAc,EAAEhC,MAAM,CAACiC;IAAS,CACjC,CAAC,eACFjG,MAAA,CAAAa,OAAA,CAAAgD,aAAA,CAAC1D,2BAAA,CAAAoE,IAAI;MAACC,KAAK;MAACC,KAAK,EAAEjC,MAAM,CAACkC,cAAe;MAACE,aAAa,EAAE,CAAE;MAACC,aAAa,EAAE;IAAS,GACjF,IAAAqB,oBAAQ,EAACP,IAAI,EAAE;MAAEQ,IAAI,EAAE,KAAK;MAAEC,MAAM,EAAE;IAAG,CAAC,CACvC,CACH,CAAC;EAEV,CAAC;EAED,MAAMC,sBAAsB,GAAG,IAAAC,mBAAO,EAAC,MAAM;IAC3C,IAAIzE,OAAO,CAAC0E,sBAAsB,GAAGxD,aAAa,CAACyD,SAAS,EAAE;MAC5D,OAAO5C,qBAAqB,CAACjB,OAAO,CAAC8D,MAAM,CAACC,mBAAmB,CAAC;IAClE;IAEA,QAAQxD,IAAI;MACV,KAAK,MAAM;MACX,KAAK,gBAAgB;QAAE;UACrB,OAAOU,qBAAqB,CAAEb,aAAa,CAAyBjB,OAAO,CAAC;QAC9E;MACA,KAAK,MAAM;MACX,KAAK,YAAY;QAAE;UACjB,OAAO4D,+BAA+B,CAAE3C,aAAa,CAAyB4C,IAAI,CAAC;QACrF;MACA,KAAK,YAAY;QAAE;UACjB,OAAOb,iCAAiC,CAAC,IAAA6B,0CAA8B,EAAC5D,aAAoC,CAAC,CAAC;QAChH;MACA,KAAK,YAAY;QAAE;UACjB,OAAOyC,0BAA0B,CAAC,IAAAmB,0CAA8B,EAAC5D,aAAoC,CAAC,CAAC;QACzG;MACA,KAAK,YAAY;QAAE;UACjB,OAAOa,qBAAqB,CAACjB,OAAO,CAAC8D,MAAM,CAACG,aAAa,CAAC;QAC5D;MACA;QAAS;UACP,OAAO,IAAI;QACb;IACF;EACF,CAAC,CAAC;EAEF,oBACE5G,MAAA,CAAAa,OAAA,CAAAgD,aAAA,CAAC1D,2BAAA,CAAA2D,GAAG,qBACF9D,MAAA,CAAAa,OAAA,CAAAgD,aAAA,CAAC1D,2BAAA,CAAA2D,GAAG;IACF+C,UAAU,EAAEjF,OAAO,KAAK,UAAU,GAAG,UAAU,GAAG,YAAa;IAC/DkF,YAAY,EAAElF,OAAO,KAAK,UAAU,GAAG,CAAC,GAAG,EAAG;IAC9CmF,UAAU,EAAEnF,OAAO,KAAK,UAAU,GAAG,EAAE,GAAG;EAAE,gBAE5C5B,MAAA,CAAAa,OAAA,CAAAgD,aAAA,CAAC1D,2BAAA,CAAA6G,QAAQ;IAAChF,OAAO,EAAEA,CAAA,KAAMA,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAGe,aAAa,EAAEhB,YAAY,CAAE;IAACgC,KAAK,EAAEC,MAAM,CAACiD;EAAY,gBACzFjH,MAAA,CAAAa,OAAA,CAAAgD,aAAA,CAAC1D,2BAAA,CAAAyF,IAAI;IAACC,IAAI,EAAE,cAAe;IAACE,IAAI,EAAE,EAAG;IAACtB,KAAK,EAAEjC,MAAM,CAACkC,cAAe;IAACsB,cAAc,EAAE;MAAEkB,SAAS,EAAE;IAAE;EAAE,CAAE,CAAC,eACxGlH,MAAA,CAAAa,OAAA,CAAAgD,aAAA,CAAC1D,2BAAA,CAAAoE,IAAI;IAAC4C,QAAQ;IAAC1C,KAAK,EAAEjC,MAAM,CAACkC;EAAe,GACzC/B,OAAO,CAAC8D,MAAM,CAACW,6BAA6B,CAACrF,YAAY,EAAEgB,aAAa,EAAEd,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEoF,MAAM,CAC1F,CACE,CACP,CAAC,eACNrH,MAAA,CAAAa,OAAA,CAAAgD,aAAA,CAAC1D,2BAAA,CAAA2D,GAAG;IACFwD,aAAa,EAAE,KAAM;IACrBC,cAAc,EAAE3F,OAAO,KAAK,UAAU,GAAG,UAAU,GAAG,YAAa;IACnEmC,KAAK,EAAEC,MAAM,CAACwD;EAAiB,gBAE/BxH,MAAA,CAAAa,OAAA,CAAAgD,aAAA,CAAC1D,2BAAA,CAAA6G,QAAQ;IAAChF,OAAO,EAAEA,CAAA,KAAMA,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAGe,aAAa,EAAEhB,YAAY;EAAE,GAAEsE,sBAAiC,CAChG,CACF,CAAC;AAEV,CAAC;AAED,MAAMrC,MAAM,GAAG,IAAAyD,4CAAgB,EAAC;EAC9BD,gBAAgB,EAAE;IAChBE,OAAO,EAAE,GAAG;IACZC,SAAS,EAAE,CAAC;IACZC,YAAY,EAAE,CAAC;EACjB,CAAC;EACD3D,eAAe,EAAE;IACf4D,QAAQ,EAAE,GAAG;IACbC,QAAQ,EAAE,QAAQ;IAClBR,aAAa,EAAE,KAAK;IACpBT,UAAU,EAAE,QAAQ;IACpBkB,YAAY,EAAE,EAAE;IAChBC,iBAAiB,EAAE,EAAE;IACrBC,aAAa,EAAE,EAAE;IACjBC,UAAU,EAAE;EACd,CAAC;EACDjD,KAAK,EAAE;IACLkD,KAAK,EAAE,GAAG;IACVC,MAAM,EAAE,GAAG;IACXL,YAAY,EAAE,EAAE;IAChBD,QAAQ,EAAE;EACZ,CAAC;EACD7B,QAAQ,EAAE;IACRkC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVL,YAAY,EAAE,EAAE;IAChBb,SAAS,EAAE,CAAC;IACZS,SAAS,EAAE;EACb,CAAC;EACDV,WAAW,EAAE;IACXK,aAAa,EAAE;EACjB;AACF,CAAC,CAAC;AAAC,IAAAe,QAAA,GAAAC,OAAA,CAAAzH,OAAA,GAEYc,gCAAgC","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_uikitReactNativeFoundation","_uikitUtils","_moduleContext","_useContext","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","GroupChannelMessageParentMessage","variant","channel","message","childMessage","onPress","currentUser","useSendbirdChat","groupChannelPubSub","useContext","GroupChannelContexts","PubSub","select","colors","palette","useUIKitTheme","STRINGS","useLocalization","mediaService","usePlatformService","parentMessage","setParentMessage","useState","type","getMessageType","useEffect","subscribe","data","updatedParent","messages","find","it","messageId","renderMessageWithText","createElement","Box","style","styles","bubbleContainer","backgroundColor","light","background100","dark","background400","Text","body3","color","onBackground03","suppressHighlighting","numberOfLines","ellipsizeMode","renderFileMessageAsVideoThumbnail","url","VideoThumbnail","image","iconSize","source","fetchThumbnailFromVideoSource","uri","getVideoThumbnail","timeMills","renderFileMessageAsPreview","ImageWithPlaceholder","renderFileMessageAsDownloadable","name","Icon","icon","getFileIconFromMessageType","size","containerStyle","fileIcon","truncate","mode","maxLen","parentMessageComponent","useIIFE","messageOffsetTimestamp","createdAt","LABELS","MESSAGE_UNAVAILABLE","getThumbnailUriFromFileMessage","VOICE_MESSAGE","alignItems","paddingStart","paddingEnd","PressBox","senderLabel","marginEnd","caption1","REPLY_FROM_SENDER_TO_RECEIVER","userId","flexDirection","justifyContent","messageContainer","createStyleSheet","opacity","marginTop","marginBottom","maxWidth","overflow","borderRadius","paddingHorizontal","paddingBottom","paddingTop","width","height","_default","exports"],"sources":["GroupChannelMessageParentMessage.tsx"],"sourcesContent":["import React, { useContext, useEffect, useState } from 'react';\n\nimport {\n Box,\n Icon,\n ImageWithPlaceholder,\n PressBox,\n Text,\n VideoThumbnail,\n createStyleSheet,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdFileMessage,\n SendbirdGroupChannel,\n SendbirdMessage,\n SendbirdUserMessage,\n getFileIconFromMessageType,\n getMessageType,\n getThumbnailUriFromFileMessage,\n truncate,\n useIIFE,\n} from '@sendbird/uikit-utils';\n\nimport { GroupChannelContexts } from '../../domain/groupChannel/module/moduleContext';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../../hooks/useContext';\n\ntype Props = {\n variant: 'outgoing' | 'incoming';\n channel: SendbirdGroupChannel;\n message: SendbirdUserMessage | SendbirdFileMessage;\n childMessage: SendbirdUserMessage | SendbirdFileMessage;\n onPress?: (parentMessage: SendbirdMessage, childMessage: SendbirdUserMessage | SendbirdFileMessage) => void;\n};\n\nconst GroupChannelMessageParentMessage = ({ variant, channel, message, childMessage, onPress }: Props) => {\n const { currentUser } = useSendbirdChat();\n const groupChannelPubSub = useContext(GroupChannelContexts.PubSub);\n const { select, colors, palette } = useUIKitTheme();\n const { STRINGS } = useLocalization();\n const { mediaService } = usePlatformService();\n\n const [parentMessage, setParentMessage] = useState(() => message);\n const type = getMessageType(parentMessage);\n\n useEffect(() => {\n return groupChannelPubSub.subscribe(({ type, data }) => {\n if (type === 'MESSAGES_UPDATED') {\n const updatedParent = data.messages.find((it): it is SendbirdUserMessage | SendbirdFileMessage => {\n return it.messageId === parentMessage.messageId;\n });\n if (updatedParent) setParentMessage(updatedParent);\n }\n });\n }, []);\n\n const renderMessageWithText = (message: string) => {\n return (\n <Box\n style={styles.bubbleContainer}\n backgroundColor={select({ light: palette.background100, dark: palette.background400 })}\n >\n <Text body3 color={colors.onBackground03} suppressHighlighting numberOfLines={2} ellipsizeMode={'tail'}>\n {message}\n </Text>\n </Box>\n );\n };\n\n const renderFileMessageAsVideoThumbnail = (url: string) => {\n return (\n <VideoThumbnail\n style={styles.image}\n iconSize={18}\n source={url}\n fetchThumbnailFromVideoSource={(uri) => mediaService.getVideoThumbnail({ url: uri, timeMills: 1000 })}\n />\n );\n };\n const renderFileMessageAsPreview = (url: string) => {\n return <ImageWithPlaceholder style={styles.image} source={{ uri: url }} />;\n };\n const renderFileMessageAsDownloadable = (name: string) => {\n return (\n <Box\n style={styles.bubbleContainer}\n backgroundColor={select({ light: palette.background100, dark: palette.background400 })}\n >\n <Icon\n icon={getFileIconFromMessageType(type)}\n size={16}\n color={colors.onBackground03}\n containerStyle={styles.fileIcon}\n />\n <Text body3 color={colors.onBackground03} numberOfLines={1} ellipsizeMode={'middle'}>\n {truncate(name, { mode: 'mid', maxLen: 20 })}\n </Text>\n </Box>\n );\n };\n\n const parentMessageComponent = useIIFE(() => {\n if (channel.messageOffsetTimestamp > parentMessage.createdAt) {\n return renderMessageWithText(STRINGS.LABELS.MESSAGE_UNAVAILABLE);\n }\n\n switch (type) {\n case 'user':\n case 'user.opengraph': {\n return renderMessageWithText((parentMessage as SendbirdUserMessage).message);\n }\n case 'file':\n case 'file.audio': {\n return renderFileMessageAsDownloadable((parentMessage as SendbirdFileMessage).name);\n }\n case 'file.video': {\n return renderFileMessageAsVideoThumbnail(getThumbnailUriFromFileMessage(parentMessage as SendbirdFileMessage));\n }\n case 'file.image': {\n return renderFileMessageAsPreview(getThumbnailUriFromFileMessage(parentMessage as SendbirdFileMessage));\n }\n case 'file.voice': {\n return renderMessageWithText(STRINGS.LABELS.VOICE_MESSAGE);\n }\n default: {\n return null;\n }\n }\n });\n\n return (\n <Box>\n <Box\n alignItems={variant === 'outgoing' ? 'flex-end' : 'flex-start'}\n paddingStart={variant === 'outgoing' ? 0 : 12}\n paddingEnd={variant === 'outgoing' ? 12 : 0}\n >\n <PressBox onPress={() => onPress?.(parentMessage, childMessage)} style={styles.senderLabel}>\n <Icon icon={'reply-filled'} size={13} color={colors.onBackground03} containerStyle={{ marginEnd: 4 }} />\n <Text caption1 color={colors.onBackground03}>\n {STRINGS.LABELS.REPLY_FROM_SENDER_TO_RECEIVER(childMessage, parentMessage, currentUser?.userId)}\n </Text>\n </PressBox>\n </Box>\n <Box\n flexDirection={'row'}\n justifyContent={variant === 'outgoing' ? 'flex-end' : 'flex-start'}\n style={styles.messageContainer}\n >\n <PressBox onPress={() => onPress?.(parentMessage, childMessage)}>{parentMessageComponent}</PressBox>\n </Box>\n </Box>\n );\n};\n\nconst styles = createStyleSheet({\n messageContainer: {\n opacity: 0.5,\n marginTop: 4,\n marginBottom: -6,\n },\n bubbleContainer: {\n maxWidth: 220,\n overflow: 'hidden',\n flexDirection: 'row',\n alignItems: 'center',\n borderRadius: 16,\n paddingHorizontal: 12,\n paddingBottom: 12,\n paddingTop: 6,\n },\n image: {\n width: 156,\n height: 104,\n borderRadius: 16,\n overflow: 'hidden',\n },\n fileIcon: {\n width: 16,\n height: 16,\n borderRadius: 10,\n marginEnd: 4,\n marginTop: 2,\n },\n senderLabel: {\n flexDirection: 'row',\n },\n});\n\nexport default GroupChannelMessageParentMessage;\n"],"mappings":"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","ignoreList":[]}
@@ -19,8 +19,7 @@ var _GroupChannelMessageOutgoingStatus = _interopRequireDefault(require("./Group
19
19
  var _GroupChannelMessageParentMessage = _interopRequireDefault(require("./GroupChannelMessageParentMessage"));
20
20
  var _GroupChannelMessageReplyInfo = _interopRequireDefault(require("./GroupChannelMessageReplyInfo"));
21
21
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
22
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
23
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
22
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
24
23
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
25
24
  const GroupChannelMessageRenderer = ({
26
25
  channel,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_uikitReactNativeFoundation","_uikitUtils","_constants","_moduleContext","_useContext","_types","_ReactionAddons","_GroupChannelMessageDateSeparator","_interopRequireDefault","_GroupChannelMessageFocusAnimation","_GroupChannelMessageNewLine","_GroupChannelMessageOutgoingStatus","_GroupChannelMessageParentMessage","_GroupChannelMessageReplyInfo","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","GroupChannelMessageRenderer","channel","message","onPress","onLongPress","onPressParentMessage","onShowUserProfile","onReplyInThreadMessage","enableMessageGrouping","focused","prevMessage","nextMessage","isFirstUnreadMessage","hideParentMessage","handlers","useSBUHandlers","playerUnsubscribes","useRef","palette","useUIKitTheme","sbOptions","currentUser","mentionManager","voiceMessageStatusManager","useSendbirdChat","STRINGS","useLocalization","mediaService","playerService","usePlatformService","groupWithPrev","groupWithNext","calcMessageGrouping","Boolean","uikit","groupChannel","replyType","shouldRenderParentMessage","variant","isMyMessage","userId","reactionChildren","useIIFE","configs","uikitWithAppInfo","shouldRenderReaction","isSuper","enableReactionsSupergroup","enableReactions","reactions","createElement","ReactionAddons","Message","replyInfo","threadInfo","replyCount","resetPlayer","current","forEach","unsubscribe","reset","messageProps","onPressURL","url","onOpenURL","onPressAvatar","sender","onPressMentionedUser","mentionedUser","onToggleVoiceMessage","state","setState","isVoiceMessage","sendingStatus","uri","pause","play","shouldSeekToTime","duration","currentTime","seekFinished","forPlayback","addPlaybackListener","stopped","setCurrentTime","channelUrl","messageId","prevState","forState","addStateListener","status","push","seek","groupedWithPrev","groupedWithNext","children","parentMessage","childMessage","strings","edited","GROUP_CHANNEL","MESSAGE_BUBBLE_EDITED_POSTFIX","senderName","nickname","LABELS","USER_NO_NAME","sentDate","MESSAGE_BUBBLE_TIME","fileName","isFileMessage","MESSAGE_BUBBLE_FILE_TITLE","unknownTitle","MESSAGE_BUBBLE_UNKNOWN_TITLE","unknownDescription","MESSAGE_BUBBLE_UNKNOWN_DESC","userMessageProps","renderRegexTextChildren","shouldUseMentionedMessageTemplate","enableMention","mentionedMessageTemplate","regexTextPatterns","regex","templateRegex","replacer","match","groups","parentProps","index","keyPrefix","_message$mentionedUse","user","mentionedUsers","find","it","mentionColor","onBackgroundLight01","color","Text","key","_messageProps$onPress","suppressHighlighting","style","fontWeight","backgroundColor","highlight","asMentionedMessageText","renderMessage","getMessageType","GroupChannelMessage","Admin","ogMetaData","enableOgtag","OpenGraphUser","User","File","ImageFile","VideoFile","fetchThumbnailFromVideoSource","getVideoThumbnail","timeMills","VoiceFile","durationMetaArrayKey","VOICE_MESSAGE_META_ARRAY_DURATION_KEY","initialCurrentTime","getCurrentTime","onSubscribeStatus","subscribe","onUnsubscribeStatus","onUnmount","catch","_","Unknown","messageGap","isAdminMessage","shouldRenderNewLine","enableMarkAsUnread","Box","paddingHorizontal","marginBottom","GroupChannelTypingIndicatorBubble","publish","useContext","GroupChannelContexts","PubSub","typingUsers","TypingIndicator","shouldRenderBubble","enableTypingIndicator","typingIndicatorTypes","TypingIndicatorType","Bubble","useEffect","type","marginTop","TypingIndicatorBubble","exports","_default","React","memo"],"sources":["index.tsx"],"sourcesContent":["import React, { useContext, useEffect, useRef } from 'react';\n\nimport type { GroupChannelMessageProps, RegexTextPattern } from '@sendbird/uikit-react-native-foundation';\nimport {\n Box,\n GroupChannelMessage,\n Text,\n TypingIndicatorBubble,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdAdminMessage,\n SendbirdFileMessage,\n SendbirdMessage,\n SendbirdUserMessage,\n calcMessageGrouping,\n getMessageType,\n isMyMessage,\n isVoiceMessage,\n shouldRenderParentMessage,\n shouldRenderReaction,\n useIIFE,\n} from '@sendbird/uikit-utils';\n\nimport { VOICE_MESSAGE_META_ARRAY_DURATION_KEY } from '../../constants';\nimport { GroupChannelContexts } from '../../domain/groupChannel/module/moduleContext';\nimport type { GroupChannelProps } from '../../domain/groupChannel/types';\nimport { useLocalization, usePlatformService, useSBUHandlers, useSendbirdChat } from '../../hooks/useContext';\nimport { TypingIndicatorType } from '../../types';\nimport { ReactionAddons } from '../ReactionAddons';\nimport GroupChannelMessageDateSeparator from './GroupChannelMessageDateSeparator';\nimport GroupChannelMessageFocusAnimation from './GroupChannelMessageFocusAnimation';\nimport GroupChannelMessageNewLine from './GroupChannelMessageNewLine';\nimport GroupChannelMessageOutgoingStatus from './GroupChannelMessageOutgoingStatus';\nimport GroupChannelMessageParentMessage from './GroupChannelMessageParentMessage';\nimport GroupChannelMessageReplyInfo from './GroupChannelMessageReplyInfo';\n\nconst GroupChannelMessageRenderer: GroupChannelProps['Fragment']['renderMessage'] = ({\n channel,\n message,\n onPress,\n onLongPress,\n onPressParentMessage,\n onShowUserProfile,\n onReplyInThreadMessage,\n enableMessageGrouping,\n focused,\n prevMessage,\n nextMessage,\n isFirstUnreadMessage,\n hideParentMessage,\n}) => {\n const handlers = useSBUHandlers();\n const playerUnsubscribes = useRef<(() => void)[]>([]);\n const { palette } = useUIKitTheme();\n const { sbOptions, currentUser, mentionManager, voiceMessageStatusManager } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { mediaService, playerService } = usePlatformService();\n const { groupWithPrev, groupWithNext } = calcMessageGrouping(\n Boolean(enableMessageGrouping),\n message,\n prevMessage,\n nextMessage,\n sbOptions.uikit.groupChannel.channel.replyType === 'thread',\n shouldRenderParentMessage(message, hideParentMessage),\n );\n\n const variant = isMyMessage(message, currentUser?.userId) ? 'outgoing' : 'incoming';\n\n const reactionChildren = useIIFE(() => {\n const configs = sbOptions.uikitWithAppInfo.groupChannel.channel;\n if (\n shouldRenderReaction(channel, channel.isSuper ? configs.enableReactionsSupergroup : configs.enableReactions) &&\n message.reactions &&\n message.reactions.length > 0\n ) {\n return <ReactionAddons.Message channel={channel} message={message} />;\n }\n return null;\n });\n\n const replyInfo = useIIFE(() => {\n if (sbOptions.uikit.groupChannel.channel.replyType !== 'thread') return null;\n if (!channel || !message.threadInfo || !message.threadInfo.replyCount) return null;\n return <GroupChannelMessageReplyInfo channel={channel} message={message} onPress={onReplyInThreadMessage} />;\n });\n\n const resetPlayer = async () => {\n playerUnsubscribes.current.forEach((unsubscribe) => {\n try {\n unsubscribe();\n } catch {}\n });\n playerUnsubscribes.current.length = 0;\n await playerService.reset();\n };\n\n const messageProps: Omit<GroupChannelMessageProps<SendbirdMessage>, 'message'> = {\n channel,\n variant,\n onPress,\n onLongPress,\n onPressURL: (url) => handlers.onOpenURL(url),\n onPressAvatar: () => {\n if ('sender' in message) onShowUserProfile?.(message.sender);\n },\n onPressMentionedUser: (mentionedUser) => {\n if (mentionedUser) onShowUserProfile?.(mentionedUser);\n },\n onToggleVoiceMessage: async (state, setState) => {\n if (isVoiceMessage(message) && message.sendingStatus === 'succeeded') {\n if (playerService.uri === message.url) {\n if (playerService.state === 'playing') {\n await playerService.pause();\n } else {\n await playerService.play(message.url);\n }\n } else {\n if (playerService.state !== 'idle') {\n await resetPlayer();\n }\n\n const shouldSeekToTime = state.duration > state.currentTime && state.currentTime > 0;\n let seekFinished = !shouldSeekToTime;\n\n const forPlayback = playerService.addPlaybackListener(({ stopped, currentTime, duration }) => {\n voiceMessageStatusManager.setCurrentTime(message.channelUrl, message.messageId, stopped ? 0 : currentTime);\n if (seekFinished) {\n setState((prevState) => ({ ...prevState, currentTime: stopped ? 0 : currentTime, duration }));\n }\n });\n const forState = playerService.addStateListener((state) => {\n switch (state) {\n case 'preparing':\n setState((prevState) => ({ ...prevState, status: 'preparing' }));\n break;\n case 'playing':\n setState((prevState) => ({ ...prevState, status: 'playing' }));\n break;\n case 'idle':\n case 'paused': {\n setState((prevState) => ({ ...prevState, status: 'paused' }));\n break;\n }\n case 'stopped':\n setState((prevState) => ({ ...prevState, status: 'paused' }));\n break;\n }\n });\n playerUnsubscribes.current.push(forPlayback, forState);\n\n await playerService.play(message.url);\n if (shouldSeekToTime) {\n await playerService.seek(state.currentTime);\n seekFinished = true;\n }\n }\n }\n },\n groupedWithPrev: groupWithPrev,\n groupedWithNext: groupWithNext,\n children: reactionChildren,\n replyInfo: replyInfo,\n sendingStatus: isMyMessage(message, currentUser?.userId) ? (\n <GroupChannelMessageOutgoingStatus channel={channel} message={message} />\n ) : null,\n parentMessage: shouldRenderParentMessage(message, hideParentMessage) ? (\n <GroupChannelMessageParentMessage\n channel={channel}\n message={message.parentMessage}\n variant={variant}\n childMessage={message}\n onPress={onPressParentMessage}\n />\n ) : null,\n strings: {\n edited: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_EDITED_POSTFIX,\n senderName: ('sender' in message && message.sender.nickname) || STRINGS.LABELS.USER_NO_NAME,\n sentDate: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_TIME(message),\n fileName: message.isFileMessage() ? STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_FILE_TITLE(message) : '',\n unknownTitle: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_TITLE(message),\n unknownDescription: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_DESC(message),\n },\n };\n\n const userMessageProps: {\n renderRegexTextChildren: (message: SendbirdUserMessage) => string;\n regexTextPatterns: RegexTextPattern[];\n } = {\n renderRegexTextChildren: (message) => {\n if (\n mentionManager.shouldUseMentionedMessageTemplate(message, sbOptions.uikit.groupChannel.channel.enableMention)\n ) {\n return message.mentionedMessageTemplate ?? '';\n } else {\n return message.message;\n }\n },\n regexTextPatterns: [\n {\n regex: mentionManager.templateRegex,\n replacer({ match, groups, parentProps, index, keyPrefix }) {\n const user = message.mentionedUsers?.find((it) => it.userId === groups[2]);\n if (user) {\n const mentionColor =\n !isMyMessage(message, currentUser?.userId) && user.userId === currentUser?.userId\n ? palette.onBackgroundLight01\n : parentProps?.color;\n\n return (\n <Text\n {...parentProps}\n key={`${keyPrefix}-${index}`}\n color={mentionColor}\n onPress={() => messageProps.onPressMentionedUser?.(user)}\n onLongPress={messageProps.onLongPress}\n suppressHighlighting\n style={[\n parentProps?.style,\n { fontWeight: '700' },\n user.userId === currentUser?.userId && { backgroundColor: palette.highlight },\n ]}\n >\n {`${mentionManager.asMentionedMessageText(user)}`}\n </Text>\n );\n }\n return match;\n },\n },\n ],\n };\n\n const renderMessage = () => {\n switch (getMessageType(message)) {\n case 'admin': {\n return <GroupChannelMessage.Admin message={message as SendbirdAdminMessage} {...messageProps} />;\n }\n case 'user':\n case 'user.opengraph': {\n if (message.ogMetaData && sbOptions.uikitWithAppInfo.groupChannel.channel.enableOgtag) {\n return (\n <GroupChannelMessage.OpenGraphUser\n message={message as SendbirdUserMessage}\n {...userMessageProps}\n {...messageProps}\n />\n );\n } else {\n return (\n <GroupChannelMessage.User\n message={message as SendbirdUserMessage}\n {...userMessageProps}\n {...messageProps}\n />\n );\n }\n }\n case 'file':\n case 'file.audio': {\n return <GroupChannelMessage.File message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.image': {\n return <GroupChannelMessage.ImageFile message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.video': {\n return (\n <GroupChannelMessage.VideoFile\n message={message as SendbirdFileMessage}\n fetchThumbnailFromVideoSource={(uri) => mediaService.getVideoThumbnail({ url: uri, timeMills: 1000 })}\n {...messageProps}\n />\n );\n }\n case 'file.voice': {\n return (\n <GroupChannelMessage.VoiceFile\n message={message as SendbirdFileMessage}\n durationMetaArrayKey={VOICE_MESSAGE_META_ARRAY_DURATION_KEY}\n initialCurrentTime={voiceMessageStatusManager.getCurrentTime(message.channelUrl, message.messageId)}\n onSubscribeStatus={voiceMessageStatusManager.subscribe}\n onUnsubscribeStatus={voiceMessageStatusManager.unsubscribe}\n onUnmount={() => {\n if (isVoiceMessage(message) && playerService.uri === message.url) {\n resetPlayer().catch((_) => {});\n }\n }}\n {...messageProps}\n />\n );\n }\n case 'unknown':\n default: {\n return <GroupChannelMessage.Unknown message={message} {...messageProps} />;\n }\n }\n };\n\n const messageGap = useIIFE(() => {\n if (message.isAdminMessage()) {\n if (nextMessage?.isAdminMessage()) {\n return 8;\n } else {\n return 16;\n }\n } else if (nextMessage && shouldRenderParentMessage(nextMessage, hideParentMessage)) {\n return 16;\n } else if (groupWithNext) {\n return 2;\n } else {\n return 16;\n }\n });\n\n const shouldRenderNewLine = sbOptions.uikit.groupChannel.channel.enableMarkAsUnread && isFirstUnreadMessage;\n\n return (\n <Box paddingHorizontal={16} marginBottom={messageGap}>\n <GroupChannelMessageDateSeparator message={message} prevMessage={prevMessage} />\n <GroupChannelMessageNewLine shouldRenderNewLine={shouldRenderNewLine} />\n <GroupChannelMessageFocusAnimation focused={focused}>{renderMessage()}</GroupChannelMessageFocusAnimation>\n </Box>\n );\n};\n\nexport const GroupChannelTypingIndicatorBubble = () => {\n const { sbOptions } = useSendbirdChat();\n const { publish } = useContext(GroupChannelContexts.PubSub);\n const { typingUsers } = useContext(GroupChannelContexts.TypingIndicator);\n\n const shouldRenderBubble = useIIFE(() => {\n if (typingUsers.length === 0) return false;\n if (!sbOptions.uikit.groupChannel.channel.enableTypingIndicator) return false;\n if (!sbOptions.uikit.groupChannel.channel.typingIndicatorTypes.has(TypingIndicatorType.Bubble)) return false;\n return true;\n });\n\n useEffect(() => {\n if (shouldRenderBubble) publish({ type: 'TYPING_BUBBLE_RENDERED' });\n }, [shouldRenderBubble]);\n\n if (!shouldRenderBubble) return null;\n return (\n <Box paddingHorizontal={16} marginTop={4} marginBottom={16}>\n <TypingIndicatorBubble typingUsers={typingUsers} />\n </Box>\n );\n};\n\nexport default React.memo(GroupChannelMessageRenderer);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_uikitReactNativeFoundation","_uikitUtils","_constants","_moduleContext","_useContext","_types","_ReactionAddons","_GroupChannelMessageDateSeparator","_interopRequireDefault","_GroupChannelMessageFocusAnimation","_GroupChannelMessageNewLine","_GroupChannelMessageOutgoingStatus","_GroupChannelMessageParentMessage","_GroupChannelMessageReplyInfo","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","GroupChannelMessageRenderer","channel","message","onPress","onLongPress","onPressParentMessage","onShowUserProfile","onReplyInThreadMessage","enableMessageGrouping","focused","prevMessage","nextMessage","isFirstUnreadMessage","hideParentMessage","handlers","useSBUHandlers","playerUnsubscribes","useRef","palette","useUIKitTheme","sbOptions","currentUser","mentionManager","voiceMessageStatusManager","useSendbirdChat","STRINGS","useLocalization","mediaService","playerService","usePlatformService","groupWithPrev","groupWithNext","calcMessageGrouping","Boolean","uikit","groupChannel","replyType","shouldRenderParentMessage","variant","isMyMessage","userId","reactionChildren","useIIFE","configs","uikitWithAppInfo","shouldRenderReaction","isSuper","enableReactionsSupergroup","enableReactions","reactions","createElement","ReactionAddons","Message","replyInfo","threadInfo","replyCount","resetPlayer","current","forEach","unsubscribe","reset","messageProps","onPressURL","url","onOpenURL","onPressAvatar","sender","onPressMentionedUser","mentionedUser","onToggleVoiceMessage","state","setState","isVoiceMessage","sendingStatus","uri","pause","play","shouldSeekToTime","duration","currentTime","seekFinished","forPlayback","addPlaybackListener","stopped","setCurrentTime","channelUrl","messageId","prevState","forState","addStateListener","status","push","seek","groupedWithPrev","groupedWithNext","children","parentMessage","childMessage","strings","edited","GROUP_CHANNEL","MESSAGE_BUBBLE_EDITED_POSTFIX","senderName","nickname","LABELS","USER_NO_NAME","sentDate","MESSAGE_BUBBLE_TIME","fileName","isFileMessage","MESSAGE_BUBBLE_FILE_TITLE","unknownTitle","MESSAGE_BUBBLE_UNKNOWN_TITLE","unknownDescription","MESSAGE_BUBBLE_UNKNOWN_DESC","userMessageProps","renderRegexTextChildren","shouldUseMentionedMessageTemplate","enableMention","mentionedMessageTemplate","regexTextPatterns","regex","templateRegex","replacer","match","groups","parentProps","index","keyPrefix","_message$mentionedUse","user","mentionedUsers","find","it","mentionColor","onBackgroundLight01","color","Text","key","_messageProps$onPress","suppressHighlighting","style","fontWeight","backgroundColor","highlight","asMentionedMessageText","renderMessage","getMessageType","GroupChannelMessage","Admin","ogMetaData","enableOgtag","OpenGraphUser","User","File","ImageFile","VideoFile","fetchThumbnailFromVideoSource","getVideoThumbnail","timeMills","VoiceFile","durationMetaArrayKey","VOICE_MESSAGE_META_ARRAY_DURATION_KEY","initialCurrentTime","getCurrentTime","onSubscribeStatus","subscribe","onUnsubscribeStatus","onUnmount","catch","_","Unknown","messageGap","isAdminMessage","shouldRenderNewLine","enableMarkAsUnread","Box","paddingHorizontal","marginBottom","GroupChannelTypingIndicatorBubble","publish","useContext","GroupChannelContexts","PubSub","typingUsers","TypingIndicator","shouldRenderBubble","enableTypingIndicator","typingIndicatorTypes","TypingIndicatorType","Bubble","useEffect","type","marginTop","TypingIndicatorBubble","exports","_default","React","memo"],"sources":["index.tsx"],"sourcesContent":["import React, { useContext, useEffect, useRef } from 'react';\n\nimport type { GroupChannelMessageProps, RegexTextPattern } from '@sendbird/uikit-react-native-foundation';\nimport {\n Box,\n GroupChannelMessage,\n Text,\n TypingIndicatorBubble,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdAdminMessage,\n SendbirdFileMessage,\n SendbirdMessage,\n SendbirdUserMessage,\n calcMessageGrouping,\n getMessageType,\n isMyMessage,\n isVoiceMessage,\n shouldRenderParentMessage,\n shouldRenderReaction,\n useIIFE,\n} from '@sendbird/uikit-utils';\n\nimport { VOICE_MESSAGE_META_ARRAY_DURATION_KEY } from '../../constants';\nimport { GroupChannelContexts } from '../../domain/groupChannel/module/moduleContext';\nimport type { GroupChannelProps } from '../../domain/groupChannel/types';\nimport { useLocalization, usePlatformService, useSBUHandlers, useSendbirdChat } from '../../hooks/useContext';\nimport { TypingIndicatorType } from '../../types';\nimport { ReactionAddons } from '../ReactionAddons';\nimport GroupChannelMessageDateSeparator from './GroupChannelMessageDateSeparator';\nimport GroupChannelMessageFocusAnimation from './GroupChannelMessageFocusAnimation';\nimport GroupChannelMessageNewLine from './GroupChannelMessageNewLine';\nimport GroupChannelMessageOutgoingStatus from './GroupChannelMessageOutgoingStatus';\nimport GroupChannelMessageParentMessage from './GroupChannelMessageParentMessage';\nimport GroupChannelMessageReplyInfo from './GroupChannelMessageReplyInfo';\n\nconst GroupChannelMessageRenderer: GroupChannelProps['Fragment']['renderMessage'] = ({\n channel,\n message,\n onPress,\n onLongPress,\n onPressParentMessage,\n onShowUserProfile,\n onReplyInThreadMessage,\n enableMessageGrouping,\n focused,\n prevMessage,\n nextMessage,\n isFirstUnreadMessage,\n hideParentMessage,\n}) => {\n const handlers = useSBUHandlers();\n const playerUnsubscribes = useRef<(() => void)[]>([]);\n const { palette } = useUIKitTheme();\n const { sbOptions, currentUser, mentionManager, voiceMessageStatusManager } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { mediaService, playerService } = usePlatformService();\n const { groupWithPrev, groupWithNext } = calcMessageGrouping(\n Boolean(enableMessageGrouping),\n message,\n prevMessage,\n nextMessage,\n sbOptions.uikit.groupChannel.channel.replyType === 'thread',\n shouldRenderParentMessage(message, hideParentMessage),\n );\n\n const variant = isMyMessage(message, currentUser?.userId) ? 'outgoing' : 'incoming';\n\n const reactionChildren = useIIFE(() => {\n const configs = sbOptions.uikitWithAppInfo.groupChannel.channel;\n if (\n shouldRenderReaction(channel, channel.isSuper ? configs.enableReactionsSupergroup : configs.enableReactions) &&\n message.reactions &&\n message.reactions.length > 0\n ) {\n return <ReactionAddons.Message channel={channel} message={message} />;\n }\n return null;\n });\n\n const replyInfo = useIIFE(() => {\n if (sbOptions.uikit.groupChannel.channel.replyType !== 'thread') return null;\n if (!channel || !message.threadInfo || !message.threadInfo.replyCount) return null;\n return <GroupChannelMessageReplyInfo channel={channel} message={message} onPress={onReplyInThreadMessage} />;\n });\n\n const resetPlayer = async () => {\n playerUnsubscribes.current.forEach((unsubscribe) => {\n try {\n unsubscribe();\n } catch {}\n });\n playerUnsubscribes.current.length = 0;\n await playerService.reset();\n };\n\n const messageProps: Omit<GroupChannelMessageProps<SendbirdMessage>, 'message'> = {\n channel,\n variant,\n onPress,\n onLongPress,\n onPressURL: (url) => handlers.onOpenURL(url),\n onPressAvatar: () => {\n if ('sender' in message) onShowUserProfile?.(message.sender);\n },\n onPressMentionedUser: (mentionedUser) => {\n if (mentionedUser) onShowUserProfile?.(mentionedUser);\n },\n onToggleVoiceMessage: async (state, setState) => {\n if (isVoiceMessage(message) && message.sendingStatus === 'succeeded') {\n if (playerService.uri === message.url) {\n if (playerService.state === 'playing') {\n await playerService.pause();\n } else {\n await playerService.play(message.url);\n }\n } else {\n if (playerService.state !== 'idle') {\n await resetPlayer();\n }\n\n const shouldSeekToTime = state.duration > state.currentTime && state.currentTime > 0;\n let seekFinished = !shouldSeekToTime;\n\n const forPlayback = playerService.addPlaybackListener(({ stopped, currentTime, duration }) => {\n voiceMessageStatusManager.setCurrentTime(message.channelUrl, message.messageId, stopped ? 0 : currentTime);\n if (seekFinished) {\n setState((prevState) => ({ ...prevState, currentTime: stopped ? 0 : currentTime, duration }));\n }\n });\n const forState = playerService.addStateListener((state) => {\n switch (state) {\n case 'preparing':\n setState((prevState) => ({ ...prevState, status: 'preparing' }));\n break;\n case 'playing':\n setState((prevState) => ({ ...prevState, status: 'playing' }));\n break;\n case 'idle':\n case 'paused': {\n setState((prevState) => ({ ...prevState, status: 'paused' }));\n break;\n }\n case 'stopped':\n setState((prevState) => ({ ...prevState, status: 'paused' }));\n break;\n }\n });\n playerUnsubscribes.current.push(forPlayback, forState);\n\n await playerService.play(message.url);\n if (shouldSeekToTime) {\n await playerService.seek(state.currentTime);\n seekFinished = true;\n }\n }\n }\n },\n groupedWithPrev: groupWithPrev,\n groupedWithNext: groupWithNext,\n children: reactionChildren,\n replyInfo: replyInfo,\n sendingStatus: isMyMessage(message, currentUser?.userId) ? (\n <GroupChannelMessageOutgoingStatus channel={channel} message={message} />\n ) : null,\n parentMessage: shouldRenderParentMessage(message, hideParentMessage) ? (\n <GroupChannelMessageParentMessage\n channel={channel}\n message={message.parentMessage}\n variant={variant}\n childMessage={message}\n onPress={onPressParentMessage}\n />\n ) : null,\n strings: {\n edited: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_EDITED_POSTFIX,\n senderName: ('sender' in message && message.sender.nickname) || STRINGS.LABELS.USER_NO_NAME,\n sentDate: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_TIME(message),\n fileName: message.isFileMessage() ? STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_FILE_TITLE(message) : '',\n unknownTitle: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_TITLE(message),\n unknownDescription: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_DESC(message),\n },\n };\n\n const userMessageProps: {\n renderRegexTextChildren: (message: SendbirdUserMessage) => string;\n regexTextPatterns: RegexTextPattern[];\n } = {\n renderRegexTextChildren: (message) => {\n if (\n mentionManager.shouldUseMentionedMessageTemplate(message, sbOptions.uikit.groupChannel.channel.enableMention)\n ) {\n return message.mentionedMessageTemplate ?? '';\n } else {\n return message.message;\n }\n },\n regexTextPatterns: [\n {\n regex: mentionManager.templateRegex,\n replacer({ match, groups, parentProps, index, keyPrefix }) {\n const user = message.mentionedUsers?.find((it) => it.userId === groups[2]);\n if (user) {\n const mentionColor =\n !isMyMessage(message, currentUser?.userId) && user.userId === currentUser?.userId\n ? palette.onBackgroundLight01\n : parentProps?.color;\n\n return (\n <Text\n {...parentProps}\n key={`${keyPrefix}-${index}`}\n color={mentionColor}\n onPress={() => messageProps.onPressMentionedUser?.(user)}\n onLongPress={messageProps.onLongPress}\n suppressHighlighting\n style={[\n parentProps?.style,\n { fontWeight: '700' },\n user.userId === currentUser?.userId && { backgroundColor: palette.highlight },\n ]}\n >\n {`${mentionManager.asMentionedMessageText(user)}`}\n </Text>\n );\n }\n return match;\n },\n },\n ],\n };\n\n const renderMessage = () => {\n switch (getMessageType(message)) {\n case 'admin': {\n return <GroupChannelMessage.Admin message={message as SendbirdAdminMessage} {...messageProps} />;\n }\n case 'user':\n case 'user.opengraph': {\n if (message.ogMetaData && sbOptions.uikitWithAppInfo.groupChannel.channel.enableOgtag) {\n return (\n <GroupChannelMessage.OpenGraphUser\n message={message as SendbirdUserMessage}\n {...userMessageProps}\n {...messageProps}\n />\n );\n } else {\n return (\n <GroupChannelMessage.User\n message={message as SendbirdUserMessage}\n {...userMessageProps}\n {...messageProps}\n />\n );\n }\n }\n case 'file':\n case 'file.audio': {\n return <GroupChannelMessage.File message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.image': {\n return <GroupChannelMessage.ImageFile message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.video': {\n return (\n <GroupChannelMessage.VideoFile\n message={message as SendbirdFileMessage}\n fetchThumbnailFromVideoSource={(uri) => mediaService.getVideoThumbnail({ url: uri, timeMills: 1000 })}\n {...messageProps}\n />\n );\n }\n case 'file.voice': {\n return (\n <GroupChannelMessage.VoiceFile\n message={message as SendbirdFileMessage}\n durationMetaArrayKey={VOICE_MESSAGE_META_ARRAY_DURATION_KEY}\n initialCurrentTime={voiceMessageStatusManager.getCurrentTime(message.channelUrl, message.messageId)}\n onSubscribeStatus={voiceMessageStatusManager.subscribe}\n onUnsubscribeStatus={voiceMessageStatusManager.unsubscribe}\n onUnmount={() => {\n if (isVoiceMessage(message) && playerService.uri === message.url) {\n resetPlayer().catch((_) => {});\n }\n }}\n {...messageProps}\n />\n );\n }\n case 'unknown':\n default: {\n return <GroupChannelMessage.Unknown message={message} {...messageProps} />;\n }\n }\n };\n\n const messageGap = useIIFE(() => {\n if (message.isAdminMessage()) {\n if (nextMessage?.isAdminMessage()) {\n return 8;\n } else {\n return 16;\n }\n } else if (nextMessage && shouldRenderParentMessage(nextMessage, hideParentMessage)) {\n return 16;\n } else if (groupWithNext) {\n return 2;\n } else {\n return 16;\n }\n });\n\n const shouldRenderNewLine = sbOptions.uikit.groupChannel.channel.enableMarkAsUnread && isFirstUnreadMessage;\n\n return (\n <Box paddingHorizontal={16} marginBottom={messageGap}>\n <GroupChannelMessageDateSeparator message={message} prevMessage={prevMessage} />\n <GroupChannelMessageNewLine shouldRenderNewLine={shouldRenderNewLine} />\n <GroupChannelMessageFocusAnimation focused={focused}>{renderMessage()}</GroupChannelMessageFocusAnimation>\n </Box>\n );\n};\n\nexport const GroupChannelTypingIndicatorBubble = () => {\n const { sbOptions } = useSendbirdChat();\n const { publish } = useContext(GroupChannelContexts.PubSub);\n const { typingUsers } = useContext(GroupChannelContexts.TypingIndicator);\n\n const shouldRenderBubble = useIIFE(() => {\n if (typingUsers.length === 0) return false;\n if (!sbOptions.uikit.groupChannel.channel.enableTypingIndicator) return false;\n if (!sbOptions.uikit.groupChannel.channel.typingIndicatorTypes.has(TypingIndicatorType.Bubble)) return false;\n return true;\n });\n\n useEffect(() => {\n if (shouldRenderBubble) publish({ type: 'TYPING_BUBBLE_RENDERED' });\n }, [shouldRenderBubble]);\n\n if (!shouldRenderBubble) return null;\n return (\n <Box paddingHorizontal={16} marginTop={4} marginBottom={16}>\n <TypingIndicatorBubble typingUsers={typingUsers} />\n </Box>\n );\n};\n\nexport default React.memo(GroupChannelMessageRenderer);\n"],"mappings":"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","ignoreList":[]}
@@ -8,8 +8,7 @@ var _react = _interopRequireWildcard(require("react"));
8
8
  var _reactNative = require("react-native");
9
9
  var _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundation");
10
10
  var _uikitUtils = require("@sendbird/uikit-utils");
11
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
12
  const ReactionUserListBottomSheet = ({
14
13
  visible,
15
14
  onClose,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_uikitReactNativeFoundation","_uikitUtils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ReactionUserListBottomSheet","visible","onClose","onDismiss","reactionCtx","chatCtx","localizationCtx","onPressUserProfile","width","useWindowDimensions","safeArea","useSafeAreaPadding","colors","useUIKitTheme","tabIndex","setTabIndex","useState","scrollRef","useRef","tabIndicatorValue","tabIndicatorAnimated","x","Animated","Value","current","focusedWithLayoutCalculated","emojiManager","channel","message","focusIndex","STRINGS","color","ui","reaction","reactions","focusedReaction","containerSafeArea","paddingStart","styles","layout","paddingHorizontal","paddingEnd","focusTab","index","animated","indicatorValue","_scrollRef$current","animateTabIndicator","scrollTo","baseConfig","duration","easing","Easing","inOut","ease","useNativeDriver","parallel","timing","toValue","start","layoutCalculated","filter","Boolean","length","useEffect","renderTabs","createElement","Pressable","style","tabsWrapper","map","isFocused","key","isLastItem","emoji","allEmojiMap","tabItem","marginEnd","onPress","onLayout","indexForLayout","I18nManager","isRTL","nativeEvent","Image","source","getEmojiIconSource","tabEmoji","Text","button","selected","highlight","enabled","truncatedCount","getReactionCount","View","tabIndicator","backgroundColor","renderPage","userCountDifference","count","sampledUserInfoList","Fragment","reactedUserInfo","isGroupChannel","userId","pageItem","Avatar","size","uri","profileUrl","containerStyle","avatar","subtitle2","flex","nickname","LABELS","USER_NO_NAME","body3","onBackground02","REACTION","MORE_USERS","Modal","type","backgroundStyle","modal","container","paddingBottom","dialog","none","background","ScrollView","ref","horizontal","bounces","showsHorizontalScrollIndicator","contentContainerStyle","tabsContainer","Divider","top","showsVerticalScrollIndicator","pageContainer","createStyleSheet","overflow","borderTopStartRadius","borderTopEndRadius","paddingTop","alignItems","justifyContent","flexGrow","flexDirection","height","position","bottom","_default","exports"],"sources":["ReactionUserListBottomSheet.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Animated, Easing, I18nManager, Pressable, ScrollView, View, useWindowDimensions } from 'react-native';\n\nimport {\n Avatar,\n Divider,\n Image,\n Modal,\n Text,\n createStyleSheet,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdEmoji,\n SendbirdReaction,\n getReactionCount,\n truncatedCount,\n useSafeAreaPadding,\n} from '@sendbird/uikit-utils';\n\nimport type { ReactionBottomSheetProps } from './index';\n\nconst ReactionUserListBottomSheet = ({\n visible,\n onClose,\n onDismiss,\n reactionCtx,\n chatCtx,\n localizationCtx,\n onPressUserProfile,\n}: ReactionBottomSheetProps) => {\n const { width } = useWindowDimensions();\n const safeArea = useSafeAreaPadding(['left', 'right', 'bottom']);\n const { colors } = useUIKitTheme();\n\n const [tabIndex, setTabIndex] = useState(0);\n const scrollRef = useRef<ScrollView>();\n const tabIndicatorValue = useRef<Array<{ x: number; width: number }>>([]);\n const tabIndicatorAnimated = useRef({ x: new Animated.Value(0), width: new Animated.Value(0) }).current;\n const focusedWithLayoutCalculated = useRef(false);\n\n const { emojiManager } = chatCtx;\n const { channel, message, focusIndex } = reactionCtx;\n const { STRINGS } = localizationCtx;\n\n const color = colors.ui.reaction.default;\n const reactions = message?.reactions ?? [];\n const focusedReaction = reactions[tabIndex] as SendbirdReaction | undefined;\n const containerSafeArea = {\n paddingStart: safeArea.paddingStart + styles.layout.paddingHorizontal,\n paddingEnd: safeArea.paddingEnd + styles.layout.paddingHorizontal,\n };\n\n const focusTab = (index: number, animated = true) => {\n const indicatorValue = tabIndicatorValue.current[index];\n if (indicatorValue) {\n setTabIndex(index);\n animateTabIndicator(indicatorValue.x, indicatorValue.width, animated);\n scrollRef.current?.scrollTo({ x: indicatorValue.x, animated });\n }\n };\n\n const animateTabIndicator = (x: number, width: number, animated = true) => {\n const baseConfig = { duration: animated ? 300 : 0, easing: Easing.inOut(Easing.ease), useNativeDriver: false };\n Animated.parallel([\n Animated.timing(tabIndicatorAnimated.x, { toValue: x, ...baseConfig }),\n Animated.timing(tabIndicatorAnimated.width, { toValue: width, ...baseConfig }),\n ]).start();\n };\n\n const layoutCalculated = () => {\n return tabIndicatorValue.current.filter(Boolean).length === reactions.length;\n };\n\n useEffect(() => {\n if (!visible) {\n tabIndicatorValue.current = [];\n tabIndicatorAnimated.x = new Animated.Value(0);\n tabIndicatorAnimated.width = new Animated.Value(0);\n focusedWithLayoutCalculated.current = false;\n }\n }, [visible]);\n\n const renderTabs = () => {\n return (\n <Pressable style={styles.tabsWrapper}>\n {reactions.map((reaction, index) => {\n const isFocused = focusedReaction?.key === reaction.key;\n const isLastItem = reactions.length - 1 === index;\n const emoji = emojiManager.allEmojiMap[reaction.key] as SendbirdEmoji | undefined;\n\n return (\n <Pressable\n key={reaction.key}\n style={[styles.tabItem, isLastItem && { marginEnd: styles.layout.marginEnd }]}\n onPress={() => focusTab(index)}\n onLayout={(e) => {\n const indexForLayout = I18nManager.isRTL ? reactions.length - 1 - index : index;\n tabIndicatorValue.current[indexForLayout] = e.nativeEvent.layout;\n if (layoutCalculated()) {\n if (focusedWithLayoutCalculated.current) {\n // re-calculating layout when screen rotation\n focusTab(tabIndex, false);\n } else {\n focusedWithLayoutCalculated.current = true;\n focusTab(focusIndex);\n }\n }\n }}\n >\n <Image source={emojiManager.getEmojiIconSource(emoji)} style={styles.tabEmoji} />\n <Text button color={isFocused ? color.selected.highlight : color.enabled.highlight}>\n {truncatedCount(getReactionCount(reaction))}\n </Text>\n </Pressable>\n );\n })}\n <Animated.View\n style={[\n styles.tabIndicator,\n {\n start: tabIndicatorAnimated.x,\n width: tabIndicatorAnimated.width,\n backgroundColor: color.selected.highlight,\n },\n ]}\n />\n </Pressable>\n );\n };\n\n const renderPage = () => {\n const userCountDifference = (focusedReaction?.count || 0) - (focusedReaction?.sampledUserInfoList.length || 0);\n\n return (\n <>\n {focusedReaction?.sampledUserInfoList.map((reactedUserInfo) => {\n if (channel?.isGroupChannel()) {\n return (\n <Pressable\n key={reactedUserInfo.userId}\n onPress={async () => {\n await onClose();\n onPressUserProfile(reactedUserInfo);\n }}\n style={styles.pageItem}\n >\n <Avatar size={36} uri={reactedUserInfo?.profileUrl} containerStyle={styles.avatar} />\n <Text subtitle2 style={{ flex: 1 }}>\n {reactedUserInfo?.nickname || STRINGS.LABELS.USER_NO_NAME}\n </Text>\n </Pressable>\n );\n }\n return null;\n })}\n {userCountDifference > 0 && (\n <View style={styles.pageItem}>\n <Text body3 color={colors.onBackground02}>\n {STRINGS.REACTION.MORE_USERS(userCountDifference)}\n </Text>\n </View>\n )}\n </>\n );\n };\n\n return (\n <Modal\n type={'slide-no-gesture'}\n visible={Boolean(visible && channel && message)}\n onClose={onClose}\n onDismiss={onDismiss}\n backgroundStyle={styles.modal}\n >\n <View\n style={[\n styles.container,\n { width, paddingBottom: safeArea.paddingBottom, backgroundColor: colors.ui.dialog.default.none.background },\n ]}\n >\n <ScrollView\n ref={scrollRef as never}\n horizontal\n bounces={false}\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={[containerSafeArea, styles.tabsContainer]}\n >\n {renderTabs()}\n </ScrollView>\n <Divider style={{ top: -1 }} />\n <ScrollView\n bounces={false}\n showsVerticalScrollIndicator={false}\n style={styles.pageContainer}\n contentContainerStyle={containerSafeArea}\n >\n {renderPage()}\n </ScrollView>\n </View>\n </Modal>\n );\n};\n\nconst styles = createStyleSheet({\n layout: {\n paddingHorizontal: 16,\n marginEnd: 0,\n },\n container: {\n overflow: 'hidden',\n borderTopStartRadius: 8,\n borderTopEndRadius: 8,\n paddingTop: 16,\n alignItems: 'center',\n },\n modal: {\n alignItems: 'center',\n justifyContent: 'flex-end',\n },\n tabsContainer: {\n flexGrow: 1,\n },\n tabsWrapper: {\n flexGrow: 1,\n flexDirection: 'row',\n alignItems: 'flex-start',\n justifyContent: 'center',\n height: 44,\n },\n tabItem: {\n marginEnd: 16,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n tabEmoji: {\n width: 28,\n height: 28,\n marginEnd: 4,\n },\n tabIndicator: {\n position: 'absolute',\n bottom: 0,\n height: 3,\n },\n pageContainer: {\n height: 216,\n width: '100%',\n },\n pageItem: {\n flexDirection: 'row',\n width: '100%',\n height: 48,\n alignItems: 'center',\n },\n avatar: {\n marginEnd: 16,\n },\n});\n\nexport default ReactionUserListBottomSheet;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_uikitReactNativeFoundation","_uikitUtils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ReactionUserListBottomSheet","visible","onClose","onDismiss","reactionCtx","chatCtx","localizationCtx","onPressUserProfile","width","useWindowDimensions","safeArea","useSafeAreaPadding","colors","useUIKitTheme","tabIndex","setTabIndex","useState","scrollRef","useRef","tabIndicatorValue","tabIndicatorAnimated","x","Animated","Value","current","focusedWithLayoutCalculated","emojiManager","channel","message","focusIndex","STRINGS","color","ui","reaction","reactions","focusedReaction","containerSafeArea","paddingStart","styles","layout","paddingHorizontal","paddingEnd","focusTab","index","animated","indicatorValue","_scrollRef$current","animateTabIndicator","scrollTo","baseConfig","duration","easing","Easing","inOut","ease","useNativeDriver","parallel","timing","toValue","start","layoutCalculated","filter","Boolean","length","useEffect","renderTabs","createElement","Pressable","style","tabsWrapper","map","isFocused","key","isLastItem","emoji","allEmojiMap","tabItem","marginEnd","onPress","onLayout","indexForLayout","I18nManager","isRTL","nativeEvent","Image","source","getEmojiIconSource","tabEmoji","Text","button","selected","highlight","enabled","truncatedCount","getReactionCount","View","tabIndicator","backgroundColor","renderPage","userCountDifference","count","sampledUserInfoList","Fragment","reactedUserInfo","isGroupChannel","userId","pageItem","Avatar","size","uri","profileUrl","containerStyle","avatar","subtitle2","flex","nickname","LABELS","USER_NO_NAME","body3","onBackground02","REACTION","MORE_USERS","Modal","type","backgroundStyle","modal","container","paddingBottom","dialog","none","background","ScrollView","ref","horizontal","bounces","showsHorizontalScrollIndicator","contentContainerStyle","tabsContainer","Divider","top","showsVerticalScrollIndicator","pageContainer","createStyleSheet","overflow","borderTopStartRadius","borderTopEndRadius","paddingTop","alignItems","justifyContent","flexGrow","flexDirection","height","position","bottom","_default","exports"],"sources":["ReactionUserListBottomSheet.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Animated, Easing, I18nManager, Pressable, ScrollView, View, useWindowDimensions } from 'react-native';\n\nimport {\n Avatar,\n Divider,\n Image,\n Modal,\n Text,\n createStyleSheet,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdEmoji,\n SendbirdReaction,\n getReactionCount,\n truncatedCount,\n useSafeAreaPadding,\n} from '@sendbird/uikit-utils';\n\nimport type { ReactionBottomSheetProps } from './index';\n\nconst ReactionUserListBottomSheet = ({\n visible,\n onClose,\n onDismiss,\n reactionCtx,\n chatCtx,\n localizationCtx,\n onPressUserProfile,\n}: ReactionBottomSheetProps) => {\n const { width } = useWindowDimensions();\n const safeArea = useSafeAreaPadding(['left', 'right', 'bottom']);\n const { colors } = useUIKitTheme();\n\n const [tabIndex, setTabIndex] = useState(0);\n const scrollRef = useRef<ScrollView>();\n const tabIndicatorValue = useRef<Array<{ x: number; width: number }>>([]);\n const tabIndicatorAnimated = useRef({ x: new Animated.Value(0), width: new Animated.Value(0) }).current;\n const focusedWithLayoutCalculated = useRef(false);\n\n const { emojiManager } = chatCtx;\n const { channel, message, focusIndex } = reactionCtx;\n const { STRINGS } = localizationCtx;\n\n const color = colors.ui.reaction.default;\n const reactions = message?.reactions ?? [];\n const focusedReaction = reactions[tabIndex] as SendbirdReaction | undefined;\n const containerSafeArea = {\n paddingStart: safeArea.paddingStart + styles.layout.paddingHorizontal,\n paddingEnd: safeArea.paddingEnd + styles.layout.paddingHorizontal,\n };\n\n const focusTab = (index: number, animated = true) => {\n const indicatorValue = tabIndicatorValue.current[index];\n if (indicatorValue) {\n setTabIndex(index);\n animateTabIndicator(indicatorValue.x, indicatorValue.width, animated);\n scrollRef.current?.scrollTo({ x: indicatorValue.x, animated });\n }\n };\n\n const animateTabIndicator = (x: number, width: number, animated = true) => {\n const baseConfig = { duration: animated ? 300 : 0, easing: Easing.inOut(Easing.ease), useNativeDriver: false };\n Animated.parallel([\n Animated.timing(tabIndicatorAnimated.x, { toValue: x, ...baseConfig }),\n Animated.timing(tabIndicatorAnimated.width, { toValue: width, ...baseConfig }),\n ]).start();\n };\n\n const layoutCalculated = () => {\n return tabIndicatorValue.current.filter(Boolean).length === reactions.length;\n };\n\n useEffect(() => {\n if (!visible) {\n tabIndicatorValue.current = [];\n tabIndicatorAnimated.x = new Animated.Value(0);\n tabIndicatorAnimated.width = new Animated.Value(0);\n focusedWithLayoutCalculated.current = false;\n }\n }, [visible]);\n\n const renderTabs = () => {\n return (\n <Pressable style={styles.tabsWrapper}>\n {reactions.map((reaction, index) => {\n const isFocused = focusedReaction?.key === reaction.key;\n const isLastItem = reactions.length - 1 === index;\n const emoji = emojiManager.allEmojiMap[reaction.key] as SendbirdEmoji | undefined;\n\n return (\n <Pressable\n key={reaction.key}\n style={[styles.tabItem, isLastItem && { marginEnd: styles.layout.marginEnd }]}\n onPress={() => focusTab(index)}\n onLayout={(e) => {\n const indexForLayout = I18nManager.isRTL ? reactions.length - 1 - index : index;\n tabIndicatorValue.current[indexForLayout] = e.nativeEvent.layout;\n if (layoutCalculated()) {\n if (focusedWithLayoutCalculated.current) {\n // re-calculating layout when screen rotation\n focusTab(tabIndex, false);\n } else {\n focusedWithLayoutCalculated.current = true;\n focusTab(focusIndex);\n }\n }\n }}\n >\n <Image source={emojiManager.getEmojiIconSource(emoji)} style={styles.tabEmoji} />\n <Text button color={isFocused ? color.selected.highlight : color.enabled.highlight}>\n {truncatedCount(getReactionCount(reaction))}\n </Text>\n </Pressable>\n );\n })}\n <Animated.View\n style={[\n styles.tabIndicator,\n {\n start: tabIndicatorAnimated.x,\n width: tabIndicatorAnimated.width,\n backgroundColor: color.selected.highlight,\n },\n ]}\n />\n </Pressable>\n );\n };\n\n const renderPage = () => {\n const userCountDifference = (focusedReaction?.count || 0) - (focusedReaction?.sampledUserInfoList.length || 0);\n\n return (\n <>\n {focusedReaction?.sampledUserInfoList.map((reactedUserInfo) => {\n if (channel?.isGroupChannel()) {\n return (\n <Pressable\n key={reactedUserInfo.userId}\n onPress={async () => {\n await onClose();\n onPressUserProfile(reactedUserInfo);\n }}\n style={styles.pageItem}\n >\n <Avatar size={36} uri={reactedUserInfo?.profileUrl} containerStyle={styles.avatar} />\n <Text subtitle2 style={{ flex: 1 }}>\n {reactedUserInfo?.nickname || STRINGS.LABELS.USER_NO_NAME}\n </Text>\n </Pressable>\n );\n }\n return null;\n })}\n {userCountDifference > 0 && (\n <View style={styles.pageItem}>\n <Text body3 color={colors.onBackground02}>\n {STRINGS.REACTION.MORE_USERS(userCountDifference)}\n </Text>\n </View>\n )}\n </>\n );\n };\n\n return (\n <Modal\n type={'slide-no-gesture'}\n visible={Boolean(visible && channel && message)}\n onClose={onClose}\n onDismiss={onDismiss}\n backgroundStyle={styles.modal}\n >\n <View\n style={[\n styles.container,\n { width, paddingBottom: safeArea.paddingBottom, backgroundColor: colors.ui.dialog.default.none.background },\n ]}\n >\n <ScrollView\n ref={scrollRef as never}\n horizontal\n bounces={false}\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={[containerSafeArea, styles.tabsContainer]}\n >\n {renderTabs()}\n </ScrollView>\n <Divider style={{ top: -1 }} />\n <ScrollView\n bounces={false}\n showsVerticalScrollIndicator={false}\n style={styles.pageContainer}\n contentContainerStyle={containerSafeArea}\n >\n {renderPage()}\n </ScrollView>\n </View>\n </Modal>\n );\n};\n\nconst styles = createStyleSheet({\n layout: {\n paddingHorizontal: 16,\n marginEnd: 0,\n },\n container: {\n overflow: 'hidden',\n borderTopStartRadius: 8,\n borderTopEndRadius: 8,\n paddingTop: 16,\n alignItems: 'center',\n },\n modal: {\n alignItems: 'center',\n justifyContent: 'flex-end',\n },\n tabsContainer: {\n flexGrow: 1,\n },\n tabsWrapper: {\n flexGrow: 1,\n flexDirection: 'row',\n alignItems: 'flex-start',\n justifyContent: 'center',\n height: 44,\n },\n tabItem: {\n marginEnd: 16,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n tabEmoji: {\n width: 28,\n height: 28,\n marginEnd: 4,\n },\n tabIndicator: {\n position: 'absolute',\n bottom: 0,\n height: 3,\n },\n pageContainer: {\n height: 216,\n width: '100%',\n },\n pageItem: {\n flexDirection: 'row',\n width: '100%',\n height: 48,\n alignItems: 'center',\n },\n avatar: {\n marginEnd: 16,\n },\n});\n\nexport default ReactionUserListBottomSheet;\n"],"mappings":"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","ignoreList":[]}
@@ -10,8 +10,7 @@ var _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundati
10
10
  var _uikitUtils = require("@sendbird/uikit-utils");
11
11
  var _FlatListInternal = _interopRequireDefault(require("../ChatFlatList/FlatListInternal"));
12
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
15
14
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
16
15
  const BOTTOM_DETECT_THRESHOLD = 50;
17
16
  const UNREACHABLE_THRESHOLD = Number.MIN_SAFE_INTEGER;