@sendbird/uikit-react-native 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (336) hide show
  1. package/README.md +7 -7
  2. package/lib/commonjs/InternalErrorBoundary.js.map +1 -1
  3. package/lib/commonjs/SendbirdUIKitContainer.js +6 -3
  4. package/lib/commonjs/SendbirdUIKitContainer.js.map +1 -1
  5. package/lib/commonjs/components/ChannelCover.js.map +1 -1
  6. package/lib/commonjs/components/ChatFlatList.js.map +1 -1
  7. package/lib/commonjs/components/FileViewer.js +326 -0
  8. package/lib/commonjs/components/FileViewer.js.map +1 -0
  9. package/lib/commonjs/components/GroupChannelPreviewContainer.js +180 -0
  10. package/lib/commonjs/components/GroupChannelPreviewContainer.js.map +1 -0
  11. package/lib/commonjs/components/MessageRenderer/AdminMessage/index.js.map +1 -1
  12. package/lib/commonjs/components/MessageRenderer/FileMessage/BaseFileMessage.js.map +1 -1
  13. package/lib/commonjs/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +1 -1
  14. package/lib/commonjs/components/MessageRenderer/FileMessage/VideoFileMessage.js +116 -0
  15. package/lib/commonjs/components/MessageRenderer/FileMessage/VideoFileMessage.js.map +1 -0
  16. package/lib/commonjs/components/MessageRenderer/FileMessage/index.js +8 -0
  17. package/lib/commonjs/components/MessageRenderer/FileMessage/index.js.map +1 -1
  18. package/lib/commonjs/components/MessageRenderer/MessageContainer.js.map +1 -1
  19. package/lib/commonjs/components/MessageRenderer/MessageDateSeparator.js.map +1 -1
  20. package/lib/commonjs/components/MessageRenderer/MessageIncomingAvatar.js.map +1 -1
  21. package/lib/commonjs/components/MessageRenderer/MessageIncomingSenderName.js.map +1 -1
  22. package/lib/commonjs/components/MessageRenderer/MessageOutgoingStatus.js +15 -24
  23. package/lib/commonjs/components/MessageRenderer/MessageOutgoingStatus.js.map +1 -1
  24. package/lib/commonjs/components/MessageRenderer/MessageTime.js.map +1 -1
  25. package/lib/commonjs/components/MessageRenderer/UnknownMessage/index.js.map +1 -1
  26. package/lib/commonjs/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +1 -1
  27. package/lib/commonjs/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +1 -1
  28. package/lib/commonjs/components/MessageRenderer/UserMessage/index.js.map +1 -1
  29. package/lib/commonjs/components/NewMessagesButton.js.map +1 -1
  30. package/lib/commonjs/components/ProviderLayout.js.map +1 -1
  31. package/lib/commonjs/components/SBUPressable.js +45 -0
  32. package/lib/commonjs/components/SBUPressable.js.map +1 -0
  33. package/lib/commonjs/components/ScrollToBottomButton.js.map +1 -1
  34. package/lib/commonjs/components/TypedPlaceholder.js.map +1 -1
  35. package/lib/commonjs/components/UserActionBar.js +1 -3
  36. package/lib/commonjs/components/UserActionBar.js.map +1 -1
  37. package/lib/commonjs/components/UserSelectableBar.js +1 -3
  38. package/lib/commonjs/components/UserSelectableBar.js.map +1 -1
  39. package/lib/commonjs/constants.js +7 -1
  40. package/lib/commonjs/constants.js.map +1 -1
  41. package/lib/commonjs/contexts/Localization.js.map +1 -1
  42. package/lib/commonjs/contexts/PlatformService.js +4 -2
  43. package/lib/commonjs/contexts/PlatformService.js.map +1 -1
  44. package/lib/commonjs/contexts/SendbirdChat.js +6 -2
  45. package/lib/commonjs/contexts/SendbirdChat.js.map +1 -1
  46. package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js.map +1 -1
  47. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/EditInput.js.map +1 -1
  48. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js +1 -1
  49. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -1
  50. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js.map +1 -1
  51. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +30 -7
  52. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  53. package/lib/commonjs/domain/groupChannel/module/moduleContext.js +2 -3
  54. package/lib/commonjs/domain/groupChannel/module/moduleContext.js.map +1 -1
  55. package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
  56. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListHeader.js +2 -5
  57. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListHeader.js.map +1 -1
  58. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
  59. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -1
  60. package/lib/commonjs/domain/groupChannelList/module/moduleContext.js.map +1 -1
  61. package/lib/commonjs/domain/groupChannelList/types.js.map +1 -1
  62. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js.map +1 -1
  63. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +1 -1
  64. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -1
  65. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  66. package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js +1 -1
  67. package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
  68. package/lib/commonjs/domain/groupChannelSettings/types.js.map +1 -1
  69. package/lib/commonjs/domain/groupChannelUserList/types.js.map +1 -1
  70. package/lib/commonjs/domain/userList/module/moduleContext.js +2 -2
  71. package/lib/commonjs/domain/userList/module/moduleContext.js.map +1 -1
  72. package/lib/commonjs/domain/userList/types.js.map +1 -1
  73. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js +3 -7
  74. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js.map +1 -1
  75. package/lib/commonjs/fragments/createGroupChannelFragment.js +13 -11
  76. package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
  77. package/lib/commonjs/fragments/createGroupChannelListFragment.js +7 -37
  78. package/lib/commonjs/fragments/createGroupChannelListFragment.js.map +1 -1
  79. package/lib/commonjs/fragments/createGroupChannelMembersFragment.js +1 -1
  80. package/lib/commonjs/fragments/createGroupChannelMembersFragment.js.map +1 -1
  81. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js +2 -3
  82. package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js.map +1 -1
  83. package/lib/commonjs/hooks/useContext.js.map +1 -1
  84. package/lib/commonjs/index.js +29 -2
  85. package/lib/commonjs/index.js.map +1 -1
  86. package/lib/commonjs/localization/StringSet.type.js +8 -0
  87. package/lib/commonjs/localization/StringSet.type.js.map +1 -1
  88. package/lib/commonjs/platform/createFileService.expo.js +38 -20
  89. package/lib/commonjs/platform/createFileService.expo.js.map +1 -1
  90. package/lib/commonjs/platform/createFileService.native.js +20 -3
  91. package/lib/commonjs/platform/createFileService.native.js.map +1 -1
  92. package/lib/commonjs/platform/createMediaService.expo.js +64 -0
  93. package/lib/commonjs/platform/createMediaService.expo.js.map +1 -0
  94. package/lib/commonjs/platform/createMediaService.native.js +67 -0
  95. package/lib/commonjs/platform/createMediaService.native.js.map +1 -0
  96. package/lib/commonjs/platform/createNotificationService.expo.js.map +1 -1
  97. package/lib/commonjs/platform/types.js.map +1 -1
  98. package/lib/commonjs/version.js +1 -1
  99. package/lib/commonjs/version.js.map +1 -1
  100. package/lib/module/InternalErrorBoundary.js.map +1 -1
  101. package/lib/module/SendbirdUIKitContainer.js +7 -4
  102. package/lib/module/SendbirdUIKitContainer.js.map +1 -1
  103. package/lib/module/components/ChannelCover.js.map +1 -1
  104. package/lib/module/components/ChatFlatList.js.map +1 -1
  105. package/lib/module/components/FileViewer.js +304 -0
  106. package/lib/module/components/FileViewer.js.map +1 -0
  107. package/lib/module/components/GroupChannelPreviewContainer.js +158 -0
  108. package/lib/module/components/GroupChannelPreviewContainer.js.map +1 -0
  109. package/lib/module/components/MessageRenderer/AdminMessage/index.js.map +1 -1
  110. package/lib/module/components/MessageRenderer/FileMessage/BaseFileMessage.js.map +1 -1
  111. package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +1 -1
  112. package/lib/module/components/MessageRenderer/FileMessage/VideoFileMessage.js +100 -0
  113. package/lib/module/components/MessageRenderer/FileMessage/VideoFileMessage.js.map +1 -0
  114. package/lib/module/components/MessageRenderer/FileMessage/index.js +6 -0
  115. package/lib/module/components/MessageRenderer/FileMessage/index.js.map +1 -1
  116. package/lib/module/components/MessageRenderer/MessageContainer.js.map +1 -1
  117. package/lib/module/components/MessageRenderer/MessageDateSeparator.js.map +1 -1
  118. package/lib/module/components/MessageRenderer/MessageIncomingAvatar.js.map +1 -1
  119. package/lib/module/components/MessageRenderer/MessageIncomingSenderName.js.map +1 -1
  120. package/lib/module/components/MessageRenderer/MessageOutgoingStatus.js +17 -26
  121. package/lib/module/components/MessageRenderer/MessageOutgoingStatus.js.map +1 -1
  122. package/lib/module/components/MessageRenderer/MessageTime.js.map +1 -1
  123. package/lib/module/components/MessageRenderer/UnknownMessage/index.js.map +1 -1
  124. package/lib/module/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +1 -1
  125. package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +1 -1
  126. package/lib/module/components/MessageRenderer/UserMessage/index.js.map +1 -1
  127. package/lib/module/components/NewMessagesButton.js.map +1 -1
  128. package/lib/module/components/ProviderLayout.js.map +1 -1
  129. package/lib/module/components/SBUPressable.js +33 -0
  130. package/lib/module/components/SBUPressable.js.map +1 -0
  131. package/lib/module/components/ScrollToBottomButton.js.map +1 -1
  132. package/lib/module/components/TypedPlaceholder.js.map +1 -1
  133. package/lib/module/components/UserActionBar.js +1 -1
  134. package/lib/module/components/UserActionBar.js.map +1 -1
  135. package/lib/module/components/UserSelectableBar.js +1 -1
  136. package/lib/module/components/UserSelectableBar.js.map +1 -1
  137. package/lib/module/constants.js +5 -0
  138. package/lib/module/constants.js.map +1 -1
  139. package/lib/module/contexts/Localization.js.map +1 -1
  140. package/lib/module/contexts/PlatformService.js +4 -2
  141. package/lib/module/contexts/PlatformService.js.map +1 -1
  142. package/lib/module/contexts/SendbirdChat.js +6 -2
  143. package/lib/module/contexts/SendbirdChat.js.map +1 -1
  144. package/lib/module/domain/groupChannel/component/GroupChannelHeader.js.map +1 -1
  145. package/lib/module/domain/groupChannel/component/GroupChannelInput/EditInput.js.map +1 -1
  146. package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js +1 -1
  147. package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -1
  148. package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js.map +1 -1
  149. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +28 -7
  150. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  151. package/lib/module/domain/groupChannel/module/moduleContext.js +2 -3
  152. package/lib/module/domain/groupChannel/module/moduleContext.js.map +1 -1
  153. package/lib/module/domain/groupChannel/types.js.map +1 -1
  154. package/lib/module/domain/groupChannelList/component/GroupChannelListHeader.js +2 -5
  155. package/lib/module/domain/groupChannelList/component/GroupChannelListHeader.js.map +1 -1
  156. package/lib/module/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
  157. package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -1
  158. package/lib/module/domain/groupChannelList/module/moduleContext.js.map +1 -1
  159. package/lib/module/domain/groupChannelList/types.js.map +1 -1
  160. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js.map +1 -1
  161. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +1 -1
  162. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -1
  163. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  164. package/lib/module/domain/groupChannelSettings/module/moduleContext.js +1 -1
  165. package/lib/module/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
  166. package/lib/module/domain/groupChannelSettings/types.js.map +1 -1
  167. package/lib/module/domain/groupChannelUserList/types.js.map +1 -1
  168. package/lib/module/domain/userList/module/moduleContext.js +2 -2
  169. package/lib/module/domain/userList/module/moduleContext.js.map +1 -1
  170. package/lib/module/domain/userList/types.js.map +1 -1
  171. package/lib/module/fragments/createGroupChannelCreateFragment.js +4 -4
  172. package/lib/module/fragments/createGroupChannelCreateFragment.js.map +1 -1
  173. package/lib/module/fragments/createGroupChannelFragment.js +15 -13
  174. package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
  175. package/lib/module/fragments/createGroupChannelListFragment.js +11 -38
  176. package/lib/module/fragments/createGroupChannelListFragment.js.map +1 -1
  177. package/lib/module/fragments/createGroupChannelMembersFragment.js +1 -1
  178. package/lib/module/fragments/createGroupChannelMembersFragment.js.map +1 -1
  179. package/lib/module/fragments/createGroupChannelSettingsFragment.js +2 -3
  180. package/lib/module/fragments/createGroupChannelSettingsFragment.js.map +1 -1
  181. package/lib/module/hooks/useContext.js.map +1 -1
  182. package/lib/module/index.js +4 -1
  183. package/lib/module/index.js.map +1 -1
  184. package/lib/module/localization/StringSet.type.js +8 -0
  185. package/lib/module/localization/StringSet.type.js.map +1 -1
  186. package/lib/module/platform/createFileService.expo.js +38 -20
  187. package/lib/module/platform/createFileService.expo.js.map +1 -1
  188. package/lib/module/platform/createFileService.native.js +20 -3
  189. package/lib/module/platform/createFileService.native.js.map +1 -1
  190. package/lib/module/platform/createMediaService.expo.js +54 -0
  191. package/lib/module/platform/createMediaService.expo.js.map +1 -0
  192. package/lib/module/platform/createMediaService.native.js +57 -0
  193. package/lib/module/platform/createMediaService.native.js.map +1 -0
  194. package/lib/module/platform/createNotificationService.expo.js.map +1 -1
  195. package/lib/module/platform/types.js.map +1 -1
  196. package/lib/module/version.js +1 -1
  197. package/lib/module/version.js.map +1 -1
  198. package/lib/typescript/__template__/component/__domain__Header.d.ts +1 -2
  199. package/lib/typescript/__template__/component/__domain__StatusEmpty.d.ts +0 -1
  200. package/lib/typescript/__template__/component/__domain__StatusLoading.d.ts +0 -1
  201. package/lib/typescript/__template__/component/__domain__View.d.ts +1 -2
  202. package/lib/typescript/__template__/module/moduleContext.d.ts +2 -3
  203. package/lib/typescript/__template__/types.d.ts +2 -2
  204. package/lib/typescript/src/InternalErrorBoundary.d.ts +1 -0
  205. package/lib/typescript/src/SendbirdUIKitContainer.d.ts +9 -6
  206. package/lib/typescript/src/components/ChannelCover.d.ts +1 -2
  207. package/lib/typescript/src/components/FileViewer.d.ts +12 -0
  208. package/lib/typescript/src/components/GroupChannelPreviewContainer.d.ts +8 -0
  209. package/lib/typescript/src/components/MessageRenderer/AdminMessage/index.d.ts +1 -2
  210. package/lib/typescript/src/components/MessageRenderer/FileMessage/BaseFileMessage.d.ts +3 -3
  211. package/lib/typescript/src/components/MessageRenderer/FileMessage/ImageFileMessage.d.ts +1 -2
  212. package/lib/typescript/src/components/MessageRenderer/FileMessage/VideoFileMessage.d.ts +3 -0
  213. package/lib/typescript/src/components/MessageRenderer/FileMessage/index.d.ts +1 -1
  214. package/lib/typescript/src/components/MessageRenderer/MessageContainer.d.ts +1 -1
  215. package/lib/typescript/src/components/MessageRenderer/MessageDateSeparator.d.ts +1 -2
  216. package/lib/typescript/src/components/MessageRenderer/MessageIncomingAvatar.d.ts +1 -2
  217. package/lib/typescript/src/components/MessageRenderer/MessageIncomingSenderName.d.ts +1 -2
  218. package/lib/typescript/src/components/MessageRenderer/MessageOutgoingStatus.d.ts +1 -1
  219. package/lib/typescript/src/components/MessageRenderer/MessageTime.d.ts +1 -2
  220. package/lib/typescript/src/components/MessageRenderer/UnknownMessage/index.d.ts +1 -2
  221. package/lib/typescript/src/components/MessageRenderer/UserMessage/BaseUserMessage.d.ts +1 -2
  222. package/lib/typescript/src/components/MessageRenderer/UserMessage/OpenGraphUserMessage.d.ts +1 -2
  223. package/lib/typescript/src/components/MessageRenderer/UserMessage/index.d.ts +1 -1
  224. package/lib/typescript/src/components/NewMessagesButton.d.ts +1 -1
  225. package/lib/typescript/src/components/ProviderLayout.d.ts +1 -1
  226. package/lib/typescript/src/components/SBUPressable.d.ts +18 -0
  227. package/lib/typescript/src/components/ScrollToBottomButton.d.ts +1 -1
  228. package/lib/typescript/src/components/TypedPlaceholder.d.ts +1 -2
  229. package/lib/typescript/src/components/UserActionBar.d.ts +2 -3
  230. package/lib/typescript/src/components/UserSelectableBar.d.ts +2 -3
  231. package/lib/typescript/src/constants.d.ts +5 -0
  232. package/lib/typescript/src/contexts/Localization.d.ts +2 -3
  233. package/lib/typescript/src/contexts/PlatformService.d.ts +5 -4
  234. package/lib/typescript/src/contexts/SendbirdChat.d.ts +7 -3
  235. package/lib/typescript/src/domain/groupChannel/component/GroupChannelHeader.d.ts +1 -2
  236. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/EditInput.d.ts +1 -2
  237. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/SendInput.d.ts +1 -2
  238. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/index.d.ts +2 -2
  239. package/lib/typescript/src/domain/groupChannel/component/GroupChannelMessageList.d.ts +4 -3
  240. package/lib/typescript/src/domain/groupChannel/component/GroupChannelStatusEmpty.d.ts +0 -1
  241. package/lib/typescript/src/domain/groupChannel/component/GroupChannelStatusLoading.d.ts +0 -1
  242. package/lib/typescript/src/domain/groupChannel/types.d.ts +8 -4
  243. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListHeader.d.ts +1 -2
  244. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListList.d.ts +1 -2
  245. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListStatusEmpty.d.ts +0 -1
  246. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListStatusLoading.d.ts +0 -1
  247. package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListTypeSelector.d.ts +1 -2
  248. package/lib/typescript/src/domain/groupChannelList/module/moduleContext.d.ts +2 -3
  249. package/lib/typescript/src/domain/groupChannelList/types.d.ts +2 -2
  250. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsHeader.d.ts +1 -2
  251. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsInfo.d.ts +1 -2
  252. package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.d.ts +1 -2
  253. package/lib/typescript/src/domain/groupChannelSettings/module/moduleContext.d.ts +2 -3
  254. package/lib/typescript/src/domain/groupChannelSettings/types.d.ts +2 -2
  255. package/lib/typescript/src/domain/groupChannelUserList/types.d.ts +4 -4
  256. package/lib/typescript/src/domain/userList/component/UserListStatusEmpty.d.ts +0 -1
  257. package/lib/typescript/src/domain/userList/component/UserListStatusLoading.d.ts +0 -1
  258. package/lib/typescript/src/domain/userList/module/moduleContext.d.ts +2 -3
  259. package/lib/typescript/src/domain/userList/types.d.ts +1 -1
  260. package/lib/typescript/src/hooks/useContext.d.ts +8 -4
  261. package/lib/typescript/src/index.d.ts +3 -0
  262. package/lib/typescript/src/localization/StringSet.type.d.ts +4 -0
  263. package/lib/typescript/src/platform/createFileService.expo.d.ts +4 -4
  264. package/lib/typescript/src/platform/createMediaService.expo.d.ts +9 -0
  265. package/lib/typescript/src/platform/createMediaService.native.d.ts +9 -0
  266. package/lib/typescript/src/platform/createNotificationService.expo.d.ts +1 -1
  267. package/lib/typescript/src/platform/types.d.ts +20 -1
  268. package/lib/typescript/src/version.d.ts +1 -1
  269. package/package.json +16 -7
  270. package/src/InternalErrorBoundary.tsx +1 -0
  271. package/src/SendbirdUIKitContainer.tsx +17 -6
  272. package/src/components/ChannelCover.tsx +1 -1
  273. package/src/components/ChatFlatList.tsx +1 -1
  274. package/src/components/FileViewer.tsx +284 -0
  275. package/src/components/GroupChannelPreviewContainer.tsx +134 -0
  276. package/src/components/MessageRenderer/AdminMessage/index.tsx +1 -1
  277. package/src/components/MessageRenderer/FileMessage/BaseFileMessage.tsx +4 -6
  278. package/src/components/MessageRenderer/FileMessage/ImageFileMessage.tsx +1 -1
  279. package/src/components/MessageRenderer/FileMessage/VideoFileMessage.tsx +91 -0
  280. package/src/components/MessageRenderer/FileMessage/index.tsx +7 -1
  281. package/src/components/MessageRenderer/MessageContainer.tsx +1 -1
  282. package/src/components/MessageRenderer/MessageDateSeparator.tsx +1 -1
  283. package/src/components/MessageRenderer/MessageIncomingAvatar.tsx +5 -2
  284. package/src/components/MessageRenderer/MessageIncomingSenderName.tsx +5 -2
  285. package/src/components/MessageRenderer/MessageOutgoingStatus.tsx +26 -33
  286. package/src/components/MessageRenderer/MessageTime.tsx +6 -2
  287. package/src/components/MessageRenderer/UnknownMessage/index.tsx +1 -1
  288. package/src/components/MessageRenderer/UserMessage/BaseUserMessage.tsx +1 -1
  289. package/src/components/MessageRenderer/UserMessage/OpenGraphUserMessage.tsx +4 -2
  290. package/src/components/MessageRenderer/UserMessage/index.tsx +1 -1
  291. package/src/components/NewMessagesButton.tsx +1 -1
  292. package/src/components/ProviderLayout.tsx +1 -1
  293. package/src/components/SBUPressable.tsx +40 -0
  294. package/src/components/ScrollToBottomButton.tsx +1 -1
  295. package/src/components/TypedPlaceholder.tsx +1 -1
  296. package/src/components/UserActionBar.tsx +2 -2
  297. package/src/components/UserSelectableBar.tsx +2 -2
  298. package/src/constants.ts +5 -0
  299. package/src/contexts/Localization.tsx +2 -3
  300. package/src/contexts/PlatformService.tsx +13 -6
  301. package/src/contexts/SendbirdChat.tsx +15 -7
  302. package/src/domain/groupChannel/component/GroupChannelHeader.tsx +1 -1
  303. package/src/domain/groupChannel/component/GroupChannelInput/EditInput.tsx +1 -1
  304. package/src/domain/groupChannel/component/GroupChannelInput/SendInput.tsx +2 -2
  305. package/src/domain/groupChannel/component/GroupChannelInput/index.tsx +2 -2
  306. package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +25 -8
  307. package/src/domain/groupChannel/module/moduleContext.tsx +6 -13
  308. package/src/domain/groupChannel/types.ts +10 -4
  309. package/src/domain/groupChannelList/component/GroupChannelListHeader.tsx +2 -4
  310. package/src/domain/groupChannelList/component/GroupChannelListList.tsx +2 -2
  311. package/src/domain/groupChannelList/component/GroupChannelListTypeSelector.tsx +4 -4
  312. package/src/domain/groupChannelList/module/moduleContext.tsx +2 -2
  313. package/src/domain/groupChannelList/types.ts +3 -2
  314. package/src/domain/groupChannelSettings/component/GroupChannelSettingsHeader.tsx +1 -1
  315. package/src/domain/groupChannelSettings/component/GroupChannelSettingsInfo.tsx +1 -1
  316. package/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.tsx +2 -2
  317. package/src/domain/groupChannelSettings/module/moduleContext.tsx +7 -15
  318. package/src/domain/groupChannelSettings/types.ts +2 -2
  319. package/src/domain/groupChannelUserList/types.ts +4 -5
  320. package/src/domain/userList/module/moduleContext.tsx +3 -7
  321. package/src/domain/userList/types.ts +1 -1
  322. package/src/fragments/createGroupChannelCreateFragment.tsx +38 -41
  323. package/src/fragments/createGroupChannelFragment.tsx +23 -33
  324. package/src/fragments/createGroupChannelListFragment.tsx +10 -32
  325. package/src/fragments/createGroupChannelMembersFragment.tsx +34 -39
  326. package/src/fragments/createGroupChannelSettingsFragment.tsx +1 -9
  327. package/src/hooks/useContext.ts +3 -5
  328. package/src/index.ts +5 -1
  329. package/src/localization/StringSet.type.ts +8 -0
  330. package/src/platform/createFileService.expo.ts +29 -16
  331. package/src/platform/createFileService.native.ts +16 -3
  332. package/src/platform/createMediaService.expo.tsx +30 -0
  333. package/src/platform/createMediaService.native.tsx +37 -0
  334. package/src/platform/createNotificationService.expo.ts +1 -1
  335. package/src/platform/types.ts +26 -1
  336. package/src/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["UnknownMessage","message","variant","pressed","STRINGS","useLocalization","colors","useUIKitTheme","color","ui","styles","container","backgroundColor","background","onBackground01","GROUP_CHANNEL","MESSAGE_BUBBLE_UNKNOWN_TITLE","onBackground02","MESSAGE_BUBBLE_UNKNOWN_DESC","createStyleSheet","paddingHorizontal","paddingVertical","borderRadius"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\n\nimport { Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\n\nimport { useLocalization } from '../../../hooks/useContext';\nimport type { MessageRendererInterface } from '../index';\n\nexport type UnknownMessageProps = MessageRendererInterface;\nconst UnknownMessage: React.FC<UnknownMessageProps> = ({ message, variant, pressed }) => {\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n const color = colors.ui.message[variant][pressed ? 'pressed' : 'enabled'];\n return (\n <View style={[styles.container, { backgroundColor: color.background }]}>\n <Text body3 color={colors.onBackground01}>\n {STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_TITLE(message)}\n </Text>\n <Text body3 color={colors.onBackground02}>\n {STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_DESC(message)}\n </Text>\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n paddingHorizontal: 12,\n paddingVertical: 6,\n borderRadius: 16,\n },\n});\n\nexport default UnknownMessage;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AAEA;;;;AAIA,MAAMA,cAA6C,GAAG,QAAmC;EAAA,IAAlC;IAAEC,OAAF;IAAWC,OAAX;IAAoBC;EAApB,CAAkC;EACvF,MAAM;IAAEC;EAAF,IAAc,IAAAC,2BAAA,GAApB;EACA,MAAM;IAAEC;EAAF,IAAa,IAAAC,yCAAA,GAAnB;EACA,MAAMC,KAAK,GAAGF,MAAM,CAACG,EAAP,CAAUR,OAAV,CAAkBC,OAAlB,EAA2BC,OAAO,GAAG,SAAH,GAAe,SAAjD,CAAd;EACA,oBACE,6BAAC,iBAAD;IAAM,KAAK,EAAE,CAACO,MAAM,CAACC,SAAR,EAAmB;MAAEC,eAAe,EAAEJ,KAAK,CAACK;IAAzB,CAAnB;EAAb,gBACE,6BAAC,gCAAD;IAAM,KAAK,MAAX;IAAY,KAAK,EAAEP,MAAM,CAACQ;EAA1B,GACGV,OAAO,CAACW,aAAR,CAAsBC,4BAAtB,CAAmDf,OAAnD,CADH,CADF,eAIE,6BAAC,gCAAD;IAAM,KAAK,MAAX;IAAY,KAAK,EAAEK,MAAM,CAACW;EAA1B,GACGb,OAAO,CAACW,aAAR,CAAsBG,2BAAtB,CAAkDjB,OAAlD,CADH,CAJF,CADF;AAUD,CAdD;;AAgBA,MAAMS,MAAM,GAAG,IAAAS,4CAAA,EAAiB;EAC9BR,SAAS,EAAE;IACTS,iBAAiB,EAAE,EADV;IAETC,eAAe,EAAE,CAFR;IAGTC,YAAY,EAAE;EAHL;AADmB,CAAjB,CAAf;eAQetB,c"}
1
+ {"version":3,"names":["UnknownMessage","message","variant","pressed","STRINGS","useLocalization","colors","useUIKitTheme","color","ui","styles","container","backgroundColor","background","onBackground01","GROUP_CHANNEL","MESSAGE_BUBBLE_UNKNOWN_TITLE","onBackground02","MESSAGE_BUBBLE_UNKNOWN_DESC","createStyleSheet","paddingHorizontal","paddingVertical","borderRadius"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\n\nimport { Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\n\nimport { useLocalization } from '../../../hooks/useContext';\nimport type { MessageRendererInterface } from '../index';\n\nexport type UnknownMessageProps = MessageRendererInterface;\nconst UnknownMessage = ({ message, variant, pressed }: UnknownMessageProps) => {\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n const color = colors.ui.message[variant][pressed ? 'pressed' : 'enabled'];\n return (\n <View style={[styles.container, { backgroundColor: color.background }]}>\n <Text body3 color={colors.onBackground01}>\n {STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_TITLE(message)}\n </Text>\n <Text body3 color={colors.onBackground02}>\n {STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_DESC(message)}\n </Text>\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n paddingHorizontal: 12,\n paddingVertical: 6,\n borderRadius: 16,\n },\n});\n\nexport default UnknownMessage;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AAEA;;;;AAIA,MAAMA,cAAc,GAAG,QAAwD;EAAA,IAAvD;IAAEC,OAAF;IAAWC,OAAX;IAAoBC;EAApB,CAAuD;EAC7E,MAAM;IAAEC;EAAF,IAAc,IAAAC,2BAAA,GAApB;EACA,MAAM;IAAEC;EAAF,IAAa,IAAAC,yCAAA,GAAnB;EACA,MAAMC,KAAK,GAAGF,MAAM,CAACG,EAAP,CAAUR,OAAV,CAAkBC,OAAlB,EAA2BC,OAAO,GAAG,SAAH,GAAe,SAAjD,CAAd;EACA,oBACE,6BAAC,iBAAD;IAAM,KAAK,EAAE,CAACO,MAAM,CAACC,SAAR,EAAmB;MAAEC,eAAe,EAAEJ,KAAK,CAACK;IAAzB,CAAnB;EAAb,gBACE,6BAAC,gCAAD;IAAM,KAAK,MAAX;IAAY,KAAK,EAAEP,MAAM,CAACQ;EAA1B,GACGV,OAAO,CAACW,aAAR,CAAsBC,4BAAtB,CAAmDf,OAAnD,CADH,CADF,eAIE,6BAAC,gCAAD;IAAM,KAAK,MAAX;IAAY,KAAK,EAAEK,MAAM,CAACW;EAA1B,GACGb,OAAO,CAACW,aAAR,CAAsBG,2BAAtB,CAAkDjB,OAAlD,CADH,CAJF,CADF;AAUD,CAdD;;AAgBA,MAAMS,MAAM,GAAG,IAAAS,4CAAA,EAAiB;EAC9BR,SAAS,EAAE;IACTS,iBAAiB,EAAE,EADV;IAETC,eAAe,EAAE,CAFR;IAGTC,YAAY,EAAE;EAHL;AADmB,CAAjB,CAAf;eAQetB,c"}
@@ -1 +1 @@
1
- {"version":3,"names":["BaseUserMessage","message","variant","pressed","colors","useUIKitTheme","color","ui","STRINGS","useLocalization","styles","container","backgroundColor","background","textMsg","Boolean","updatedAt","textEdited","GROUP_CHANNEL","MESSAGE_BUBBLE_EDITED_POSTFIX","createStyleSheet","paddingHorizontal","paddingVertical","borderRadius"],"sources":["BaseUserMessage.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\n\nimport { Text, URLParsedText, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\n\nimport { useLocalization } from '../../../hooks/useContext';\nimport type { UserMessageProps } from './index';\n\nconst BaseUserMessage: React.FC<UserMessageProps> = ({ message, variant, pressed }) => {\n const { colors } = useUIKitTheme();\n const color = colors.ui.message[variant][pressed ? 'pressed' : 'enabled'];\n const { STRINGS } = useLocalization();\n return (\n <View style={[styles.container, { backgroundColor: color.background }]}>\n <URLParsedText body3 strict color={color.textMsg}>\n {message.message}\n {Boolean(message.updatedAt) && (\n <Text body3 color={color.textEdited}>\n {STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_EDITED_POSTFIX}\n </Text>\n )}\n </URLParsedText>\n </View>\n );\n};\nconst styles = createStyleSheet({\n container: {\n paddingHorizontal: 12,\n paddingVertical: 6,\n borderRadius: 16,\n },\n});\n\nexport default BaseUserMessage;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AAEA;;;;AAGA,MAAMA,eAA2C,GAAG,QAAmC;EAAA,IAAlC;IAAEC,OAAF;IAAWC,OAAX;IAAoBC;EAApB,CAAkC;EACrF,MAAM;IAAEC;EAAF,IAAa,IAAAC,yCAAA,GAAnB;EACA,MAAMC,KAAK,GAAGF,MAAM,CAACG,EAAP,CAAUN,OAAV,CAAkBC,OAAlB,EAA2BC,OAAO,GAAG,SAAH,GAAe,SAAjD,CAAd;EACA,MAAM;IAAEK;EAAF,IAAc,IAAAC,2BAAA,GAApB;EACA,oBACE,6BAAC,iBAAD;IAAM,KAAK,EAAE,CAACC,MAAM,CAACC,SAAR,EAAmB;MAAEC,eAAe,EAAEN,KAAK,CAACO;IAAzB,CAAnB;EAAb,gBACE,6BAAC,yCAAD;IAAe,KAAK,MAApB;IAAqB,MAAM,MAA3B;IAA4B,KAAK,EAAEP,KAAK,CAACQ;EAAzC,GACGb,OAAO,CAACA,OADX,EAEGc,OAAO,CAACd,OAAO,CAACe,SAAT,CAAP,iBACC,6BAAC,gCAAD;IAAM,KAAK,MAAX;IAAY,KAAK,EAAEV,KAAK,CAACW;EAAzB,GACGT,OAAO,CAACU,aAAR,CAAsBC,6BADzB,CAHJ,CADF,CADF;AAYD,CAhBD;;AAiBA,MAAMT,MAAM,GAAG,IAAAU,4CAAA,EAAiB;EAC9BT,SAAS,EAAE;IACTU,iBAAiB,EAAE,EADV;IAETC,eAAe,EAAE,CAFR;IAGTC,YAAY,EAAE;EAHL;AADmB,CAAjB,CAAf;eAQevB,e"}
1
+ {"version":3,"names":["BaseUserMessage","message","variant","pressed","colors","useUIKitTheme","color","ui","STRINGS","useLocalization","styles","container","backgroundColor","background","textMsg","Boolean","updatedAt","textEdited","GROUP_CHANNEL","MESSAGE_BUBBLE_EDITED_POSTFIX","createStyleSheet","paddingHorizontal","paddingVertical","borderRadius"],"sources":["BaseUserMessage.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\n\nimport { Text, URLParsedText, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\n\nimport { useLocalization } from '../../../hooks/useContext';\nimport type { UserMessageProps } from './index';\n\nconst BaseUserMessage = ({ message, variant, pressed }: UserMessageProps) => {\n const { colors } = useUIKitTheme();\n const color = colors.ui.message[variant][pressed ? 'pressed' : 'enabled'];\n const { STRINGS } = useLocalization();\n return (\n <View style={[styles.container, { backgroundColor: color.background }]}>\n <URLParsedText body3 strict color={color.textMsg}>\n {message.message}\n {Boolean(message.updatedAt) && (\n <Text body3 color={color.textEdited}>\n {STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_EDITED_POSTFIX}\n </Text>\n )}\n </URLParsedText>\n </View>\n );\n};\nconst styles = createStyleSheet({\n container: {\n paddingHorizontal: 12,\n paddingVertical: 6,\n borderRadius: 16,\n },\n});\n\nexport default BaseUserMessage;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AAEA;;;;AAGA,MAAMA,eAAe,GAAG,QAAqD;EAAA,IAApD;IAAEC,OAAF;IAAWC,OAAX;IAAoBC;EAApB,CAAoD;EAC3E,MAAM;IAAEC;EAAF,IAAa,IAAAC,yCAAA,GAAnB;EACA,MAAMC,KAAK,GAAGF,MAAM,CAACG,EAAP,CAAUN,OAAV,CAAkBC,OAAlB,EAA2BC,OAAO,GAAG,SAAH,GAAe,SAAjD,CAAd;EACA,MAAM;IAAEK;EAAF,IAAc,IAAAC,2BAAA,GAApB;EACA,oBACE,6BAAC,iBAAD;IAAM,KAAK,EAAE,CAACC,MAAM,CAACC,SAAR,EAAmB;MAAEC,eAAe,EAAEN,KAAK,CAACO;IAAzB,CAAnB;EAAb,gBACE,6BAAC,yCAAD;IAAe,KAAK,MAApB;IAAqB,MAAM,MAA3B;IAA4B,KAAK,EAAEP,KAAK,CAACQ;EAAzC,GACGb,OAAO,CAACA,OADX,EAEGc,OAAO,CAACd,OAAO,CAACe,SAAT,CAAP,iBACC,6BAAC,gCAAD;IAAM,KAAK,MAAX;IAAY,KAAK,EAAEV,KAAK,CAACW;EAAzB,GACGT,OAAO,CAACU,aAAR,CAAsBC,6BADzB,CAHJ,CADF,CADF;AAYD,CAhBD;;AAiBA,MAAMT,MAAM,GAAG,IAAAU,4CAAA,EAAiB;EAC9BT,SAAS,EAAE;IACTU,iBAAiB,EAAE,EADV;IAETC,eAAe,EAAE,CAFR;IAGTC,YAAY,EAAE;EAHL;AADmB,CAAjB,CAAf;eAQevB,e"}
@@ -1 +1 @@
1
- {"version":3,"names":["OpenGraphUserMessage","message","variant","pressed","ogMetaData","STRINGS","useLocalization","colors","select","palette","useUIKitTheme","color","ui","imageNotFound","setImageNotFound","useState","styles","container","backgroundColor","background","messageContainer","textMsg","Boolean","updatedAt","textEdited","GROUP_CHANNEL","MESSAGE_BUBBLE_EDITED_POSTFIX","Linking","openURL","url","catch","ogImageContainer","dark","background500","light","background200","conditionChaining","ogImage","onBackground02","uri","defaultImage","ogContainer","background400","background100","onBackground01","ogTitle","title","description","ogDesc","createStyleSheet","borderRadius","overflow","paddingVertical","paddingHorizontal","paddingTop","paddingBottom","width","height","marginBottom","lineHeight"],"sources":["OpenGraphUserMessage.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Linking, TouchableOpacity, View } from 'react-native';\nimport type Sendbird from 'sendbird';\n\nimport {\n Icon,\n Image,\n Text,\n URLParsedText,\n createStyleSheet,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\nimport { useLocalization } from '../../../hooks/useContext';\nimport type { UserMessageProps } from './index';\n\ntype Props = UserMessageProps & { ogMetaData: Sendbird.OGMetaData };\nconst OpenGraphUserMessage: React.FC<Props> = ({ message, variant, pressed, ogMetaData }) => {\n const { STRINGS } = useLocalization();\n const { colors, select, palette } = useUIKitTheme();\n const color = colors.ui.message[variant][pressed ? 'pressed' : 'enabled'];\n const [imageNotFound, setImageNotFound] = useState(false);\n return (\n <View style={[styles.container, { backgroundColor: color.background }]}>\n <View style={styles.messageContainer}>\n <URLParsedText body3 color={color.textMsg}>\n {message.message}\n {Boolean(message.updatedAt) && (\n <Text body3 color={color.textEdited}>\n {STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_EDITED_POSTFIX}\n </Text>\n )}\n </URLParsedText>\n </View>\n <TouchableOpacity activeOpacity={0.7} onPress={() => Linking.openURL(ogMetaData.url).catch()}>\n <View\n style={[\n styles.ogImageContainer,\n { backgroundColor: select({ dark: palette.background500, light: palette.background200 }) },\n ]}\n >\n {conditionChaining(\n [imageNotFound],\n [\n <Icon containerStyle={styles.ogImage} icon={'thumbnail-none'} size={48} color={colors.onBackground02} />,\n <Image\n source={{ uri: ogMetaData.defaultImage?.url }}\n style={styles.ogImage}\n resizeMode={'cover'}\n onError={() => setImageNotFound(true)}\n />,\n ],\n )}\n </View>\n <View\n style={[\n styles.ogContainer,\n { backgroundColor: select({ dark: palette.background400, light: palette.background100 }) },\n ]}\n >\n <Text numberOfLines={3} body2 color={colors.onBackground01} style={styles.ogTitle}>\n {ogMetaData.title}\n </Text>\n {Boolean(ogMetaData.description) && (\n <Text numberOfLines={1} caption2 color={colors.onBackground01} style={styles.ogDesc}>\n {ogMetaData.description}\n </Text>\n )}\n <Text numberOfLines={1} caption2 color={colors.onBackground02}>\n {ogMetaData.url}\n </Text>\n </View>\n </TouchableOpacity>\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n borderRadius: 16,\n overflow: 'hidden',\n },\n messageContainer: {\n paddingVertical: 6,\n paddingHorizontal: 12,\n },\n ogContainer: {\n paddingHorizontal: 12,\n paddingTop: 8,\n paddingBottom: 12,\n },\n ogImageContainer: {\n width: 240,\n height: 136,\n },\n ogImage: {\n width: '100%',\n height: '100%',\n },\n ogTitle: {\n marginBottom: 4,\n },\n ogDesc: {\n lineHeight: 14,\n marginBottom: 8,\n },\n});\n\nexport default OpenGraphUserMessage;\n"],"mappings":"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"}
1
+ {"version":3,"names":["OpenGraphUserMessage","message","variant","pressed","ogMetaData","STRINGS","useLocalization","colors","select","palette","useUIKitTheme","color","ui","imageNotFound","setImageNotFound","useState","styles","container","backgroundColor","background","messageContainer","textMsg","Boolean","updatedAt","textEdited","GROUP_CHANNEL","MESSAGE_BUBBLE_EDITED_POSTFIX","Linking","openURL","url","catch","ogImageContainer","dark","background500","light","background200","conditionChaining","ogImage","onBackground02","uri","defaultImage","ogContainer","background400","background100","onBackground01","ogTitle","title","description","ogDesc","createStyleSheet","borderRadius","overflow","paddingVertical","paddingHorizontal","paddingTop","paddingBottom","width","height","marginBottom","lineHeight"],"sources":["OpenGraphUserMessage.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Linking, TouchableOpacity, View } from 'react-native';\nimport type Sendbird from 'sendbird';\n\nimport {\n Icon,\n Image,\n Text,\n URLParsedText,\n createStyleSheet,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\nimport { useLocalization } from '../../../hooks/useContext';\nimport type { UserMessageProps } from './index';\n\ntype Props = UserMessageProps & {\n ogMetaData: Sendbird.OGMetaData;\n};\nconst OpenGraphUserMessage = ({ message, variant, pressed, ogMetaData }: Props) => {\n const { STRINGS } = useLocalization();\n const { colors, select, palette } = useUIKitTheme();\n const color = colors.ui.message[variant][pressed ? 'pressed' : 'enabled'];\n const [imageNotFound, setImageNotFound] = useState(false);\n return (\n <View style={[styles.container, { backgroundColor: color.background }]}>\n <View style={styles.messageContainer}>\n <URLParsedText body3 color={color.textMsg}>\n {message.message}\n {Boolean(message.updatedAt) && (\n <Text body3 color={color.textEdited}>\n {STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_EDITED_POSTFIX}\n </Text>\n )}\n </URLParsedText>\n </View>\n <TouchableOpacity activeOpacity={0.7} onPress={() => Linking.openURL(ogMetaData.url).catch()}>\n <View\n style={[\n styles.ogImageContainer,\n { backgroundColor: select({ dark: palette.background500, light: palette.background200 }) },\n ]}\n >\n {conditionChaining(\n [imageNotFound],\n [\n <Icon containerStyle={styles.ogImage} icon={'thumbnail-none'} size={48} color={colors.onBackground02} />,\n <Image\n source={{ uri: ogMetaData.defaultImage?.url }}\n style={styles.ogImage}\n resizeMode={'cover'}\n onError={() => setImageNotFound(true)}\n />,\n ],\n )}\n </View>\n <View\n style={[\n styles.ogContainer,\n { backgroundColor: select({ dark: palette.background400, light: palette.background100 }) },\n ]}\n >\n <Text numberOfLines={3} body2 color={colors.onBackground01} style={styles.ogTitle}>\n {ogMetaData.title}\n </Text>\n {Boolean(ogMetaData.description) && (\n <Text numberOfLines={1} caption2 color={colors.onBackground01} style={styles.ogDesc}>\n {ogMetaData.description}\n </Text>\n )}\n <Text numberOfLines={1} caption2 color={colors.onBackground02}>\n {ogMetaData.url}\n </Text>\n </View>\n </TouchableOpacity>\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n borderRadius: 16,\n overflow: 'hidden',\n },\n messageContainer: {\n paddingVertical: 6,\n paddingHorizontal: 12,\n },\n ogContainer: {\n paddingHorizontal: 12,\n paddingTop: 8,\n paddingBottom: 12,\n },\n ogImageContainer: {\n width: 240,\n height: 136,\n },\n ogImage: {\n width: '100%',\n height: '100%',\n },\n ogTitle: {\n marginBottom: 4,\n },\n ogDesc: {\n lineHeight: 14,\n marginBottom: 8,\n },\n});\n\nexport default OpenGraphUserMessage;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["UserMessage","props","message","ogMetaData","React","memo"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { SendbirdUserMessage } from '@sendbird/uikit-utils';\n\nimport type { MessageRendererInterface } from '../index';\nimport BaseUserMessage from './BaseUserMessage';\nimport OpenGraphUserMessage from './OpenGraphUserMessage';\n\nexport type UserMessageProps = MessageRendererInterface<SendbirdUserMessage>;\nconst UserMessage: React.FC<UserMessageProps> = (props) => {\n if (props.message.ogMetaData) {\n return <OpenGraphUserMessage {...props} ogMetaData={props.message.ogMetaData} />;\n }\n return <BaseUserMessage {...props} />;\n};\n\nexport default React.memo(UserMessage);\n"],"mappings":";;;;;;;AAAA;;AAKA;;AACA;;;;;;AAGA,MAAMA,WAAuC,GAAIC,KAAD,IAAW;EACzD,IAAIA,KAAK,CAACC,OAAN,CAAcC,UAAlB,EAA8B;IAC5B,oBAAO,6BAAC,6BAAD,eAA0BF,KAA1B;MAAiC,UAAU,EAAEA,KAAK,CAACC,OAAN,CAAcC;IAA3D,GAAP;EACD;;EACD,oBAAO,6BAAC,wBAAD,EAAqBF,KAArB,CAAP;AACD,CALD;;4BAOeG,cAAA,CAAMC,IAAN,CAAWL,WAAX,C"}
1
+ {"version":3,"names":["UserMessage","props","message","ogMetaData","React","memo"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { SendbirdUserMessage } from '@sendbird/uikit-utils';\n\nimport type { MessageRendererInterface } from '../index';\nimport BaseUserMessage from './BaseUserMessage';\nimport OpenGraphUserMessage from './OpenGraphUserMessage';\n\nexport type UserMessageProps = MessageRendererInterface<SendbirdUserMessage>;\nconst UserMessage = (props: UserMessageProps) => {\n if (props.message.ogMetaData) {\n return <OpenGraphUserMessage {...props} ogMetaData={props.message.ogMetaData} />;\n }\n return <BaseUserMessage {...props} />;\n};\n\nexport default React.memo(UserMessage);\n"],"mappings":";;;;;;;AAAA;;AAKA;;AACA;;;;;;AAGA,MAAMA,WAAW,GAAIC,KAAD,IAA6B;EAC/C,IAAIA,KAAK,CAACC,OAAN,CAAcC,UAAlB,EAA8B;IAC5B,oBAAO,6BAAC,6BAAD,eAA0BF,KAA1B;MAAiC,UAAU,EAAEA,KAAK,CAACC,OAAN,CAAcC;IAA3D,GAAP;EACD;;EACD,oBAAO,6BAAC,wBAAD,EAAqBF,KAArB,CAAP;AACD,CALD;;4BAOeG,cAAA,CAAMC,IAAN,CAAWL,WAAX,C"}
@@ -1 +1 @@
1
- {"version":3,"names":["NewMessagesButton","newMessages","visible","onPress","STRINGS","useLocalization","select","palette","colors","useUIKitTheme","length","styles","container","backgroundColor","dark","background400","light","background50","primary","GROUP_CHANNEL","LIST_BUTTON_NEW_MSG","createStyleSheet","paddingHorizontal","paddingVertical","borderRadius","Platform","android","elevation","ios","shadowColor","shadowRadius","shadowOffset","width","height","shadowOpacity","React","memo"],"sources":["NewMessagesButton.tsx"],"sourcesContent":["import React from 'react';\nimport { Platform, TouchableOpacity } from 'react-native';\n\nimport { Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdMessage } from '@sendbird/uikit-utils';\n\nimport { useLocalization } from '../hooks/useContext';\n\ntype Props = {\n newMessages: SendbirdMessage[];\n visible: boolean;\n onPress: () => void;\n};\nconst NewMessagesButton: React.FC<Props> = ({ newMessages, visible, onPress }) => {\n const { STRINGS } = useLocalization();\n const { select, palette, colors } = useUIKitTheme();\n if (newMessages.length === 0 || !visible) return null;\n return (\n <TouchableOpacity\n activeOpacity={0.8}\n onPress={onPress}\n style={[\n styles.container,\n { backgroundColor: select({ dark: palette.background400, light: palette.background50 }) },\n ]}\n >\n <Text button color={colors.primary}>\n {STRINGS.GROUP_CHANNEL.LIST_BUTTON_NEW_MSG(newMessages)}\n </Text>\n </TouchableOpacity>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n paddingHorizontal: 12,\n paddingVertical: 10,\n borderRadius: 20,\n ...Platform.select({\n android: {\n elevation: 4,\n },\n ios: {\n shadowColor: 'black',\n shadowRadius: 4,\n shadowOffset: { width: 0, height: 4 },\n shadowOpacity: 0.3,\n },\n }),\n },\n});\nexport default React.memo(NewMessagesButton);\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AAGA;;;;AAOA,MAAMA,iBAAkC,GAAG,QAAuC;EAAA,IAAtC;IAAEC,WAAF;IAAeC,OAAf;IAAwBC;EAAxB,CAAsC;EAChF,MAAM;IAAEC;EAAF,IAAc,IAAAC,2BAAA,GAApB;EACA,MAAM;IAAEC,MAAF;IAAUC,OAAV;IAAmBC;EAAnB,IAA8B,IAAAC,yCAAA,GAApC;EACA,IAAIR,WAAW,CAACS,MAAZ,KAAuB,CAAvB,IAA4B,CAACR,OAAjC,EAA0C,OAAO,IAAP;EAC1C,oBACE,6BAAC,6BAAD;IACE,aAAa,EAAE,GADjB;IAEE,OAAO,EAAEC,OAFX;IAGE,KAAK,EAAE,CACLQ,MAAM,CAACC,SADF,EAEL;MAAEC,eAAe,EAAEP,MAAM,CAAC;QAAEQ,IAAI,EAAEP,OAAO,CAACQ,aAAhB;QAA+BC,KAAK,EAAET,OAAO,CAACU;MAA9C,CAAD;IAAzB,CAFK;EAHT,gBAQE,6BAAC,gCAAD;IAAM,MAAM,MAAZ;IAAa,KAAK,EAAET,MAAM,CAACU;EAA3B,GACGd,OAAO,CAACe,aAAR,CAAsBC,mBAAtB,CAA0CnB,WAA1C,CADH,CARF,CADF;AAcD,CAlBD;;AAoBA,MAAMU,MAAM,GAAG,IAAAU,4CAAA,EAAiB;EAC9BT,SAAS,EAAE;IACTU,iBAAiB,EAAE,EADV;IAETC,eAAe,EAAE,EAFR;IAGTC,YAAY,EAAE,EAHL;IAIT,GAAGC,qBAAA,CAASnB,MAAT,CAAgB;MACjBoB,OAAO,EAAE;QACPC,SAAS,EAAE;MADJ,CADQ;MAIjBC,GAAG,EAAE;QACHC,WAAW,EAAE,OADV;QAEHC,YAAY,EAAE,CAFX;QAGHC,YAAY,EAAE;UAAEC,KAAK,EAAE,CAAT;UAAYC,MAAM,EAAE;QAApB,CAHX;QAIHC,aAAa,EAAE;MAJZ;IAJY,CAAhB;EAJM;AADmB,CAAjB,CAAf;;4BAkBeC,cAAA,CAAMC,IAAN,CAAWpC,iBAAX,C"}
1
+ {"version":3,"names":["NewMessagesButton","newMessages","visible","onPress","STRINGS","useLocalization","select","palette","colors","useUIKitTheme","length","styles","container","backgroundColor","dark","background400","light","background50","primary","GROUP_CHANNEL","LIST_BUTTON_NEW_MSG","createStyleSheet","paddingHorizontal","paddingVertical","borderRadius","Platform","android","elevation","ios","shadowColor","shadowRadius","shadowOffset","width","height","shadowOpacity","React","memo"],"sources":["NewMessagesButton.tsx"],"sourcesContent":["import React from 'react';\nimport { Platform, TouchableOpacity } from 'react-native';\n\nimport { Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdMessage } from '@sendbird/uikit-utils';\n\nimport { useLocalization } from '../hooks/useContext';\n\ntype Props = {\n newMessages: SendbirdMessage[];\n visible: boolean;\n onPress: () => void;\n};\nconst NewMessagesButton = ({ newMessages, visible, onPress }: Props) => {\n const { STRINGS } = useLocalization();\n const { select, palette, colors } = useUIKitTheme();\n if (newMessages.length === 0 || !visible) return null;\n return (\n <TouchableOpacity\n activeOpacity={0.8}\n onPress={onPress}\n style={[\n styles.container,\n { backgroundColor: select({ dark: palette.background400, light: palette.background50 }) },\n ]}\n >\n <Text button color={colors.primary}>\n {STRINGS.GROUP_CHANNEL.LIST_BUTTON_NEW_MSG(newMessages)}\n </Text>\n </TouchableOpacity>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n paddingHorizontal: 12,\n paddingVertical: 10,\n borderRadius: 20,\n ...Platform.select({\n android: {\n elevation: 4,\n },\n ios: {\n shadowColor: 'black',\n shadowRadius: 4,\n shadowOffset: { width: 0, height: 4 },\n shadowOpacity: 0.3,\n },\n }),\n },\n});\nexport default React.memo(NewMessagesButton);\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AAGA;;;;AAOA,MAAMA,iBAAiB,GAAG,QAA8C;EAAA,IAA7C;IAAEC,WAAF;IAAeC,OAAf;IAAwBC;EAAxB,CAA6C;EACtE,MAAM;IAAEC;EAAF,IAAc,IAAAC,2BAAA,GAApB;EACA,MAAM;IAAEC,MAAF;IAAUC,OAAV;IAAmBC;EAAnB,IAA8B,IAAAC,yCAAA,GAApC;EACA,IAAIR,WAAW,CAACS,MAAZ,KAAuB,CAAvB,IAA4B,CAACR,OAAjC,EAA0C,OAAO,IAAP;EAC1C,oBACE,6BAAC,6BAAD;IACE,aAAa,EAAE,GADjB;IAEE,OAAO,EAAEC,OAFX;IAGE,KAAK,EAAE,CACLQ,MAAM,CAACC,SADF,EAEL;MAAEC,eAAe,EAAEP,MAAM,CAAC;QAAEQ,IAAI,EAAEP,OAAO,CAACQ,aAAhB;QAA+BC,KAAK,EAAET,OAAO,CAACU;MAA9C,CAAD;IAAzB,CAFK;EAHT,gBAQE,6BAAC,gCAAD;IAAM,MAAM,MAAZ;IAAa,KAAK,EAAET,MAAM,CAACU;EAA3B,GACGd,OAAO,CAACe,aAAR,CAAsBC,mBAAtB,CAA0CnB,WAA1C,CADH,CARF,CADF;AAcD,CAlBD;;AAoBA,MAAMU,MAAM,GAAG,IAAAU,4CAAA,EAAiB;EAC9BT,SAAS,EAAE;IACTU,iBAAiB,EAAE,EADV;IAETC,eAAe,EAAE,EAFR;IAGTC,YAAY,EAAE,EAHL;IAIT,GAAGC,qBAAA,CAASnB,MAAT,CAAgB;MACjBoB,OAAO,EAAE;QACPC,SAAS,EAAE;MADJ,CADQ;MAIjBC,GAAG,EAAE;QACHC,WAAW,EAAE,OADV;QAEHC,YAAY,EAAE,CAFX;QAGHC,YAAY,EAAE;UAAEC,KAAK,EAAE,CAAT;UAAYC,MAAM,EAAE;QAApB,CAHX;QAIHC,aAAa,EAAE;MAJZ;IAJY,CAAhB;EAJM;AADmB,CAAjB,CAAf;;4BAkBeC,cAAA,CAAMC,IAAN,CAAWpC,iBAAX,C"}
@@ -1 +1 @@
1
- {"version":3,"names":["ProviderLayout","children","colors","useUIKitTheme","styles","view","backgroundColor","background","createStyleSheet","flex"],"sources":["ProviderLayout.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\n\nimport { createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\n\nconst ProviderLayout: React.FC = ({ children }) => {\n const { colors } = useUIKitTheme();\n return <View style={[styles.view, { backgroundColor: colors.background }]}>{children}</View>;\n};\n\nconst styles = createStyleSheet({\n view: {\n flex: 1,\n },\n});\n\nexport default ProviderLayout;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;;;AAEA,MAAMA,cAAwB,GAAG,QAAkB;EAAA,IAAjB;IAAEC;EAAF,CAAiB;EACjD,MAAM;IAAEC;EAAF,IAAa,IAAAC,yCAAA,GAAnB;EACA,oBAAO,6BAAC,iBAAD;IAAM,KAAK,EAAE,CAACC,MAAM,CAACC,IAAR,EAAc;MAAEC,eAAe,EAAEJ,MAAM,CAACK;IAA1B,CAAd;EAAb,GAAqEN,QAArE,CAAP;AACD,CAHD;;AAKA,MAAMG,MAAM,GAAG,IAAAI,4CAAA,EAAiB;EAC9BH,IAAI,EAAE;IACJI,IAAI,EAAE;EADF;AADwB,CAAjB,CAAf;eAMeT,c"}
1
+ {"version":3,"names":["ProviderLayout","children","colors","useUIKitTheme","styles","view","backgroundColor","background","createStyleSheet","flex"],"sources":["ProviderLayout.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\n\nimport { createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\n\nconst ProviderLayout = ({ children }: React.PropsWithChildren) => {\n const { colors } = useUIKitTheme();\n return <View style={[styles.view, { backgroundColor: colors.background }]}>{children}</View>;\n};\n\nconst styles = createStyleSheet({\n view: {\n flex: 1,\n },\n});\n\nexport default ProviderLayout;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;;;AAEA,MAAMA,cAAc,GAAG,QAA2C;EAAA,IAA1C;IAAEC;EAAF,CAA0C;EAChE,MAAM;IAAEC;EAAF,IAAa,IAAAC,yCAAA,GAAnB;EACA,oBAAO,6BAAC,iBAAD;IAAM,KAAK,EAAE,CAACC,MAAM,CAACC,IAAR,EAAc;MAAEC,eAAe,EAAEJ,MAAM,CAACK;IAA1B,CAAd;EAAb,GAAqEN,QAArE,CAAP;AACD,CAHD;;AAKA,MAAMG,MAAM,GAAG,IAAAI,4CAAA,EAAiB;EAC9BH,IAAI,EAAE;IACJI,IAAI,EAAE;EADF;AADwB,CAAjB,CAAf;eAMeT,c"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _reactNative = require("react-native");
11
+
12
+ var _constants = require("../constants");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
17
+
18
+ function getComponent(as) {
19
+ switch (as) {
20
+ case 'Pressable':
21
+ return _reactNative.Pressable;
22
+
23
+ case 'TouchableOpacity':
24
+ return _reactNative.TouchableOpacity;
25
+
26
+ default:
27
+ return _reactNative.Pressable;
28
+ }
29
+ }
30
+
31
+ const SBUPressable = _ref => {
32
+ let {
33
+ as,
34
+ ...props
35
+ } = _ref;
36
+ const Renderer = getComponent(as); // @ts-ignore
37
+
38
+ return /*#__PURE__*/_react.default.createElement(Renderer, _extends({
39
+ delayLongPress: _constants.DEFAULT_LONG_PRESS_DELAY
40
+ }, props));
41
+ };
42
+
43
+ var _default = SBUPressable;
44
+ exports.default = _default;
45
+ //# sourceMappingURL=SBUPressable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getComponent","as","Pressable","TouchableOpacity","SBUPressable","props","Renderer","DEFAULT_LONG_PRESS_DELAY"],"sources":["SBUPressable.tsx"],"sourcesContent":["import React from 'react';\nimport { Pressable, PressableProps, TouchableOpacity, TouchableOpacityProps } from 'react-native';\n\nimport { DEFAULT_LONG_PRESS_DELAY } from '../constants';\n\ntype Components = 'Pressable' | 'TouchableOpacity';\ntype Props<T extends Components = 'Pressable'> = {\n as?: T;\n} & ExtractProps<T, AsProps>;\n\ntype AsProps =\n | {\n type: 'Pressable';\n props: PressableProps;\n }\n | {\n type: 'TouchableOpacity';\n props: TouchableOpacityProps;\n };\n\ntype ExtractProps<T extends Components, U extends AsProps> = U extends { type: T; props: infer P } ? P : never;\n\nfunction getComponent(as?: Components) {\n switch (as) {\n case 'Pressable':\n return Pressable;\n case 'TouchableOpacity':\n return TouchableOpacity;\n default:\n return Pressable;\n }\n}\n\nconst SBUPressable = <T extends Components>({ as, ...props }: Props<T>) => {\n const Renderer = getComponent(as);\n // @ts-ignore\n return <Renderer delayLongPress={DEFAULT_LONG_PRESS_DELAY} {...props} />;\n};\n\nexport default SBUPressable;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;;;;;AAmBA,SAASA,YAAT,CAAsBC,EAAtB,EAAuC;EACrC,QAAQA,EAAR;IACE,KAAK,WAAL;MACE,OAAOC,sBAAP;;IACF,KAAK,kBAAL;MACE,OAAOC,6BAAP;;IACF;MACE,OAAOD,sBAAP;EANJ;AAQD;;AAED,MAAME,YAAY,GAAG,QAAsD;EAAA,IAA/B;IAAEH,EAAF;IAAM,GAAGI;EAAT,CAA+B;EACzE,MAAMC,QAAQ,GAAGN,YAAY,CAACC,EAAD,CAA7B,CADyE,CAEzE;;EACA,oBAAO,6BAAC,QAAD;IAAU,cAAc,EAAEM;EAA1B,GAAwDF,KAAxD,EAAP;AACD,CAJD;;eAMeD,Y"}
@@ -1 +1 @@
1
- {"version":3,"names":["ScrollToBottomButton","visible","onPress","palette","select","useUIKitTheme","styles","container","opacity","backgroundColor","dark","background400","light","background50","createStyleSheet","padding","borderRadius","Platform","android","elevation","ios","shadowColor","shadowRadius","shadowOffset","width","height","shadowOpacity","React","memo"],"sources":["ScrollToBottomButton.tsx"],"sourcesContent":["import React from 'react';\nimport { Platform, TouchableOpacity } from 'react-native';\n\nimport { Icon, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\n\ntype Props = {\n visible: boolean;\n onPress: () => void;\n};\nconst ScrollToBottomButton: React.FC<Props> = ({ visible, onPress }) => {\n const { palette, select } = useUIKitTheme();\n return (\n <TouchableOpacity\n onPress={onPress}\n activeOpacity={0.8}\n disabled={!visible}\n style={[\n styles.container,\n {\n opacity: visible ? 1 : 0,\n backgroundColor: select({ dark: palette.background400, light: palette.background50 }),\n },\n ]}\n >\n <Icon icon={'chevron-down'} size={22} />\n </TouchableOpacity>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n padding: 8,\n borderRadius: 24,\n ...Platform.select({\n android: {\n elevation: 4,\n },\n ios: {\n shadowColor: 'black',\n shadowRadius: 4,\n shadowOffset: { width: 0, height: 4 },\n shadowOpacity: 0.3,\n },\n }),\n },\n});\n\nexport default React.memo(ScrollToBottomButton);\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;;;AAMA,MAAMA,oBAAqC,GAAG,QAA0B;EAAA,IAAzB;IAAEC,OAAF;IAAWC;EAAX,CAAyB;EACtE,MAAM;IAAEC,OAAF;IAAWC;EAAX,IAAsB,IAAAC,yCAAA,GAA5B;EACA,oBACE,6BAAC,6BAAD;IACE,OAAO,EAAEH,OADX;IAEE,aAAa,EAAE,GAFjB;IAGE,QAAQ,EAAE,CAACD,OAHb;IAIE,KAAK,EAAE,CACLK,MAAM,CAACC,SADF,EAEL;MACEC,OAAO,EAAEP,OAAO,GAAG,CAAH,GAAO,CADzB;MAEEQ,eAAe,EAAEL,MAAM,CAAC;QAAEM,IAAI,EAAEP,OAAO,CAACQ,aAAhB;QAA+BC,KAAK,EAAET,OAAO,CAACU;MAA9C,CAAD;IAFzB,CAFK;EAJT,gBAYE,6BAAC,gCAAD;IAAM,IAAI,EAAE,cAAZ;IAA4B,IAAI,EAAE;EAAlC,EAZF,CADF;AAgBD,CAlBD;;AAoBA,MAAMP,MAAM,GAAG,IAAAQ,4CAAA,EAAiB;EAC9BP,SAAS,EAAE;IACTQ,OAAO,EAAE,CADA;IAETC,YAAY,EAAE,EAFL;IAGT,GAAGC,qBAAA,CAASb,MAAT,CAAgB;MACjBc,OAAO,EAAE;QACPC,SAAS,EAAE;MADJ,CADQ;MAIjBC,GAAG,EAAE;QACHC,WAAW,EAAE,OADV;QAEHC,YAAY,EAAE,CAFX;QAGHC,YAAY,EAAE;UAAEC,KAAK,EAAE,CAAT;UAAYC,MAAM,EAAE;QAApB,CAHX;QAIHC,aAAa,EAAE;MAJZ;IAJY,CAAhB;EAHM;AADmB,CAAjB,CAAf;;4BAkBeC,cAAA,CAAMC,IAAN,CAAW5B,oBAAX,C"}
1
+ {"version":3,"names":["ScrollToBottomButton","visible","onPress","palette","select","useUIKitTheme","styles","container","opacity","backgroundColor","dark","background400","light","background50","createStyleSheet","padding","borderRadius","Platform","android","elevation","ios","shadowColor","shadowRadius","shadowOffset","width","height","shadowOpacity","React","memo"],"sources":["ScrollToBottomButton.tsx"],"sourcesContent":["import React from 'react';\nimport { Platform, TouchableOpacity } from 'react-native';\n\nimport { Icon, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\n\ntype Props = {\n visible: boolean;\n onPress: () => void;\n};\nconst ScrollToBottomButton = ({ visible, onPress }: Props) => {\n const { palette, select } = useUIKitTheme();\n return (\n <TouchableOpacity\n onPress={onPress}\n activeOpacity={0.8}\n disabled={!visible}\n style={[\n styles.container,\n {\n opacity: visible ? 1 : 0,\n backgroundColor: select({ dark: palette.background400, light: palette.background50 }),\n },\n ]}\n >\n <Icon icon={'chevron-down'} size={22} />\n </TouchableOpacity>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n padding: 8,\n borderRadius: 24,\n ...Platform.select({\n android: {\n elevation: 4,\n },\n ios: {\n shadowColor: 'black',\n shadowRadius: 4,\n shadowOffset: { width: 0, height: 4 },\n shadowOpacity: 0.3,\n },\n }),\n },\n});\n\nexport default React.memo(ScrollToBottomButton);\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;;;AAMA,MAAMA,oBAAoB,GAAG,QAAiC;EAAA,IAAhC;IAAEC,OAAF;IAAWC;EAAX,CAAgC;EAC5D,MAAM;IAAEC,OAAF;IAAWC;EAAX,IAAsB,IAAAC,yCAAA,GAA5B;EACA,oBACE,6BAAC,6BAAD;IACE,OAAO,EAAEH,OADX;IAEE,aAAa,EAAE,GAFjB;IAGE,QAAQ,EAAE,CAACD,OAHb;IAIE,KAAK,EAAE,CACLK,MAAM,CAACC,SADF,EAEL;MACEC,OAAO,EAAEP,OAAO,GAAG,CAAH,GAAO,CADzB;MAEEQ,eAAe,EAAEL,MAAM,CAAC;QAAEM,IAAI,EAAEP,OAAO,CAACQ,aAAhB;QAA+BC,KAAK,EAAET,OAAO,CAACU;MAA9C,CAAD;IAFzB,CAFK;EAJT,gBAYE,6BAAC,gCAAD;IAAM,IAAI,EAAE,cAAZ;IAA4B,IAAI,EAAE;EAAlC,EAZF,CADF;AAgBD,CAlBD;;AAoBA,MAAMP,MAAM,GAAG,IAAAQ,4CAAA,EAAiB;EAC9BP,SAAS,EAAE;IACTQ,OAAO,EAAE,CADA;IAETC,YAAY,EAAE,EAFL;IAGT,GAAGC,qBAAA,CAASb,MAAT,CAAgB;MACjBc,OAAO,EAAE;QACPC,SAAS,EAAE;MADJ,CADQ;MAIjBC,GAAG,EAAE;QACHC,WAAW,EAAE,OADV;QAEHC,YAAY,EAAE,CAFX;QAGHC,YAAY,EAAE;UAAEC,KAAK,EAAE,CAAT;UAAYC,MAAM,EAAE;QAApB,CAHX;QAIHC,aAAa,EAAE;MAJZ;IAJY,CAAhB;EAHM;AADmB,CAAjB,CAAf;;4BAkBeC,cAAA,CAAMC,IAAN,CAAW5B,oBAAX,C"}
@@ -1 +1 @@
1
- {"version":3,"names":["TypedPlaceholder","type","onPressRetry","STRINGS","useLocalization","PLACEHOLDER","NO_BANNED_MEMBERS","NO_CHANNELS","NO_MESSAGES","NO_MUTED_MEMBERS","NO_RESULTS_FOUND","NO_USERS","ERROR","MESSAGE","RETRY_LABEL"],"sources":["TypedPlaceholder.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Placeholder } from '@sendbird/uikit-react-native-foundation';\n\nimport { useLocalization } from '../hooks/useContext';\n\ntype Props = {\n type:\n | 'no-banned-members'\n | 'no-channels'\n | 'no-messages'\n | 'no-users'\n | 'no-muted-members'\n | 'no-results-found'\n | 'error-wrong'\n | 'loading';\n onPressRetry?: () => void;\n};\nconst TypedPlaceholder: React.FC<Props> = ({ type, onPressRetry }) => {\n const { STRINGS } = useLocalization();\n switch (type) {\n case 'no-banned-members':\n return <Placeholder icon={'ban'} message={STRINGS.PLACEHOLDER.NO_BANNED_MEMBERS} />;\n case 'no-channels':\n return <Placeholder icon={'chat'} message={STRINGS.PLACEHOLDER.NO_CHANNELS} />;\n case 'no-messages':\n return <Placeholder icon={'message'} message={STRINGS.PLACEHOLDER.NO_MESSAGES} />;\n case 'no-muted-members':\n return <Placeholder icon={'mute'} message={STRINGS.PLACEHOLDER.NO_MUTED_MEMBERS} />;\n case 'no-results-found':\n return <Placeholder icon={'search'} message={STRINGS.PLACEHOLDER.NO_RESULTS_FOUND} />;\n case 'no-users':\n return <Placeholder icon={'members'} message={STRINGS.PLACEHOLDER.NO_USERS} />;\n case 'error-wrong':\n return (\n <Placeholder\n icon={'error'}\n message={STRINGS.PLACEHOLDER.ERROR.MESSAGE}\n errorRetryLabel={STRINGS.PLACEHOLDER.ERROR.RETRY_LABEL}\n onPressRetry={onPressRetry}\n />\n );\n case 'loading':\n return <Placeholder loading icon={'spinner'} />;\n }\n};\n\nexport default TypedPlaceholder;\n"],"mappings":";;;;;;;AAAA;;AAEA;;AAEA;;;;AAcA,MAAMA,gBAAiC,GAAG,QAA4B;EAAA,IAA3B;IAAEC,IAAF;IAAQC;EAAR,CAA2B;EACpE,MAAM;IAAEC;EAAF,IAAc,IAAAC,2BAAA,GAApB;;EACA,QAAQH,IAAR;IACE,KAAK,mBAAL;MACE,oBAAO,6BAAC,uCAAD;QAAa,IAAI,EAAE,KAAnB;QAA0B,OAAO,EAAEE,OAAO,CAACE,WAAR,CAAoBC;MAAvD,EAAP;;IACF,KAAK,aAAL;MACE,oBAAO,6BAAC,uCAAD;QAAa,IAAI,EAAE,MAAnB;QAA2B,OAAO,EAAEH,OAAO,CAACE,WAAR,CAAoBE;MAAxD,EAAP;;IACF,KAAK,aAAL;MACE,oBAAO,6BAAC,uCAAD;QAAa,IAAI,EAAE,SAAnB;QAA8B,OAAO,EAAEJ,OAAO,CAACE,WAAR,CAAoBG;MAA3D,EAAP;;IACF,KAAK,kBAAL;MACE,oBAAO,6BAAC,uCAAD;QAAa,IAAI,EAAE,MAAnB;QAA2B,OAAO,EAAEL,OAAO,CAACE,WAAR,CAAoBI;MAAxD,EAAP;;IACF,KAAK,kBAAL;MACE,oBAAO,6BAAC,uCAAD;QAAa,IAAI,EAAE,QAAnB;QAA6B,OAAO,EAAEN,OAAO,CAACE,WAAR,CAAoBK;MAA1D,EAAP;;IACF,KAAK,UAAL;MACE,oBAAO,6BAAC,uCAAD;QAAa,IAAI,EAAE,SAAnB;QAA8B,OAAO,EAAEP,OAAO,CAACE,WAAR,CAAoBM;MAA3D,EAAP;;IACF,KAAK,aAAL;MACE,oBACE,6BAAC,uCAAD;QACE,IAAI,EAAE,OADR;QAEE,OAAO,EAAER,OAAO,CAACE,WAAR,CAAoBO,KAApB,CAA0BC,OAFrC;QAGE,eAAe,EAAEV,OAAO,CAACE,WAAR,CAAoBO,KAApB,CAA0BE,WAH7C;QAIE,YAAY,EAAEZ;MAJhB,EADF;;IAQF,KAAK,SAAL;MACE,oBAAO,6BAAC,uCAAD;QAAa,OAAO,MAApB;QAAqB,IAAI,EAAE;MAA3B,EAAP;EAvBJ;AAyBD,CA3BD;;eA6BeF,gB"}
1
+ {"version":3,"names":["TypedPlaceholder","type","onPressRetry","STRINGS","useLocalization","PLACEHOLDER","NO_BANNED_MEMBERS","NO_CHANNELS","NO_MESSAGES","NO_MUTED_MEMBERS","NO_RESULTS_FOUND","NO_USERS","ERROR","MESSAGE","RETRY_LABEL"],"sources":["TypedPlaceholder.tsx"],"sourcesContent":["import React from 'react';\n\nimport { Placeholder } from '@sendbird/uikit-react-native-foundation';\n\nimport { useLocalization } from '../hooks/useContext';\n\ntype Props = {\n type:\n | 'no-banned-members'\n | 'no-channels'\n | 'no-messages'\n | 'no-users'\n | 'no-muted-members'\n | 'no-results-found'\n | 'error-wrong'\n | 'loading';\n onPressRetry?: () => void;\n};\nconst TypedPlaceholder = ({ type, onPressRetry }: Props) => {\n const { STRINGS } = useLocalization();\n switch (type) {\n case 'no-banned-members':\n return <Placeholder icon={'ban'} message={STRINGS.PLACEHOLDER.NO_BANNED_MEMBERS} />;\n case 'no-channels':\n return <Placeholder icon={'chat'} message={STRINGS.PLACEHOLDER.NO_CHANNELS} />;\n case 'no-messages':\n return <Placeholder icon={'message'} message={STRINGS.PLACEHOLDER.NO_MESSAGES} />;\n case 'no-muted-members':\n return <Placeholder icon={'mute'} message={STRINGS.PLACEHOLDER.NO_MUTED_MEMBERS} />;\n case 'no-results-found':\n return <Placeholder icon={'search'} message={STRINGS.PLACEHOLDER.NO_RESULTS_FOUND} />;\n case 'no-users':\n return <Placeholder icon={'members'} message={STRINGS.PLACEHOLDER.NO_USERS} />;\n case 'error-wrong':\n return (\n <Placeholder\n icon={'error'}\n message={STRINGS.PLACEHOLDER.ERROR.MESSAGE}\n errorRetryLabel={STRINGS.PLACEHOLDER.ERROR.RETRY_LABEL}\n onPressRetry={onPressRetry}\n />\n );\n case 'loading':\n return <Placeholder loading icon={'spinner'} />;\n }\n};\n\nexport default TypedPlaceholder;\n"],"mappings":";;;;;;;AAAA;;AAEA;;AAEA;;;;AAcA,MAAMA,gBAAgB,GAAG,QAAmC;EAAA,IAAlC;IAAEC,IAAF;IAAQC;EAAR,CAAkC;EAC1D,MAAM;IAAEC;EAAF,IAAc,IAAAC,2BAAA,GAApB;;EACA,QAAQH,IAAR;IACE,KAAK,mBAAL;MACE,oBAAO,6BAAC,uCAAD;QAAa,IAAI,EAAE,KAAnB;QAA0B,OAAO,EAAEE,OAAO,CAACE,WAAR,CAAoBC;MAAvD,EAAP;;IACF,KAAK,aAAL;MACE,oBAAO,6BAAC,uCAAD;QAAa,IAAI,EAAE,MAAnB;QAA2B,OAAO,EAAEH,OAAO,CAACE,WAAR,CAAoBE;MAAxD,EAAP;;IACF,KAAK,aAAL;MACE,oBAAO,6BAAC,uCAAD;QAAa,IAAI,EAAE,SAAnB;QAA8B,OAAO,EAAEJ,OAAO,CAACE,WAAR,CAAoBG;MAA3D,EAAP;;IACF,KAAK,kBAAL;MACE,oBAAO,6BAAC,uCAAD;QAAa,IAAI,EAAE,MAAnB;QAA2B,OAAO,EAAEL,OAAO,CAACE,WAAR,CAAoBI;MAAxD,EAAP;;IACF,KAAK,kBAAL;MACE,oBAAO,6BAAC,uCAAD;QAAa,IAAI,EAAE,QAAnB;QAA6B,OAAO,EAAEN,OAAO,CAACE,WAAR,CAAoBK;MAA1D,EAAP;;IACF,KAAK,UAAL;MACE,oBAAO,6BAAC,uCAAD;QAAa,IAAI,EAAE,SAAnB;QAA8B,OAAO,EAAEP,OAAO,CAACE,WAAR,CAAoBM;MAA3D,EAAP;;IACF,KAAK,aAAL;MACE,oBACE,6BAAC,uCAAD;QACE,IAAI,EAAE,OADR;QAEE,OAAO,EAAER,OAAO,CAACE,WAAR,CAAoBO,KAApB,CAA0BC,OAFrC;QAGE,eAAe,EAAEV,OAAO,CAACE,WAAR,CAAoBO,KAApB,CAA0BE,WAH7C;QAIE,YAAY,EAAEZ;MAJhB,EADF;;IAQF,KAAK,SAAL;MACE,oBAAO,6BAAC,uCAAD;QAAa,OAAO,MAApB;QAAqB,IAAI,EAAE;MAA3B,EAAP;EAvBJ;AAyBD,CA3BD;;eA6BeF,gB"}
@@ -89,8 +89,6 @@ const styles = (0, _uikitReactNativeFoundation.createStyleSheet)({
89
89
  marginRight: 8
90
90
  }
91
91
  });
92
-
93
- var _default = /*#__PURE__*/_react.default.memo(UserActionBar);
94
-
92
+ var _default = UserActionBar;
95
93
  exports.default = _default;
96
94
  //# sourceMappingURL=UserActionBar.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["UserActionBar","muted","uri","name","disabled","onPressActionMenu","label","colors","useUIKitTheme","iconColor","conditionChaining","onBackground04","onBackground01","styles","container","avatar","infoContainer","borderBottomColor","Boolean","onBackground02","iconContainer","createStyleSheet","flexDirection","alignItems","width","height","marginLeft","marginRight","flex","paddingRight","borderBottomWidth","padding","React","memo"],"sources":["UserActionBar.tsx"],"sourcesContent":["import React from 'react';\nimport { TouchableOpacity, View } from 'react-native';\n\nimport { Avatar, Icon, Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\ntype Props = {\n uri: string;\n name: string;\n label?: string;\n muted: boolean;\n disabled: boolean;\n onPressActionMenu?: () => void;\n};\nconst UserActionBar: React.FC<Props> = ({ muted, uri, name, disabled, onPressActionMenu, label }) => {\n const { colors } = useUIKitTheme();\n\n const iconColor = conditionChaining([disabled], [colors.onBackground04, colors.onBackground01]);\n\n return (\n <View style={styles.container}>\n <Avatar muted={muted} size={36} uri={uri} containerStyle={styles.avatar} />\n <View style={[styles.infoContainer, { borderBottomColor: colors.onBackground04 }]}>\n <Text subtitle2 numberOfLines={1} style={styles.name} color={colors.onBackground01}>\n {name}\n </Text>\n {Boolean(label) && (\n <Text body2 color={colors.onBackground02} style={styles.label}>\n {label}\n </Text>\n )}\n {Boolean(onPressActionMenu) && (\n <TouchableOpacity onPress={onPressActionMenu} disabled={disabled}>\n <Icon color={iconColor} size={24} icon={'more'} containerStyle={styles.iconContainer} />\n </TouchableOpacity>\n )}\n </View>\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n flexDirection: 'row',\n alignItems: 'center',\n width: '100%',\n height: 56,\n },\n avatar: {\n marginLeft: 16,\n marginRight: 16,\n },\n label: {\n marginRight: 4,\n },\n infoContainer: {\n height: '100%',\n flex: 1,\n alignItems: 'center',\n flexDirection: 'row',\n paddingRight: 12,\n borderBottomWidth: 1,\n },\n iconContainer: {\n padding: 4,\n },\n name: {\n flex: 1,\n marginRight: 8,\n },\n});\n\nexport default React.memo(UserActionBar);\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;AAUA,MAAMA,aAA8B,GAAG,QAA8D;EAAA,IAA7D;IAAEC,KAAF;IAASC,GAAT;IAAcC,IAAd;IAAoBC,QAApB;IAA8BC,iBAA9B;IAAiDC;EAAjD,CAA6D;EACnG,MAAM;IAAEC;EAAF,IAAa,IAAAC,yCAAA,GAAnB;EAEA,MAAMC,SAAS,GAAG,IAAAC,6BAAA,EAAkB,CAACN,QAAD,CAAlB,EAA8B,CAACG,MAAM,CAACI,cAAR,EAAwBJ,MAAM,CAACK,cAA/B,CAA9B,CAAlB;EAEA,oBACE,6BAAC,iBAAD;IAAM,KAAK,EAAEC,MAAM,CAACC;EAApB,gBACE,6BAAC,kCAAD;IAAQ,KAAK,EAAEb,KAAf;IAAsB,IAAI,EAAE,EAA5B;IAAgC,GAAG,EAAEC,GAArC;IAA0C,cAAc,EAAEW,MAAM,CAACE;EAAjE,EADF,eAEE,6BAAC,iBAAD;IAAM,KAAK,EAAE,CAACF,MAAM,CAACG,aAAR,EAAuB;MAAEC,iBAAiB,EAAEV,MAAM,CAACI;IAA5B,CAAvB;EAAb,gBACE,6BAAC,gCAAD;IAAM,SAAS,MAAf;IAAgB,aAAa,EAAE,CAA/B;IAAkC,KAAK,EAAEE,MAAM,CAACV,IAAhD;IAAsD,KAAK,EAAEI,MAAM,CAACK;EAApE,GACGT,IADH,CADF,EAIGe,OAAO,CAACZ,KAAD,CAAP,iBACC,6BAAC,gCAAD;IAAM,KAAK,MAAX;IAAY,KAAK,EAAEC,MAAM,CAACY,cAA1B;IAA0C,KAAK,EAAEN,MAAM,CAACP;EAAxD,GACGA,KADH,CALJ,EASGY,OAAO,CAACb,iBAAD,CAAP,iBACC,6BAAC,6BAAD;IAAkB,OAAO,EAAEA,iBAA3B;IAA8C,QAAQ,EAAED;EAAxD,gBACE,6BAAC,gCAAD;IAAM,KAAK,EAAEK,SAAb;IAAwB,IAAI,EAAE,EAA9B;IAAkC,IAAI,EAAE,MAAxC;IAAgD,cAAc,EAAEI,MAAM,CAACO;EAAvE,EADF,CAVJ,CAFF,CADF;AAoBD,CAzBD;;AA2BA,MAAMP,MAAM,GAAG,IAAAQ,4CAAA,EAAiB;EAC9BP,SAAS,EAAE;IACTQ,aAAa,EAAE,KADN;IAETC,UAAU,EAAE,QAFH;IAGTC,KAAK,EAAE,MAHE;IAITC,MAAM,EAAE;EAJC,CADmB;EAO9BV,MAAM,EAAE;IACNW,UAAU,EAAE,EADN;IAENC,WAAW,EAAE;EAFP,CAPsB;EAW9BrB,KAAK,EAAE;IACLqB,WAAW,EAAE;EADR,CAXuB;EAc9BX,aAAa,EAAE;IACbS,MAAM,EAAE,MADK;IAEbG,IAAI,EAAE,CAFO;IAGbL,UAAU,EAAE,QAHC;IAIbD,aAAa,EAAE,KAJF;IAKbO,YAAY,EAAE,EALD;IAMbC,iBAAiB,EAAE;EANN,CAde;EAsB9BV,aAAa,EAAE;IACbW,OAAO,EAAE;EADI,CAtBe;EAyB9B5B,IAAI,EAAE;IACJyB,IAAI,EAAE,CADF;IAEJD,WAAW,EAAE;EAFT;AAzBwB,CAAjB,CAAf;;4BA+BeK,cAAA,CAAMC,IAAN,CAAWjC,aAAX,C"}
1
+ {"version":3,"names":["UserActionBar","muted","uri","name","disabled","onPressActionMenu","label","colors","useUIKitTheme","iconColor","conditionChaining","onBackground04","onBackground01","styles","container","avatar","infoContainer","borderBottomColor","Boolean","onBackground02","iconContainer","createStyleSheet","flexDirection","alignItems","width","height","marginLeft","marginRight","flex","paddingRight","borderBottomWidth","padding"],"sources":["UserActionBar.tsx"],"sourcesContent":["import React from 'react';\nimport { TouchableOpacity, View } from 'react-native';\n\nimport { Avatar, Icon, Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\ntype Props = {\n uri: string;\n name: string;\n label?: string;\n muted: boolean;\n disabled: boolean;\n onPressActionMenu?: () => void;\n};\nconst UserActionBar = ({ muted, uri, name, disabled, onPressActionMenu, label }: Props) => {\n const { colors } = useUIKitTheme();\n\n const iconColor = conditionChaining([disabled], [colors.onBackground04, colors.onBackground01]);\n\n return (\n <View style={styles.container}>\n <Avatar muted={muted} size={36} uri={uri} containerStyle={styles.avatar} />\n <View style={[styles.infoContainer, { borderBottomColor: colors.onBackground04 }]}>\n <Text subtitle2 numberOfLines={1} style={styles.name} color={colors.onBackground01}>\n {name}\n </Text>\n {Boolean(label) && (\n <Text body2 color={colors.onBackground02} style={styles.label}>\n {label}\n </Text>\n )}\n {Boolean(onPressActionMenu) && (\n <TouchableOpacity onPress={onPressActionMenu} disabled={disabled}>\n <Icon color={iconColor} size={24} icon={'more'} containerStyle={styles.iconContainer} />\n </TouchableOpacity>\n )}\n </View>\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n flexDirection: 'row',\n alignItems: 'center',\n width: '100%',\n height: 56,\n },\n avatar: {\n marginLeft: 16,\n marginRight: 16,\n },\n label: {\n marginRight: 4,\n },\n infoContainer: {\n height: '100%',\n flex: 1,\n alignItems: 'center',\n flexDirection: 'row',\n paddingRight: 12,\n borderBottomWidth: 1,\n },\n iconContainer: {\n padding: 4,\n },\n name: {\n flex: 1,\n marginRight: 8,\n },\n});\n\nexport default UserActionBar;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;AAUA,MAAMA,aAAa,GAAG,QAAqE;EAAA,IAApE;IAAEC,KAAF;IAASC,GAAT;IAAcC,IAAd;IAAoBC,QAApB;IAA8BC,iBAA9B;IAAiDC;EAAjD,CAAoE;EACzF,MAAM;IAAEC;EAAF,IAAa,IAAAC,yCAAA,GAAnB;EAEA,MAAMC,SAAS,GAAG,IAAAC,6BAAA,EAAkB,CAACN,QAAD,CAAlB,EAA8B,CAACG,MAAM,CAACI,cAAR,EAAwBJ,MAAM,CAACK,cAA/B,CAA9B,CAAlB;EAEA,oBACE,6BAAC,iBAAD;IAAM,KAAK,EAAEC,MAAM,CAACC;EAApB,gBACE,6BAAC,kCAAD;IAAQ,KAAK,EAAEb,KAAf;IAAsB,IAAI,EAAE,EAA5B;IAAgC,GAAG,EAAEC,GAArC;IAA0C,cAAc,EAAEW,MAAM,CAACE;EAAjE,EADF,eAEE,6BAAC,iBAAD;IAAM,KAAK,EAAE,CAACF,MAAM,CAACG,aAAR,EAAuB;MAAEC,iBAAiB,EAAEV,MAAM,CAACI;IAA5B,CAAvB;EAAb,gBACE,6BAAC,gCAAD;IAAM,SAAS,MAAf;IAAgB,aAAa,EAAE,CAA/B;IAAkC,KAAK,EAAEE,MAAM,CAACV,IAAhD;IAAsD,KAAK,EAAEI,MAAM,CAACK;EAApE,GACGT,IADH,CADF,EAIGe,OAAO,CAACZ,KAAD,CAAP,iBACC,6BAAC,gCAAD;IAAM,KAAK,MAAX;IAAY,KAAK,EAAEC,MAAM,CAACY,cAA1B;IAA0C,KAAK,EAAEN,MAAM,CAACP;EAAxD,GACGA,KADH,CALJ,EASGY,OAAO,CAACb,iBAAD,CAAP,iBACC,6BAAC,6BAAD;IAAkB,OAAO,EAAEA,iBAA3B;IAA8C,QAAQ,EAAED;EAAxD,gBACE,6BAAC,gCAAD;IAAM,KAAK,EAAEK,SAAb;IAAwB,IAAI,EAAE,EAA9B;IAAkC,IAAI,EAAE,MAAxC;IAAgD,cAAc,EAAEI,MAAM,CAACO;EAAvE,EADF,CAVJ,CAFF,CADF;AAoBD,CAzBD;;AA2BA,MAAMP,MAAM,GAAG,IAAAQ,4CAAA,EAAiB;EAC9BP,SAAS,EAAE;IACTQ,aAAa,EAAE,KADN;IAETC,UAAU,EAAE,QAFH;IAGTC,KAAK,EAAE,MAHE;IAITC,MAAM,EAAE;EAJC,CADmB;EAO9BV,MAAM,EAAE;IACNW,UAAU,EAAE,EADN;IAENC,WAAW,EAAE;EAFP,CAPsB;EAW9BrB,KAAK,EAAE;IACLqB,WAAW,EAAE;EADR,CAXuB;EAc9BX,aAAa,EAAE;IACbS,MAAM,EAAE,MADK;IAEbG,IAAI,EAAE,CAFO;IAGbL,UAAU,EAAE,QAHC;IAIbD,aAAa,EAAE,KAJF;IAKbO,YAAY,EAAE,EALD;IAMbC,iBAAiB,EAAE;EANN,CAde;EAsB9BV,aAAa,EAAE;IACbW,OAAO,EAAE;EADI,CAtBe;EAyB9B5B,IAAI,EAAE;IACJyB,IAAI,EAAE,CADF;IAEJD,WAAW,EAAE;EAFT;AAzBwB,CAAjB,CAAf;eA+Be3B,a"}
@@ -71,8 +71,6 @@ const styles = (0, _uikitReactNativeFoundation.createStyleSheet)({
71
71
  marginRight: 8
72
72
  }
73
73
  });
74
-
75
- var _default = /*#__PURE__*/_react.default.memo(UserSelectableBar);
76
-
74
+ var _default = UserSelectableBar;
77
75
  exports.default = _default;
78
76
  //# sourceMappingURL=UserSelectableBar.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["UserSelectableBar","uri","name","selected","disabled","colors","useUIKitTheme","iconColor","conditionChaining","onBackground04","primary","onBackground03","styles","container","avatar","infoContainer","borderBottomColor","onBackground01","createStyleSheet","flexDirection","alignItems","width","height","paddingHorizontal","marginRight","flex","borderBottomWidth","React","memo"],"sources":["UserSelectableBar.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\n\nimport { Avatar, Icon, Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\ntype Props = {\n uri: string;\n name: string;\n selected: boolean;\n disabled: boolean;\n};\nconst UserSelectableBar: React.FC<Props> = ({ uri, name, selected, disabled }) => {\n const { colors } = useUIKitTheme();\n\n const iconColor = conditionChaining(\n [disabled, selected],\n [colors.onBackground04, colors.primary, colors.onBackground03],\n );\n\n return (\n <View style={styles.container}>\n <Avatar size={36} uri={uri} containerStyle={styles.avatar} />\n <View style={[styles.infoContainer, { borderBottomColor: colors.onBackground04 }]}>\n <Text subtitle2 numberOfLines={1} style={styles.name} color={colors.onBackground01}>\n {name}\n </Text>\n <Icon color={iconColor} size={24} icon={selected ? 'checkbox-on' : 'checkbox-off'} />\n </View>\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n flexDirection: 'row',\n alignItems: 'center',\n width: '100%',\n height: 56,\n paddingHorizontal: 16,\n },\n avatar: {\n marginRight: 16,\n },\n infoContainer: {\n height: '100%',\n flex: 1,\n alignItems: 'center',\n flexDirection: 'row',\n borderBottomWidth: 1,\n },\n name: {\n flex: 1,\n marginRight: 8,\n },\n});\n\nexport default React.memo(UserSelectableBar);\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;AAQA,MAAMA,iBAAkC,GAAG,QAAuC;EAAA,IAAtC;IAAEC,GAAF;IAAOC,IAAP;IAAaC,QAAb;IAAuBC;EAAvB,CAAsC;EAChF,MAAM;IAAEC;EAAF,IAAa,IAAAC,yCAAA,GAAnB;EAEA,MAAMC,SAAS,GAAG,IAAAC,6BAAA,EAChB,CAACJ,QAAD,EAAWD,QAAX,CADgB,EAEhB,CAACE,MAAM,CAACI,cAAR,EAAwBJ,MAAM,CAACK,OAA/B,EAAwCL,MAAM,CAACM,cAA/C,CAFgB,CAAlB;EAKA,oBACE,6BAAC,iBAAD;IAAM,KAAK,EAAEC,MAAM,CAACC;EAApB,gBACE,6BAAC,kCAAD;IAAQ,IAAI,EAAE,EAAd;IAAkB,GAAG,EAAEZ,GAAvB;IAA4B,cAAc,EAAEW,MAAM,CAACE;EAAnD,EADF,eAEE,6BAAC,iBAAD;IAAM,KAAK,EAAE,CAACF,MAAM,CAACG,aAAR,EAAuB;MAAEC,iBAAiB,EAAEX,MAAM,CAACI;IAA5B,CAAvB;EAAb,gBACE,6BAAC,gCAAD;IAAM,SAAS,MAAf;IAAgB,aAAa,EAAE,CAA/B;IAAkC,KAAK,EAAEG,MAAM,CAACV,IAAhD;IAAsD,KAAK,EAAEG,MAAM,CAACY;EAApE,GACGf,IADH,CADF,eAIE,6BAAC,gCAAD;IAAM,KAAK,EAAEK,SAAb;IAAwB,IAAI,EAAE,EAA9B;IAAkC,IAAI,EAAEJ,QAAQ,GAAG,aAAH,GAAmB;EAAnE,EAJF,CAFF,CADF;AAWD,CAnBD;;AAqBA,MAAMS,MAAM,GAAG,IAAAM,4CAAA,EAAiB;EAC9BL,SAAS,EAAE;IACTM,aAAa,EAAE,KADN;IAETC,UAAU,EAAE,QAFH;IAGTC,KAAK,EAAE,MAHE;IAITC,MAAM,EAAE,EAJC;IAKTC,iBAAiB,EAAE;EALV,CADmB;EAQ9BT,MAAM,EAAE;IACNU,WAAW,EAAE;EADP,CARsB;EAW9BT,aAAa,EAAE;IACbO,MAAM,EAAE,MADK;IAEbG,IAAI,EAAE,CAFO;IAGbL,UAAU,EAAE,QAHC;IAIbD,aAAa,EAAE,KAJF;IAKbO,iBAAiB,EAAE;EALN,CAXe;EAkB9BxB,IAAI,EAAE;IACJuB,IAAI,EAAE,CADF;IAEJD,WAAW,EAAE;EAFT;AAlBwB,CAAjB,CAAf;;4BAwBeG,cAAA,CAAMC,IAAN,CAAW5B,iBAAX,C"}
1
+ {"version":3,"names":["UserSelectableBar","uri","name","selected","disabled","colors","useUIKitTheme","iconColor","conditionChaining","onBackground04","primary","onBackground03","styles","container","avatar","infoContainer","borderBottomColor","onBackground01","createStyleSheet","flexDirection","alignItems","width","height","paddingHorizontal","marginRight","flex","borderBottomWidth"],"sources":["UserSelectableBar.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\n\nimport { Avatar, Icon, Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\ntype Props = {\n uri: string;\n name: string;\n selected: boolean;\n disabled: boolean;\n};\nconst UserSelectableBar = ({ uri, name, selected, disabled }: Props) => {\n const { colors } = useUIKitTheme();\n\n const iconColor = conditionChaining(\n [disabled, selected],\n [colors.onBackground04, colors.primary, colors.onBackground03],\n );\n\n return (\n <View style={styles.container}>\n <Avatar size={36} uri={uri} containerStyle={styles.avatar} />\n <View style={[styles.infoContainer, { borderBottomColor: colors.onBackground04 }]}>\n <Text subtitle2 numberOfLines={1} style={styles.name} color={colors.onBackground01}>\n {name}\n </Text>\n <Icon color={iconColor} size={24} icon={selected ? 'checkbox-on' : 'checkbox-off'} />\n </View>\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n flexDirection: 'row',\n alignItems: 'center',\n width: '100%',\n height: 56,\n paddingHorizontal: 16,\n },\n avatar: {\n marginRight: 16,\n },\n infoContainer: {\n height: '100%',\n flex: 1,\n alignItems: 'center',\n flexDirection: 'row',\n borderBottomWidth: 1,\n },\n name: {\n flex: 1,\n marginRight: 8,\n },\n});\n\nexport default UserSelectableBar;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;AAQA,MAAMA,iBAAiB,GAAG,QAA8C;EAAA,IAA7C;IAAEC,GAAF;IAAOC,IAAP;IAAaC,QAAb;IAAuBC;EAAvB,CAA6C;EACtE,MAAM;IAAEC;EAAF,IAAa,IAAAC,yCAAA,GAAnB;EAEA,MAAMC,SAAS,GAAG,IAAAC,6BAAA,EAChB,CAACJ,QAAD,EAAWD,QAAX,CADgB,EAEhB,CAACE,MAAM,CAACI,cAAR,EAAwBJ,MAAM,CAACK,OAA/B,EAAwCL,MAAM,CAACM,cAA/C,CAFgB,CAAlB;EAKA,oBACE,6BAAC,iBAAD;IAAM,KAAK,EAAEC,MAAM,CAACC;EAApB,gBACE,6BAAC,kCAAD;IAAQ,IAAI,EAAE,EAAd;IAAkB,GAAG,EAAEZ,GAAvB;IAA4B,cAAc,EAAEW,MAAM,CAACE;EAAnD,EADF,eAEE,6BAAC,iBAAD;IAAM,KAAK,EAAE,CAACF,MAAM,CAACG,aAAR,EAAuB;MAAEC,iBAAiB,EAAEX,MAAM,CAACI;IAA5B,CAAvB;EAAb,gBACE,6BAAC,gCAAD;IAAM,SAAS,MAAf;IAAgB,aAAa,EAAE,CAA/B;IAAkC,KAAK,EAAEG,MAAM,CAACV,IAAhD;IAAsD,KAAK,EAAEG,MAAM,CAACY;EAApE,GACGf,IADH,CADF,eAIE,6BAAC,gCAAD;IAAM,KAAK,EAAEK,SAAb;IAAwB,IAAI,EAAE,EAA9B;IAAkC,IAAI,EAAEJ,QAAQ,GAAG,aAAH,GAAmB;EAAnE,EAJF,CAFF,CADF;AAWD,CAnBD;;AAqBA,MAAMS,MAAM,GAAG,IAAAM,4CAAA,EAAiB;EAC9BL,SAAS,EAAE;IACTM,aAAa,EAAE,KADN;IAETC,UAAU,EAAE,QAFH;IAGTC,KAAK,EAAE,MAHE;IAITC,MAAM,EAAE,EAJC;IAKTC,iBAAiB,EAAE;EALV,CADmB;EAQ9BT,MAAM,EAAE;IACNU,WAAW,EAAE;EADP,CARsB;EAW9BT,aAAa,EAAE;IACbO,MAAM,EAAE,MADK;IAEbG,IAAI,EAAE,CAFO;IAGbL,UAAU,EAAE,QAHC;IAIbD,aAAa,EAAE,KAJF;IAKbO,iBAAiB,EAAE;EALN,CAXe;EAkB9BxB,IAAI,EAAE;IACJuB,IAAI,EAAE,CADF;IAEJD,WAAW,EAAE;EAFT;AAlBwB,CAAjB,CAAf;eAwBexB,iB"}
@@ -3,7 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.DEFAULT_LONG_PRESS_DELAY = void 0;
6
+ exports.DEPRECATION_WARNING = exports.DEFAULT_LONG_PRESS_DELAY = void 0;
7
7
  const DEFAULT_LONG_PRESS_DELAY = 350;
8
8
  exports.DEFAULT_LONG_PRESS_DELAY = DEFAULT_LONG_PRESS_DELAY;
9
+ const DEPRECATION_WARNING = {
10
+ GROUP_CHANNEL: {
11
+ ON_PRESS_IMAGE_MESSAGE: '`onPressImageMessage` is deprecated, please use `onPressMediaMessage` instead'
12
+ }
13
+ };
14
+ exports.DEPRECATION_WARNING = DEPRECATION_WARNING;
9
15
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_LONG_PRESS_DELAY"],"sources":["constants.ts"],"sourcesContent":["export const DEFAULT_LONG_PRESS_DELAY = 350;\n"],"mappings":";;;;;;AAAO,MAAMA,wBAAwB,GAAG,GAAjC"}
1
+ {"version":3,"names":["DEFAULT_LONG_PRESS_DELAY","DEPRECATION_WARNING","GROUP_CHANNEL","ON_PRESS_IMAGE_MESSAGE"],"sources":["constants.ts"],"sourcesContent":["export const DEFAULT_LONG_PRESS_DELAY = 350;\nexport const DEPRECATION_WARNING = {\n GROUP_CHANNEL: {\n ON_PRESS_IMAGE_MESSAGE: '`onPressImageMessage` is deprecated, please use `onPressMediaMessage` instead',\n },\n} as const;\n"],"mappings":";;;;;;AAAO,MAAMA,wBAAwB,GAAG,GAAjC;;AACA,MAAMC,mBAAmB,GAAG;EACjCC,aAAa,EAAE;IACbC,sBAAsB,EAAE;EADX;AADkB,CAA5B"}
@@ -1 +1 @@
1
- {"version":3,"names":["LocalizationContext","React","createContext","LocalizationProvider","children","stringSet","STRINGS"],"sources":["Localization.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { StringSet } from '../localization/StringSet.type';\n\ntype Props = {\n stringSet: StringSet;\n children?: React.ReactNode;\n};\n\nexport type LocalizationContextType = {\n STRINGS: StringSet;\n};\n\nexport const LocalizationContext = React.createContext<LocalizationContextType | null>(null);\nexport const LocalizationProvider = ({ children, stringSet }: Props) => {\n return <LocalizationContext.Provider value={{ STRINGS: stringSet }}>{children}</LocalizationContext.Provider>;\n};\n"],"mappings":";;;;;;;AAAA;;;;AAaO,MAAMA,mBAAmB,gBAAGC,cAAA,CAAMC,aAAN,CAAoD,IAApD,CAA5B;;;;AACA,MAAMC,oBAAoB,GAAG,QAAoC;EAAA,IAAnC;IAAEC,QAAF;IAAYC;EAAZ,CAAmC;EACtE,oBAAO,6BAAC,mBAAD,CAAqB,QAArB;IAA8B,KAAK,EAAE;MAAEC,OAAO,EAAED;IAAX;EAArC,GAA8DD,QAA9D,CAAP;AACD,CAFM"}
1
+ {"version":3,"names":["LocalizationContext","React","createContext","LocalizationProvider","children","stringSet","STRINGS"],"sources":["Localization.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { StringSet } from '../localization/StringSet.type';\n\ntype Props = React.PropsWithChildren<{\n stringSet: StringSet;\n}>;\n\nexport type LocalizationContextType = {\n STRINGS: StringSet;\n};\n\nexport const LocalizationContext = React.createContext<LocalizationContextType | null>(null);\nexport const LocalizationProvider = ({ children, stringSet }: Props) => {\n return <LocalizationContext.Provider value={{ STRINGS: stringSet }}>{children}</LocalizationContext.Provider>;\n};\n"],"mappings":";;;;;;;AAAA;;;;AAYO,MAAMA,mBAAmB,gBAAGC,cAAA,CAAMC,aAAN,CAAoD,IAApD,CAA5B;;;;AACA,MAAMC,oBAAoB,GAAG,QAAoC;EAAA,IAAnC;IAAEC,QAAF;IAAYC;EAAZ,CAAmC;EACtE,oBAAO,6BAAC,mBAAD,CAAqB,QAArB;IAA8B,KAAK,EAAE;MAAEC,OAAO,EAAED;IAAX;EAArC,GAA8DD,QAA9D,CAAP;AACD,CAFM"}
@@ -18,13 +18,15 @@ const PlatformServiceProvider = _ref => {
18
18
  children,
19
19
  fileService,
20
20
  clipboardService,
21
- notificationService
21
+ notificationService,
22
+ mediaService
22
23
  } = _ref;
23
24
  return /*#__PURE__*/_react.default.createElement(PlatformServiceContext.Provider, {
24
25
  value: {
25
26
  fileService,
26
27
  clipboardService,
27
- notificationService
28
+ notificationService,
29
+ mediaService
28
30
  }
29
31
  }, children);
30
32
  };
@@ -1 +1 @@
1
- {"version":3,"names":["PlatformServiceContext","React","createContext","PlatformServiceProvider","children","fileService","clipboardService","notificationService"],"sources":["PlatformService.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { ClipboardServiceInterface, FileServiceInterface, NotificationServiceInterface } from '../platform/types';\n\ntype Props = {\n fileService: FileServiceInterface;\n clipboardService: ClipboardServiceInterface;\n notificationService: NotificationServiceInterface;\n};\n\nexport const PlatformServiceContext = React.createContext<Props | null>(null);\nexport const PlatformServiceProvider: React.FC<Props> = ({\n children,\n fileService,\n clipboardService,\n notificationService,\n}) => {\n return (\n <PlatformServiceContext.Provider value={{ fileService, clipboardService, notificationService }}>\n {children}\n </PlatformServiceContext.Provider>\n );\n};\n"],"mappings":";;;;;;;AAAA;;;;AAUO,MAAMA,sBAAsB,gBAAGC,cAAA,CAAMC,aAAN,CAAkC,IAAlC,CAA/B;;;;AACA,MAAMC,uBAAwC,GAAG,QAKlD;EAAA,IALmD;IACvDC,QADuD;IAEvDC,WAFuD;IAGvDC,gBAHuD;IAIvDC;EAJuD,CAKnD;EACJ,oBACE,6BAAC,sBAAD,CAAwB,QAAxB;IAAiC,KAAK,EAAE;MAAEF,WAAF;MAAeC,gBAAf;MAAiCC;IAAjC;EAAxC,GACGH,QADH,CADF;AAKD,CAXM"}
1
+ {"version":3,"names":["PlatformServiceContext","React","createContext","PlatformServiceProvider","children","fileService","clipboardService","notificationService","mediaService"],"sources":["PlatformService.tsx"],"sourcesContent":["import React from 'react';\n\nimport type {\n ClipboardServiceInterface,\n FileServiceInterface,\n MediaServiceInterface,\n NotificationServiceInterface,\n} from '../platform/types';\n\ntype Props = React.PropsWithChildren<{\n fileService: FileServiceInterface;\n clipboardService: ClipboardServiceInterface;\n notificationService: NotificationServiceInterface;\n mediaService?: MediaServiceInterface;\n}>;\n\nexport const PlatformServiceContext = React.createContext<Props | null>(null);\nexport const PlatformServiceProvider = ({\n children,\n fileService,\n clipboardService,\n notificationService,\n mediaService,\n}: Props) => {\n return (\n <PlatformServiceContext.Provider value={{ fileService, clipboardService, notificationService, mediaService }}>\n {children}\n </PlatformServiceContext.Provider>\n );\n};\n"],"mappings":";;;;;;;AAAA;;;;AAgBO,MAAMA,sBAAsB,gBAAGC,cAAA,CAAMC,aAAN,CAAkC,IAAlC,CAA/B;;;;AACA,MAAMC,uBAAuB,GAAG,QAM1B;EAAA,IAN2B;IACtCC,QADsC;IAEtCC,WAFsC;IAGtCC,gBAHsC;IAItCC,mBAJsC;IAKtCC;EALsC,CAM3B;EACX,oBACE,6BAAC,sBAAD,CAAwB,QAAxB;IAAiC,KAAK,EAAE;MAAEH,WAAF;MAAeC,gBAAf;MAAiCC,mBAAjC;MAAsDC;IAAtD;EAAxC,GACGJ,QADH,CADF;AAKD,CAZM"}
@@ -25,7 +25,9 @@ const SendbirdChatProvider = _ref => {
25
25
  let {
26
26
  children,
27
27
  sdkInstance,
28
- enableAutoPushTokenRegistration
28
+ enableAutoPushTokenRegistration,
29
+ enableChannelListMessageReceiptStatus,
30
+ enableChannelListTypingIndicator
29
31
  } = _ref;
30
32
  const [currentUser, _setCurrentUser] = (0, _react.useState)();
31
33
  const forceUpdate = (0, _uikitUtils.useForceUpdate)();
@@ -75,7 +77,9 @@ const SendbirdChatProvider = _ref => {
75
77
  updateCurrentUserInfo,
76
78
  markAsDeliveredWithChannel,
77
79
  features: { ...appFeatures,
78
- autoPushTokenRegistrationEnabled: enableAutoPushTokenRegistration
80
+ autoPushTokenRegistrationEnabled: enableAutoPushTokenRegistration,
81
+ channelListTypingIndicatorEnabled: enableChannelListTypingIndicator,
82
+ channelListMessageReceiptStatusEnabled: enableChannelListMessageReceiptStatus
79
83
  }
80
84
  };
81
85
  return /*#__PURE__*/_react.default.createElement(SendbirdChatContext.Provider, {
@@ -1 +1 @@
1
- {"version":3,"names":["SendbirdChatContext","React","createContext","SendbirdChatProvider","children","sdkInstance","enableAutoPushTokenRegistration","currentUser","_setCurrentUser","useState","forceUpdate","useForceUpdate","appFeatures","useAppFeatures","setCurrentUser","useCallback","user","updateCurrentUserInfo","nickname","profile","Error","profileUrl","updateCurrentUserInfoWithProfileImage","markAsDeliveredWithChannel","channel","deliveryReceiptEnabled","unreadMessageCount","markAsDelivered","url","useEffect","listener","status","getConnectionState","setForegroundState","setBackgroundState","subscriber","AppState","addEventListener","remove","value","sdk","features","autoPushTokenRegistrationEnabled"],"sources":["SendbirdChat.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport { AppState, AppStateStatus } from 'react-native';\n\nimport { useAppFeatures } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdChatSDK, SendbirdGroupChannel, SendbirdUser } from '@sendbird/uikit-utils';\nimport { useForceUpdate } from '@sendbird/uikit-utils';\n\nimport type { FileType } from '../platform/types';\n\ntype Props = {\n sdkInstance: SendbirdChatSDK;\n\n enableAutoPushTokenRegistration: boolean;\n // enableChannelListTypingIndicator: boolean;\n // enableChannelListMessageReceiptStatus: boolean;\n};\n\ntype Context = {\n sdk: SendbirdChatSDK;\n currentUser?: SendbirdUser;\n setCurrentUser: React.Dispatch<React.SetStateAction<SendbirdUser | undefined>>;\n\n // helper functions\n updateCurrentUserInfo: (nickname: string, profile?: string | FileType) => Promise<SendbirdUser>;\n markAsDeliveredWithChannel: (channel: SendbirdGroupChannel) => void;\n\n features: {\n // UIKit features\n autoPushTokenRegistrationEnabled: boolean;\n // channelListTypingIndicatorEnabled: boolean;\n // channelListMessageReceiptStateEnabled: boolean;\n\n // Sendbird application features\n deliveryReceiptEnabled: boolean;\n broadcastChannelEnabled: boolean;\n superGroupChannelEnabled: boolean;\n reactionEnabled: boolean;\n };\n};\n\nexport const SendbirdChatContext = React.createContext<Context | null>(null);\nexport const SendbirdChatProvider: React.FC<Props> = ({ children, sdkInstance, enableAutoPushTokenRegistration }) => {\n const [currentUser, _setCurrentUser] = useState<SendbirdUser>();\n const forceUpdate = useForceUpdate();\n const appFeatures = useAppFeatures(sdkInstance);\n\n const setCurrentUser: Context['setCurrentUser'] = useCallback((user) => {\n // NOTE: Sendbird SDK handle User object is always same object, so force update after setCurrentUser\n _setCurrentUser(user);\n forceUpdate();\n }, []);\n\n const updateCurrentUserInfo: Context['updateCurrentUserInfo'] = useCallback(\n async (nickname, profile) => {\n let user = currentUser;\n\n if (!user) throw new Error('Current user is not defined, please connect using `useConnection()` hook first');\n\n if (typeof profile === 'undefined') {\n user = await sdkInstance.updateCurrentUserInfo(nickname, sdkInstance.currentUser.profileUrl);\n } else if (typeof profile === 'string') {\n user = await sdkInstance.updateCurrentUserInfo(nickname, profile);\n } else if (typeof profile === 'object') {\n user = await sdkInstance.updateCurrentUserInfoWithProfileImage(nickname, profile);\n } else {\n throw new Error(`Cannot update profile, not supported profile type(${typeof profile})`);\n }\n\n setCurrentUser(user);\n return user;\n },\n [sdkInstance, currentUser, setCurrentUser],\n );\n\n const markAsDeliveredWithChannel: Context['markAsDeliveredWithChannel'] = useCallback(\n (channel: SendbirdGroupChannel) => {\n if (appFeatures.deliveryReceiptEnabled && channel.unreadMessageCount > 0) {\n sdkInstance.markAsDelivered(channel.url);\n }\n },\n [sdkInstance, appFeatures.deliveryReceiptEnabled],\n );\n\n useEffect(() => {\n const listener = (status: AppStateStatus) => {\n // 'active' | 'background' | 'inactive' | 'unknown' | 'extension';\n if (status === 'active') sdkInstance.getConnectionState() === 'CLOSED' && sdkInstance.setForegroundState();\n else sdkInstance.getConnectionState() === 'OPEN' && sdkInstance.setBackgroundState();\n };\n\n const subscriber = AppState.addEventListener('change', listener);\n return () => subscriber.remove();\n }, [sdkInstance]);\n\n const value: Context = {\n sdk: sdkInstance,\n currentUser,\n setCurrentUser,\n\n updateCurrentUserInfo,\n markAsDeliveredWithChannel,\n\n features: {\n ...appFeatures,\n autoPushTokenRegistrationEnabled: enableAutoPushTokenRegistration,\n },\n };\n\n return <SendbirdChatContext.Provider value={value}>{children}</SendbirdChatContext.Provider>;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["SendbirdChatContext","React","createContext","SendbirdChatProvider","children","sdkInstance","enableAutoPushTokenRegistration","enableChannelListMessageReceiptStatus","enableChannelListTypingIndicator","currentUser","_setCurrentUser","useState","forceUpdate","useForceUpdate","appFeatures","useAppFeatures","setCurrentUser","useCallback","user","updateCurrentUserInfo","nickname","profile","Error","profileUrl","updateCurrentUserInfoWithProfileImage","markAsDeliveredWithChannel","channel","deliveryReceiptEnabled","unreadMessageCount","markAsDelivered","url","useEffect","listener","status","getConnectionState","setForegroundState","setBackgroundState","subscriber","AppState","addEventListener","remove","value","sdk","features","autoPushTokenRegistrationEnabled","channelListTypingIndicatorEnabled","channelListMessageReceiptStatusEnabled"],"sources":["SendbirdChat.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport { AppState, AppStateStatus } from 'react-native';\n\nimport { useAppFeatures } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdChatSDK, SendbirdGroupChannel, SendbirdUser } from '@sendbird/uikit-utils';\nimport { useForceUpdate } from '@sendbird/uikit-utils';\n\nimport type { FileType } from '../platform/types';\n\ntype Props = React.PropsWithChildren<{\n sdkInstance: SendbirdChatSDK;\n\n enableAutoPushTokenRegistration: boolean;\n enableChannelListTypingIndicator: boolean;\n enableChannelListMessageReceiptStatus: boolean;\n}>;\n\ntype Context = {\n sdk: SendbirdChatSDK;\n currentUser?: SendbirdUser;\n setCurrentUser: React.Dispatch<React.SetStateAction<SendbirdUser | undefined>>;\n\n // helper functions\n updateCurrentUserInfo: (nickname: string, profile?: string | FileType) => Promise<SendbirdUser>;\n markAsDeliveredWithChannel: (channel: SendbirdGroupChannel) => void;\n\n features: {\n // UIKit features\n autoPushTokenRegistrationEnabled: boolean;\n channelListTypingIndicatorEnabled: boolean;\n channelListMessageReceiptStatusEnabled: boolean;\n\n // Sendbird application features\n deliveryReceiptEnabled: boolean;\n broadcastChannelEnabled: boolean;\n superGroupChannelEnabled: boolean;\n reactionEnabled: boolean;\n };\n};\n\nexport const SendbirdChatContext = React.createContext<Context | null>(null);\nexport const SendbirdChatProvider = ({\n children,\n sdkInstance,\n enableAutoPushTokenRegistration,\n enableChannelListMessageReceiptStatus,\n enableChannelListTypingIndicator,\n}: Props) => {\n const [currentUser, _setCurrentUser] = useState<SendbirdUser>();\n const forceUpdate = useForceUpdate();\n const appFeatures = useAppFeatures(sdkInstance);\n\n const setCurrentUser: Context['setCurrentUser'] = useCallback((user) => {\n // NOTE: Sendbird SDK handle User object is always same object, so force update after setCurrentUser\n _setCurrentUser(user);\n forceUpdate();\n }, []);\n\n const updateCurrentUserInfo: Context['updateCurrentUserInfo'] = useCallback(\n async (nickname, profile) => {\n let user = currentUser;\n\n if (!user) throw new Error('Current user is not defined, please connect using `useConnection()` hook first');\n\n if (typeof profile === 'undefined') {\n user = await sdkInstance.updateCurrentUserInfo(nickname, sdkInstance.currentUser.profileUrl);\n } else if (typeof profile === 'string') {\n user = await sdkInstance.updateCurrentUserInfo(nickname, profile);\n } else if (typeof profile === 'object') {\n user = await sdkInstance.updateCurrentUserInfoWithProfileImage(nickname, profile);\n } else {\n throw new Error(`Cannot update profile, not supported profile type(${typeof profile})`);\n }\n\n setCurrentUser(user);\n return user;\n },\n [sdkInstance, currentUser, setCurrentUser],\n );\n\n const markAsDeliveredWithChannel: Context['markAsDeliveredWithChannel'] = useCallback(\n (channel: SendbirdGroupChannel) => {\n if (appFeatures.deliveryReceiptEnabled && channel.unreadMessageCount > 0) {\n sdkInstance.markAsDelivered(channel.url);\n }\n },\n [sdkInstance, appFeatures.deliveryReceiptEnabled],\n );\n\n useEffect(() => {\n const listener = (status: AppStateStatus) => {\n // 'active' | 'background' | 'inactive' | 'unknown' | 'extension';\n if (status === 'active') sdkInstance.getConnectionState() === 'CLOSED' && sdkInstance.setForegroundState();\n else sdkInstance.getConnectionState() === 'OPEN' && sdkInstance.setBackgroundState();\n };\n\n const subscriber = AppState.addEventListener('change', listener);\n return () => subscriber.remove();\n }, [sdkInstance]);\n\n const value: Context = {\n sdk: sdkInstance,\n currentUser,\n setCurrentUser,\n\n updateCurrentUserInfo,\n markAsDeliveredWithChannel,\n\n features: {\n ...appFeatures,\n autoPushTokenRegistrationEnabled: enableAutoPushTokenRegistration,\n channelListTypingIndicatorEnabled: enableChannelListTypingIndicator,\n channelListMessageReceiptStatusEnabled: enableChannelListMessageReceiptStatus,\n },\n };\n\n return <SendbirdChatContext.Provider value={value}>{children}</SendbirdChatContext.Provider>;\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["GroupChannelHeader","onPressHeaderLeft","onPressHeaderRight","headerTitle","channel","useContext","GroupChannelContexts","Fragment","typingUsers","TypingIndicator","STRINGS","useLocalization","HeaderComponent","useHeaderStyle","subtitle","LABELS","TYPING_INDICATOR_TYPINGS","styles","titleContainer","avatarGroup","flexShrink","Boolean","createStyleSheet","maxWidth","flexDirection","alignItems","marginRight","marginTop"],"sources":["GroupChannelHeader.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { View } from 'react-native';\n\nimport { Header, Icon, createStyleSheet, useHeaderStyle } from '@sendbird/uikit-react-native-foundation';\n\nimport ChannelCover from '../../../components/ChannelCover';\nimport { useLocalization } from '../../../hooks/useContext';\nimport { GroupChannelContexts } from '../module/moduleContext';\nimport type { GroupChannelProps } from '../types';\n\nconst GroupChannelHeader: React.FC<GroupChannelProps['Header']> = ({ onPressHeaderLeft, onPressHeaderRight }) => {\n const { headerTitle, channel } = useContext(GroupChannelContexts.Fragment);\n const { typingUsers } = useContext(GroupChannelContexts.TypingIndicator);\n const { STRINGS } = useLocalization();\n const { HeaderComponent } = useHeaderStyle();\n const subtitle = STRINGS.LABELS.TYPING_INDICATOR_TYPINGS(typingUsers);\n\n return (\n <HeaderComponent\n clearTitleMargin\n title={\n <View style={styles.titleContainer}>\n <ChannelCover channel={channel} size={34} containerStyle={styles.avatarGroup} />\n <View style={{ flexShrink: 1 }}>\n <Header.Title h2>{headerTitle}</Header.Title>\n {Boolean(subtitle) && subtitle && <Header.Subtitle style={styles.subtitle}>{subtitle}</Header.Subtitle>}\n </View>\n </View>\n }\n left={<Icon icon={'arrow-left'} />}\n onPressLeft={onPressHeaderLeft}\n right={<Icon icon={'info'} />}\n onPressRight={onPressHeaderRight}\n />\n );\n};\n\nconst styles = createStyleSheet({\n titleContainer: {\n maxWidth: '100%',\n flexDirection: 'row',\n alignItems: 'center',\n },\n avatarGroup: {\n marginRight: 8,\n },\n subtitle: {\n marginTop: 2,\n },\n});\n\nexport default GroupChannelHeader;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AAEA;;AACA;;AACA;;;;;;;;AAGA,MAAMA,kBAAyD,GAAG,QAA+C;EAAA,IAA9C;IAAEC,iBAAF;IAAqBC;EAArB,CAA8C;EAC/G,MAAM;IAAEC,WAAF;IAAeC;EAAf,IAA2B,IAAAC,iBAAA,EAAWC,mCAAA,CAAqBC,QAAhC,CAAjC;EACA,MAAM;IAAEC;EAAF,IAAkB,IAAAH,iBAAA,EAAWC,mCAAA,CAAqBG,eAAhC,CAAxB;EACA,MAAM;IAAEC;EAAF,IAAc,IAAAC,2BAAA,GAApB;EACA,MAAM;IAAEC;EAAF,IAAsB,IAAAC,0CAAA,GAA5B;EACA,MAAMC,QAAQ,GAAGJ,OAAO,CAACK,MAAR,CAAeC,wBAAf,CAAwCR,WAAxC,CAAjB;EAEA,oBACE,6BAAC,eAAD;IACE,gBAAgB,MADlB;IAEE,KAAK,eACH,6BAAC,iBAAD;MAAM,KAAK,EAAES,MAAM,CAACC;IAApB,gBACE,6BAAC,qBAAD;MAAc,OAAO,EAAEd,OAAvB;MAAgC,IAAI,EAAE,EAAtC;MAA0C,cAAc,EAAEa,MAAM,CAACE;IAAjE,EADF,eAEE,6BAAC,iBAAD;MAAM,KAAK,EAAE;QAAEC,UAAU,EAAE;MAAd;IAAb,gBACE,6BAAC,kCAAD,CAAQ,KAAR;MAAc,EAAE;IAAhB,GAAkBjB,WAAlB,CADF,EAEGkB,OAAO,CAACP,QAAD,CAAP,IAAqBA,QAArB,iBAAiC,6BAAC,kCAAD,CAAQ,QAAR;MAAiB,KAAK,EAAEG,MAAM,CAACH;IAA/B,GAA0CA,QAA1C,CAFpC,CAFF,CAHJ;IAWE,IAAI,eAAE,6BAAC,gCAAD;MAAM,IAAI,EAAE;IAAZ,EAXR;IAYE,WAAW,EAAEb,iBAZf;IAaE,KAAK,eAAE,6BAAC,gCAAD;MAAM,IAAI,EAAE;IAAZ,EAbT;IAcE,YAAY,EAAEC;EAdhB,EADF;AAkBD,CAzBD;;AA2BA,MAAMe,MAAM,GAAG,IAAAK,4CAAA,EAAiB;EAC9BJ,cAAc,EAAE;IACdK,QAAQ,EAAE,MADI;IAEdC,aAAa,EAAE,KAFD;IAGdC,UAAU,EAAE;EAHE,CADc;EAM9BN,WAAW,EAAE;IACXO,WAAW,EAAE;EADF,CANiB;EAS9BZ,QAAQ,EAAE;IACRa,SAAS,EAAE;EADH;AAToB,CAAjB,CAAf;eAce3B,kB"}
1
+ {"version":3,"names":["GroupChannelHeader","onPressHeaderLeft","onPressHeaderRight","headerTitle","channel","useContext","GroupChannelContexts","Fragment","typingUsers","TypingIndicator","STRINGS","useLocalization","HeaderComponent","useHeaderStyle","subtitle","LABELS","TYPING_INDICATOR_TYPINGS","styles","titleContainer","avatarGroup","flexShrink","Boolean","createStyleSheet","maxWidth","flexDirection","alignItems","marginRight","marginTop"],"sources":["GroupChannelHeader.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { View } from 'react-native';\n\nimport { Header, Icon, createStyleSheet, useHeaderStyle } from '@sendbird/uikit-react-native-foundation';\n\nimport ChannelCover from '../../../components/ChannelCover';\nimport { useLocalization } from '../../../hooks/useContext';\nimport { GroupChannelContexts } from '../module/moduleContext';\nimport type { GroupChannelProps } from '../types';\n\nconst GroupChannelHeader = ({ onPressHeaderLeft, onPressHeaderRight }: GroupChannelProps['Header']) => {\n const { headerTitle, channel } = useContext(GroupChannelContexts.Fragment);\n const { typingUsers } = useContext(GroupChannelContexts.TypingIndicator);\n const { STRINGS } = useLocalization();\n const { HeaderComponent } = useHeaderStyle();\n const subtitle = STRINGS.LABELS.TYPING_INDICATOR_TYPINGS(typingUsers);\n\n return (\n <HeaderComponent\n clearTitleMargin\n title={\n <View style={styles.titleContainer}>\n <ChannelCover channel={channel} size={34} containerStyle={styles.avatarGroup} />\n <View style={{ flexShrink: 1 }}>\n <Header.Title h2>{headerTitle}</Header.Title>\n {Boolean(subtitle) && subtitle && <Header.Subtitle style={styles.subtitle}>{subtitle}</Header.Subtitle>}\n </View>\n </View>\n }\n left={<Icon icon={'arrow-left'} />}\n onPressLeft={onPressHeaderLeft}\n right={<Icon icon={'info'} />}\n onPressRight={onPressHeaderRight}\n />\n );\n};\n\nconst styles = createStyleSheet({\n titleContainer: {\n maxWidth: '100%',\n flexDirection: 'row',\n alignItems: 'center',\n },\n avatarGroup: {\n marginRight: 8,\n },\n subtitle: {\n marginTop: 2,\n },\n});\n\nexport default GroupChannelHeader;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AAEA;;AACA;;AACA;;;;;;;;AAGA,MAAMA,kBAAkB,GAAG,QAA4E;EAAA,IAA3E;IAAEC,iBAAF;IAAqBC;EAArB,CAA2E;EACrG,MAAM;IAAEC,WAAF;IAAeC;EAAf,IAA2B,IAAAC,iBAAA,EAAWC,mCAAA,CAAqBC,QAAhC,CAAjC;EACA,MAAM;IAAEC;EAAF,IAAkB,IAAAH,iBAAA,EAAWC,mCAAA,CAAqBG,eAAhC,CAAxB;EACA,MAAM;IAAEC;EAAF,IAAc,IAAAC,2BAAA,GAApB;EACA,MAAM;IAAEC;EAAF,IAAsB,IAAAC,0CAAA,GAA5B;EACA,MAAMC,QAAQ,GAAGJ,OAAO,CAACK,MAAR,CAAeC,wBAAf,CAAwCR,WAAxC,CAAjB;EAEA,oBACE,6BAAC,eAAD;IACE,gBAAgB,MADlB;IAEE,KAAK,eACH,6BAAC,iBAAD;MAAM,KAAK,EAAES,MAAM,CAACC;IAApB,gBACE,6BAAC,qBAAD;MAAc,OAAO,EAAEd,OAAvB;MAAgC,IAAI,EAAE,EAAtC;MAA0C,cAAc,EAAEa,MAAM,CAACE;IAAjE,EADF,eAEE,6BAAC,iBAAD;MAAM,KAAK,EAAE;QAAEC,UAAU,EAAE;MAAd;IAAb,gBACE,6BAAC,kCAAD,CAAQ,KAAR;MAAc,EAAE;IAAhB,GAAkBjB,WAAlB,CADF,EAEGkB,OAAO,CAACP,QAAD,CAAP,IAAqBA,QAArB,iBAAiC,6BAAC,kCAAD,CAAQ,QAAR;MAAiB,KAAK,EAAEG,MAAM,CAACH;IAA/B,GAA0CA,QAA1C,CAFpC,CAFF,CAHJ;IAWE,IAAI,eAAE,6BAAC,gCAAD;MAAM,IAAI,EAAE;IAAZ,EAXR;IAYE,WAAW,EAAEb,iBAZf;IAaE,KAAK,eAAE,6BAAC,gCAAD;MAAM,IAAI,EAAE;IAAZ,EAbT;IAcE,YAAY,EAAEC;EAdhB,EADF;AAkBD,CAzBD;;AA2BA,MAAMe,MAAM,GAAG,IAAAK,4CAAA,EAAiB;EAC9BJ,cAAc,EAAE;IACdK,QAAQ,EAAE,MADI;IAEdC,aAAa,EAAE,KAFD;IAGdC,UAAU,EAAE;EAHE,CADc;EAM9BN,WAAW,EAAE;IACXO,WAAW,EAAE;EADF,CANiB;EAS9BZ,QAAQ,EAAE;IACRa,SAAS,EAAE;EADH;AAToB,CAAjB,CAAf;eAce3B,kB"}
@@ -1 +1 @@
1
- {"version":3,"names":["AUTO_FOCUS","Platform","select","ios","android","default","EditInput","text","setText","editMessage","setEditMessage","onUpdateUserMessage","STRINGS","useLocalization","inputRef","useRef","toast","useToast","useEffect","isUserMessage","message","setTimeout","current","focus","onPressCancel","onPressSave","catch","show","TOAST","UPDATE_MSG_ERROR","styles","editInputContainer","inputWrapper","input","GROUP_CHANNEL","INPUT_PLACEHOLDER_ACTIVE","marginTop","flexDirection","INPUT_EDIT_CANCEL","space","INPUT_EDIT_OK","createStyleSheet","paddingVertical","paddingHorizontal","alignItems","flex","marginRight","minHeight","maxHeight","borderRadius"],"sources":["EditInput.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport { Platform, TextInput as RNTextInput, View } from 'react-native';\n\nimport { Button, TextInput, createStyleSheet, useToast } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdFileMessage, SendbirdUserMessage } from '@sendbird/uikit-utils';\n\nimport { useLocalization } from '../../../../hooks/useContext';\nimport type { GroupChannelProps } from '../../types';\n\ntype EditInputProps = GroupChannelProps['Input'] & {\n text: string;\n setText: (val: string) => void;\n editMessage: SendbirdUserMessage | SendbirdFileMessage;\n setEditMessage: (msg?: SendbirdUserMessage | SendbirdFileMessage) => void;\n};\n\nconst AUTO_FOCUS = Platform.select({ ios: false, android: true, default: false });\nconst EditInput: React.FC<EditInputProps> = ({ text, setText, editMessage, setEditMessage, onUpdateUserMessage }) => {\n const { STRINGS } = useLocalization();\n const inputRef = useRef<RNTextInput>(null);\n const toast = useToast();\n\n useEffect(() => {\n if (editMessage.isUserMessage()) {\n setText(editMessage.message ?? '');\n\n if (!AUTO_FOCUS) setTimeout(() => inputRef.current?.focus(), 500);\n }\n }, [editMessage]);\n\n const onPressCancel = () => {\n setEditMessage();\n setText('');\n };\n\n const onPressSave = () => {\n if (editMessage.isUserMessage()) {\n onUpdateUserMessage(text, editMessage).catch(() => toast.show(STRINGS.TOAST.UPDATE_MSG_ERROR, 'error'));\n }\n setEditMessage();\n setText('');\n };\n\n return (\n <View style={styles.editInputContainer}>\n <View style={styles.inputWrapper}>\n <TextInput\n autoFocus={AUTO_FOCUS}\n ref={inputRef}\n multiline\n value={text}\n onChangeText={setText}\n style={styles.input}\n placeholder={STRINGS.GROUP_CHANNEL.INPUT_PLACEHOLDER_ACTIVE}\n />\n </View>\n <View style={{ marginTop: 8, flexDirection: 'row' }}>\n <Button variant={'text'} onPress={onPressCancel}>\n {STRINGS.GROUP_CHANNEL.INPUT_EDIT_CANCEL}\n </Button>\n <View style={styles.space} />\n <Button variant={'contained'} onPress={onPressSave}>\n {STRINGS.GROUP_CHANNEL.INPUT_EDIT_OK}\n </Button>\n </View>\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n editInputContainer: {\n paddingVertical: 10,\n paddingHorizontal: 16,\n flexDirection: 'column',\n alignItems: 'center',\n },\n input: {\n flex: 1,\n marginRight: 4,\n minHeight: 36,\n maxHeight: 36 * Platform.select({ ios: 2.5, default: 2 }),\n borderRadius: 20,\n },\n inputWrapper: {\n flexDirection: 'row',\n },\n space: {\n flex: 1,\n },\n});\n\nexport default EditInput;\n"],"mappings":"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"}
1
+ {"version":3,"names":["AUTO_FOCUS","Platform","select","ios","android","default","EditInput","text","setText","editMessage","setEditMessage","onUpdateUserMessage","STRINGS","useLocalization","inputRef","useRef","toast","useToast","useEffect","isUserMessage","message","setTimeout","current","focus","onPressCancel","onPressSave","catch","show","TOAST","UPDATE_MSG_ERROR","styles","editInputContainer","inputWrapper","input","GROUP_CHANNEL","INPUT_PLACEHOLDER_ACTIVE","marginTop","flexDirection","INPUT_EDIT_CANCEL","space","INPUT_EDIT_OK","createStyleSheet","paddingVertical","paddingHorizontal","alignItems","flex","marginRight","minHeight","maxHeight","borderRadius"],"sources":["EditInput.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport { Platform, TextInput as RNTextInput, View } from 'react-native';\n\nimport { Button, TextInput, createStyleSheet, useToast } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdFileMessage, SendbirdUserMessage } from '@sendbird/uikit-utils';\n\nimport { useLocalization } from '../../../../hooks/useContext';\nimport type { GroupChannelProps } from '../../types';\n\ntype EditInputProps = GroupChannelProps['Input'] & {\n text: string;\n setText: (val: string) => void;\n editMessage: SendbirdUserMessage | SendbirdFileMessage;\n setEditMessage: (msg?: SendbirdUserMessage | SendbirdFileMessage) => void;\n};\n\nconst AUTO_FOCUS = Platform.select({ ios: false, android: true, default: false });\nconst EditInput = ({ text, setText, editMessage, setEditMessage, onUpdateUserMessage }: EditInputProps) => {\n const { STRINGS } = useLocalization();\n const inputRef = useRef<RNTextInput>(null);\n const toast = useToast();\n\n useEffect(() => {\n if (editMessage.isUserMessage()) {\n setText(editMessage.message ?? '');\n\n if (!AUTO_FOCUS) setTimeout(() => inputRef.current?.focus(), 500);\n }\n }, [editMessage]);\n\n const onPressCancel = () => {\n setEditMessage();\n setText('');\n };\n\n const onPressSave = () => {\n if (editMessage.isUserMessage()) {\n onUpdateUserMessage(text, editMessage).catch(() => toast.show(STRINGS.TOAST.UPDATE_MSG_ERROR, 'error'));\n }\n setEditMessage();\n setText('');\n };\n\n return (\n <View style={styles.editInputContainer}>\n <View style={styles.inputWrapper}>\n <TextInput\n autoFocus={AUTO_FOCUS}\n ref={inputRef}\n multiline\n value={text}\n onChangeText={setText}\n style={styles.input}\n placeholder={STRINGS.GROUP_CHANNEL.INPUT_PLACEHOLDER_ACTIVE}\n />\n </View>\n <View style={{ marginTop: 8, flexDirection: 'row' }}>\n <Button variant={'text'} onPress={onPressCancel}>\n {STRINGS.GROUP_CHANNEL.INPUT_EDIT_CANCEL}\n </Button>\n <View style={styles.space} />\n <Button variant={'contained'} onPress={onPressSave}>\n {STRINGS.GROUP_CHANNEL.INPUT_EDIT_OK}\n </Button>\n </View>\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n editInputContainer: {\n paddingVertical: 10,\n paddingHorizontal: 16,\n flexDirection: 'column',\n alignItems: 'center',\n },\n input: {\n flex: 1,\n marginRight: 4,\n minHeight: 36,\n maxHeight: 36 * Platform.select({ ios: 2.5, default: 2 }),\n borderRadius: 20,\n },\n inputWrapper: {\n flexDirection: 'row',\n },\n space: {\n flex: 1,\n },\n});\n\nexport default EditInput;\n"],"mappings":"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"}
@@ -51,7 +51,7 @@ const SendInput = _ref => {
51
51
  icon: 'camera',
52
52
  onPress: async () => {
53
53
  const photo = await fileService.openCamera({
54
- mediaType: 'photo',
54
+ mediaType: 'all',
55
55
  onOpenFailureWithToastMessage: () => toast.show(STRINGS.TOAST.OPEN_CAMERA_ERROR, 'error')
56
56
  });
57
57
 
@@ -1 +1 @@
1
- {"version":3,"names":["SendInput","onSendUserMessage","onSendFileMessage","text","setText","disabled","STRINGS","useLocalization","openSheet","useBottomSheet","fileService","usePlatformService","colors","useUIKitTheme","toast","useToast","onPressSend","catch","show","TOAST","SEND_MSG_ERROR","onPressAttachment","sheetItems","title","GROUP_CHANNEL","DIALOG_ATTACHMENT_CAMERA","icon","onPress","photo","openCamera","mediaType","onOpenFailureWithToastMessage","OPEN_CAMERA_ERROR","DIALOG_ATTACHMENT_PHOTO_LIBRARY","openMediaLibrary","selectionLimit","OPEN_PHOTO_LIBRARY_ERROR","DIALOG_ATTACHMENT_FILES","file","openDocument","OPEN_FILES_ERROR","styles","sendInputContainer","ui","input","default","highlight","active","iconAttach","conditionChaining","INPUT_PLACEHOLDER_DISABLED","INPUT_PLACEHOLDER_ACTIVE","Boolean","trim","iconSend","createStyleSheet","paddingVertical","paddingHorizontal","alignItems","flexDirection","flex","marginRight","minHeight","maxHeight","Platform","select","ios","borderRadius","padding","marginLeft"],"sources":["SendInput.tsx"],"sourcesContent":["import React from 'react';\nimport { Platform, TouchableOpacity, View } from 'react-native';\n\nimport {\n Icon,\n TextInput,\n createStyleSheet,\n useBottomSheet,\n useToast,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\nimport { useLocalization, usePlatformService } from '../../../../hooks/useContext';\nimport type { GroupChannelProps } from '../../types';\n\ntype SendInputProps = GroupChannelProps['Input'] & {\n text: string;\n setText: (val: string) => void;\n disabled: boolean;\n};\nconst SendInput: React.FC<SendInputProps> = ({ onSendUserMessage, onSendFileMessage, text, setText, disabled }) => {\n const { STRINGS } = useLocalization();\n const { openSheet } = useBottomSheet();\n const { fileService } = usePlatformService();\n const { colors } = useUIKitTheme();\n const toast = useToast();\n\n const onPressSend = () => {\n onSendUserMessage(text).catch(() => toast.show(STRINGS.TOAST.SEND_MSG_ERROR, 'error'));\n setText('');\n };\n const onPressAttachment = () => {\n openSheet({\n sheetItems: [\n {\n title: STRINGS.GROUP_CHANNEL.DIALOG_ATTACHMENT_CAMERA,\n icon: 'camera',\n onPress: async () => {\n const photo = await fileService.openCamera({\n mediaType: 'photo',\n onOpenFailureWithToastMessage: () => toast.show(STRINGS.TOAST.OPEN_CAMERA_ERROR, 'error'),\n });\n\n if (photo) {\n onSendFileMessage(photo).catch(() => toast.show(STRINGS.TOAST.SEND_MSG_ERROR, 'error'));\n }\n },\n },\n {\n title: STRINGS.GROUP_CHANNEL.DIALOG_ATTACHMENT_PHOTO_LIBRARY,\n icon: 'photo',\n onPress: async () => {\n const photo = await fileService.openMediaLibrary({\n selectionLimit: 1,\n mediaType: 'all',\n onOpenFailureWithToastMessage: () => toast.show(STRINGS.TOAST.OPEN_PHOTO_LIBRARY_ERROR, 'error'),\n });\n\n if (photo && photo[0]) {\n onSendFileMessage(photo[0]).catch(() => toast.show(STRINGS.TOAST.SEND_MSG_ERROR, 'error'));\n }\n },\n },\n {\n title: STRINGS.GROUP_CHANNEL.DIALOG_ATTACHMENT_FILES,\n icon: 'document',\n onPress: async () => {\n const file = await fileService.openDocument({\n onOpenFailureWithToastMessage: () => toast.show(STRINGS.TOAST.OPEN_FILES_ERROR, 'error'),\n });\n\n if (file) {\n onSendFileMessage(file).catch(() => toast.show(STRINGS.TOAST.SEND_MSG_ERROR, 'error'));\n }\n },\n },\n ],\n });\n };\n\n return (\n <View style={styles.sendInputContainer}>\n <TouchableOpacity onPress={onPressAttachment} disabled={disabled}>\n <Icon\n color={disabled ? colors.ui.input.default.disabled.highlight : colors.ui.input.default.active.highlight}\n icon={'add'}\n size={24}\n containerStyle={styles.iconAttach}\n />\n </TouchableOpacity>\n <TextInput\n multiline\n editable={!disabled}\n value={text}\n onChangeText={setText}\n style={styles.input}\n placeholder={conditionChaining(\n [disabled],\n [STRINGS.GROUP_CHANNEL.INPUT_PLACEHOLDER_DISABLED, STRINGS.GROUP_CHANNEL.INPUT_PLACEHOLDER_ACTIVE],\n )}\n />\n {Boolean(text.trim()) && (\n <TouchableOpacity onPress={onPressSend} disabled={disabled}>\n <Icon\n color={disabled ? colors.ui.input.default.disabled.highlight : colors.ui.input.default.active.highlight}\n icon={'send'}\n size={24}\n containerStyle={styles.iconSend}\n />\n </TouchableOpacity>\n )}\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n sendInputContainer: {\n paddingVertical: 10,\n paddingHorizontal: 12,\n alignItems: 'center',\n flexDirection: 'row',\n },\n input: {\n flex: 1,\n marginRight: 4,\n minHeight: 36,\n maxHeight: 36 * Platform.select({ ios: 2.5, default: 2 }),\n borderRadius: 20,\n },\n iconAttach: {\n marginRight: 8,\n padding: 4,\n },\n iconSend: {\n marginLeft: 4,\n padding: 4,\n },\n});\n\nexport default SendInput;\n"],"mappings":"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"}
1
+ {"version":3,"names":["SendInput","onSendUserMessage","onSendFileMessage","text","setText","disabled","STRINGS","useLocalization","openSheet","useBottomSheet","fileService","usePlatformService","colors","useUIKitTheme","toast","useToast","onPressSend","catch","show","TOAST","SEND_MSG_ERROR","onPressAttachment","sheetItems","title","GROUP_CHANNEL","DIALOG_ATTACHMENT_CAMERA","icon","onPress","photo","openCamera","mediaType","onOpenFailureWithToastMessage","OPEN_CAMERA_ERROR","DIALOG_ATTACHMENT_PHOTO_LIBRARY","openMediaLibrary","selectionLimit","OPEN_PHOTO_LIBRARY_ERROR","DIALOG_ATTACHMENT_FILES","file","openDocument","OPEN_FILES_ERROR","styles","sendInputContainer","ui","input","default","highlight","active","iconAttach","conditionChaining","INPUT_PLACEHOLDER_DISABLED","INPUT_PLACEHOLDER_ACTIVE","Boolean","trim","iconSend","createStyleSheet","paddingVertical","paddingHorizontal","alignItems","flexDirection","flex","marginRight","minHeight","maxHeight","Platform","select","ios","borderRadius","padding","marginLeft"],"sources":["SendInput.tsx"],"sourcesContent":["import React from 'react';\nimport { Platform, TouchableOpacity, View } from 'react-native';\n\nimport {\n Icon,\n TextInput,\n createStyleSheet,\n useBottomSheet,\n useToast,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\nimport { useLocalization, usePlatformService } from '../../../../hooks/useContext';\nimport type { GroupChannelProps } from '../../types';\n\ntype SendInputProps = GroupChannelProps['Input'] & {\n text: string;\n setText: (val: string) => void;\n disabled: boolean;\n};\nconst SendInput = ({ onSendUserMessage, onSendFileMessage, text, setText, disabled }: SendInputProps) => {\n const { STRINGS } = useLocalization();\n const { openSheet } = useBottomSheet();\n const { fileService } = usePlatformService();\n const { colors } = useUIKitTheme();\n const toast = useToast();\n\n const onPressSend = () => {\n onSendUserMessage(text).catch(() => toast.show(STRINGS.TOAST.SEND_MSG_ERROR, 'error'));\n setText('');\n };\n const onPressAttachment = () => {\n openSheet({\n sheetItems: [\n {\n title: STRINGS.GROUP_CHANNEL.DIALOG_ATTACHMENT_CAMERA,\n icon: 'camera',\n onPress: async () => {\n const photo = await fileService.openCamera({\n mediaType: 'all',\n onOpenFailureWithToastMessage: () => toast.show(STRINGS.TOAST.OPEN_CAMERA_ERROR, 'error'),\n });\n\n if (photo) {\n onSendFileMessage(photo).catch(() => toast.show(STRINGS.TOAST.SEND_MSG_ERROR, 'error'));\n }\n },\n },\n {\n title: STRINGS.GROUP_CHANNEL.DIALOG_ATTACHMENT_PHOTO_LIBRARY,\n icon: 'photo',\n onPress: async () => {\n const photo = await fileService.openMediaLibrary({\n selectionLimit: 1,\n mediaType: 'all',\n onOpenFailureWithToastMessage: () => toast.show(STRINGS.TOAST.OPEN_PHOTO_LIBRARY_ERROR, 'error'),\n });\n\n if (photo && photo[0]) {\n onSendFileMessage(photo[0]).catch(() => toast.show(STRINGS.TOAST.SEND_MSG_ERROR, 'error'));\n }\n },\n },\n {\n title: STRINGS.GROUP_CHANNEL.DIALOG_ATTACHMENT_FILES,\n icon: 'document',\n onPress: async () => {\n const file = await fileService.openDocument({\n onOpenFailureWithToastMessage: () => toast.show(STRINGS.TOAST.OPEN_FILES_ERROR, 'error'),\n });\n\n if (file) {\n onSendFileMessage(file).catch(() => toast.show(STRINGS.TOAST.SEND_MSG_ERROR, 'error'));\n }\n },\n },\n ],\n });\n };\n\n return (\n <View style={styles.sendInputContainer}>\n <TouchableOpacity onPress={onPressAttachment} disabled={disabled}>\n <Icon\n color={disabled ? colors.ui.input.default.disabled.highlight : colors.ui.input.default.active.highlight}\n icon={'add'}\n size={24}\n containerStyle={styles.iconAttach}\n />\n </TouchableOpacity>\n <TextInput\n multiline\n editable={!disabled}\n value={text}\n onChangeText={setText}\n style={styles.input}\n placeholder={conditionChaining(\n [disabled],\n [STRINGS.GROUP_CHANNEL.INPUT_PLACEHOLDER_DISABLED, STRINGS.GROUP_CHANNEL.INPUT_PLACEHOLDER_ACTIVE],\n )}\n />\n {Boolean(text.trim()) && (\n <TouchableOpacity onPress={onPressSend} disabled={disabled}>\n <Icon\n color={disabled ? colors.ui.input.default.disabled.highlight : colors.ui.input.default.active.highlight}\n icon={'send'}\n size={24}\n containerStyle={styles.iconSend}\n />\n </TouchableOpacity>\n )}\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n sendInputContainer: {\n paddingVertical: 10,\n paddingHorizontal: 12,\n alignItems: 'center',\n flexDirection: 'row',\n },\n input: {\n flex: 1,\n marginRight: 4,\n minHeight: 36,\n maxHeight: 36 * Platform.select({ ios: 2.5, default: 2 }),\n borderRadius: 20,\n },\n iconAttach: {\n marginRight: 8,\n padding: 4,\n },\n iconSend: {\n marginLeft: 4,\n padding: 4,\n },\n});\n\nexport default SendInput;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["KEYBOARD_AVOID_VIEW_BEHAVIOR","Platform","select","ios","default","undefined","GroupChannelInput","props","channel","left","right","bottom","useSafeAreaInsets","colors","useUIKitTheme","editMessage","setEditMessage","keyboardAvoidOffset","useContext","GroupChannelContexts","Fragment","text","setText","useState","textTmpRef","useRef","disabled","groupChannelChatUnavailable","useEffect","length","endTyping","startTyping","current","inputMode","useIIFE","isFileMessage","paddingLeft","paddingRight","backgroundColor","background","justifyContent","width","SafeAreaBottom","height","React","memo"],"sources":["index.tsx"],"sourcesContent":["import React, { useContext, useEffect, useRef, useState } from 'react';\nimport { KeyboardAvoidingView, Platform, View } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { groupChannelChatUnavailable, useIIFE } from '@sendbird/uikit-utils';\n\nimport { GroupChannelContexts } from '../../module/moduleContext';\nimport type { GroupChannelProps } from '../../types';\nimport EditInput from './EditInput';\nimport SendInput from './SendInput';\n\nconst KEYBOARD_AVOID_VIEW_BEHAVIOR = Platform.select({ ios: 'padding' as const, default: undefined });\nconst GroupChannelInput: React.FC<GroupChannelProps['Input']> = (props) => {\n const { channel } = props;\n\n const { left, right, bottom } = useSafeAreaInsets();\n const { colors } = useUIKitTheme();\n const { editMessage, setEditMessage, keyboardAvoidOffset = 0 } = useContext(GroupChannelContexts.Fragment);\n\n const [text, setText] = useState('');\n const textTmpRef = useRef('');\n const disabled = groupChannelChatUnavailable(channel);\n\n useEffect(() => {\n if (text.length === 0) channel.endTyping();\n else channel.startTyping();\n }, [text]);\n\n useEffect(() => {\n if (disabled) {\n textTmpRef.current = text;\n setText('');\n } else {\n setText(textTmpRef.current);\n }\n }, [disabled]);\n\n const inputMode = useIIFE(() => {\n if (!editMessage) return 'send';\n if (editMessage.isFileMessage()) return 'send';\n return 'edit';\n });\n\n return (\n <KeyboardAvoidingView\n keyboardVerticalOffset={-bottom + keyboardAvoidOffset}\n behavior={KEYBOARD_AVOID_VIEW_BEHAVIOR}\n >\n <View style={{ paddingLeft: left, paddingRight: right, backgroundColor: colors.background }}>\n <View style={{ justifyContent: 'center', width: '100%' }}>\n {inputMode === 'send' && <SendInput {...props} text={text} setText={setText} disabled={disabled} />}\n {inputMode === 'edit' && editMessage && (\n <EditInput\n {...props}\n text={text}\n setText={setText}\n editMessage={editMessage}\n setEditMessage={setEditMessage}\n />\n )}\n </View>\n <SafeAreaBottom height={bottom} />\n </View>\n </KeyboardAvoidingView>\n );\n};\nconst SafeAreaBottom: React.FC<{ height: number }> = ({ height }) => {\n return <View style={{ height }} />;\n};\n\nexport default React.memo(GroupChannelInput);\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AAEA;;AAEA;;AACA;;;;;;;;;;AAEA,MAAMA,4BAA4B,GAAGC,qBAAA,CAASC,MAAT,CAAgB;EAAEC,GAAG,EAAE,SAAP;EAA2BC,OAAO,EAAEC;AAApC,CAAhB,CAArC;;AACA,MAAMC,iBAAuD,GAAIC,KAAD,IAAW;EACzE,MAAM;IAAEC;EAAF,IAAcD,KAApB;EAEA,MAAM;IAAEE,IAAF;IAAQC,KAAR;IAAeC;EAAf,IAA0B,IAAAC,6CAAA,GAAhC;EACA,MAAM;IAAEC;EAAF,IAAa,IAAAC,yCAAA,GAAnB;EACA,MAAM;IAAEC,WAAF;IAAeC,cAAf;IAA+BC,mBAAmB,GAAG;EAArD,IAA2D,IAAAC,iBAAA,EAAWC,mCAAA,CAAqBC,QAAhC,CAAjE;EAEA,MAAM,CAACC,IAAD,EAAOC,OAAP,IAAkB,IAAAC,eAAA,EAAS,EAAT,CAAxB;EACA,MAAMC,UAAU,GAAG,IAAAC,aAAA,EAAO,EAAP,CAAnB;EACA,MAAMC,QAAQ,GAAG,IAAAC,uCAAA,EAA4BnB,OAA5B,CAAjB;EAEA,IAAAoB,gBAAA,EAAU,MAAM;IACd,IAAIP,IAAI,CAACQ,MAAL,KAAgB,CAApB,EAAuBrB,OAAO,CAACsB,SAAR,GAAvB,KACKtB,OAAO,CAACuB,WAAR;EACN,CAHD,EAGG,CAACV,IAAD,CAHH;EAKA,IAAAO,gBAAA,EAAU,MAAM;IACd,IAAIF,QAAJ,EAAc;MACZF,UAAU,CAACQ,OAAX,GAAqBX,IAArB;MACAC,OAAO,CAAC,EAAD,CAAP;IACD,CAHD,MAGO;MACLA,OAAO,CAACE,UAAU,CAACQ,OAAZ,CAAP;IACD;EACF,CAPD,EAOG,CAACN,QAAD,CAPH;EASA,MAAMO,SAAS,GAAG,IAAAC,mBAAA,EAAQ,MAAM;IAC9B,IAAI,CAACnB,WAAL,EAAkB,OAAO,MAAP;IAClB,IAAIA,WAAW,CAACoB,aAAZ,EAAJ,EAAiC,OAAO,MAAP;IACjC,OAAO,MAAP;EACD,CAJiB,CAAlB;EAMA,oBACE,6BAAC,iCAAD;IACE,sBAAsB,EAAE,CAACxB,MAAD,GAAUM,mBADpC;IAEE,QAAQ,EAAEjB;EAFZ,gBAIE,6BAAC,iBAAD;IAAM,KAAK,EAAE;MAAEoC,WAAW,EAAE3B,IAAf;MAAqB4B,YAAY,EAAE3B,KAAnC;MAA0C4B,eAAe,EAAEzB,MAAM,CAAC0B;IAAlE;EAAb,gBACE,6BAAC,iBAAD;IAAM,KAAK,EAAE;MAAEC,cAAc,EAAE,QAAlB;MAA4BC,KAAK,EAAE;IAAnC;EAAb,GACGR,SAAS,KAAK,MAAd,iBAAwB,6BAAC,kBAAD,eAAe1B,KAAf;IAAsB,IAAI,EAAEc,IAA5B;IAAkC,OAAO,EAAEC,OAA3C;IAAoD,QAAQ,EAAEI;EAA9D,GAD3B,EAEGO,SAAS,KAAK,MAAd,IAAwBlB,WAAxB,iBACC,6BAAC,kBAAD,eACMR,KADN;IAEE,IAAI,EAAEc,IAFR;IAGE,OAAO,EAAEC,OAHX;IAIE,WAAW,EAAEP,WAJf;IAKE,cAAc,EAAEC;EALlB,GAHJ,CADF,eAaE,6BAAC,cAAD;IAAgB,MAAM,EAAEL;EAAxB,EAbF,CAJF,CADF;AAsBD,CArDD;;AAsDA,MAAM+B,cAA4C,GAAG,QAAgB;EAAA,IAAf;IAAEC;EAAF,CAAe;EACnE,oBAAO,6BAAC,iBAAD;IAAM,KAAK,EAAE;MAAEA;IAAF;EAAb,EAAP;AACD,CAFD;;4BAIeC,cAAA,CAAMC,IAAN,CAAWvC,iBAAX,C"}
1
+ {"version":3,"names":["KEYBOARD_AVOID_VIEW_BEHAVIOR","Platform","select","ios","default","undefined","GroupChannelInput","props","channel","left","right","bottom","useSafeAreaInsets","colors","useUIKitTheme","editMessage","setEditMessage","keyboardAvoidOffset","useContext","GroupChannelContexts","Fragment","text","setText","useState","textTmpRef","useRef","disabled","groupChannelChatUnavailable","useEffect","length","endTyping","startTyping","current","inputMode","useIIFE","isFileMessage","paddingLeft","paddingRight","backgroundColor","background","justifyContent","width","SafeAreaBottom","height","React","memo"],"sources":["index.tsx"],"sourcesContent":["import React, { useContext, useEffect, useRef, useState } from 'react';\nimport { KeyboardAvoidingView, Platform, View } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { groupChannelChatUnavailable, useIIFE } from '@sendbird/uikit-utils';\n\nimport { GroupChannelContexts } from '../../module/moduleContext';\nimport type { GroupChannelProps } from '../../types';\nimport EditInput from './EditInput';\nimport SendInput from './SendInput';\n\nconst KEYBOARD_AVOID_VIEW_BEHAVIOR = Platform.select({ ios: 'padding' as const, default: undefined });\nconst GroupChannelInput = (props: GroupChannelProps['Input']) => {\n const { channel } = props;\n\n const { left, right, bottom } = useSafeAreaInsets();\n const { colors } = useUIKitTheme();\n const { editMessage, setEditMessage, keyboardAvoidOffset = 0 } = useContext(GroupChannelContexts.Fragment);\n\n const [text, setText] = useState('');\n const textTmpRef = useRef('');\n const disabled = groupChannelChatUnavailable(channel);\n\n useEffect(() => {\n if (text.length === 0) channel.endTyping();\n else channel.startTyping();\n }, [text]);\n\n useEffect(() => {\n if (disabled) {\n textTmpRef.current = text;\n setText('');\n } else {\n setText(textTmpRef.current);\n }\n }, [disabled]);\n\n const inputMode = useIIFE(() => {\n if (!editMessage) return 'send';\n if (editMessage.isFileMessage()) return 'send';\n return 'edit';\n });\n\n return (\n <KeyboardAvoidingView\n keyboardVerticalOffset={-bottom + keyboardAvoidOffset}\n behavior={KEYBOARD_AVOID_VIEW_BEHAVIOR}\n >\n <View style={{ paddingLeft: left, paddingRight: right, backgroundColor: colors.background }}>\n <View style={{ justifyContent: 'center', width: '100%' }}>\n {inputMode === 'send' && <SendInput {...props} text={text} setText={setText} disabled={disabled} />}\n {inputMode === 'edit' && editMessage && (\n <EditInput\n {...props}\n text={text}\n setText={setText}\n editMessage={editMessage}\n setEditMessage={setEditMessage}\n />\n )}\n </View>\n <SafeAreaBottom height={bottom} />\n </View>\n </KeyboardAvoidingView>\n );\n};\nconst SafeAreaBottom = ({ height }: { height: number }) => {\n return <View style={{ height }} />;\n};\n\nexport default React.memo(GroupChannelInput);\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AAEA;;AAEA;;AACA;;;;;;;;;;AAEA,MAAMA,4BAA4B,GAAGC,qBAAA,CAASC,MAAT,CAAgB;EAAEC,GAAG,EAAE,SAAP;EAA2BC,OAAO,EAAEC;AAApC,CAAhB,CAArC;;AACA,MAAMC,iBAAiB,GAAIC,KAAD,IAAuC;EAC/D,MAAM;IAAEC;EAAF,IAAcD,KAApB;EAEA,MAAM;IAAEE,IAAF;IAAQC,KAAR;IAAeC;EAAf,IAA0B,IAAAC,6CAAA,GAAhC;EACA,MAAM;IAAEC;EAAF,IAAa,IAAAC,yCAAA,GAAnB;EACA,MAAM;IAAEC,WAAF;IAAeC,cAAf;IAA+BC,mBAAmB,GAAG;EAArD,IAA2D,IAAAC,iBAAA,EAAWC,mCAAA,CAAqBC,QAAhC,CAAjE;EAEA,MAAM,CAACC,IAAD,EAAOC,OAAP,IAAkB,IAAAC,eAAA,EAAS,EAAT,CAAxB;EACA,MAAMC,UAAU,GAAG,IAAAC,aAAA,EAAO,EAAP,CAAnB;EACA,MAAMC,QAAQ,GAAG,IAAAC,uCAAA,EAA4BnB,OAA5B,CAAjB;EAEA,IAAAoB,gBAAA,EAAU,MAAM;IACd,IAAIP,IAAI,CAACQ,MAAL,KAAgB,CAApB,EAAuBrB,OAAO,CAACsB,SAAR,GAAvB,KACKtB,OAAO,CAACuB,WAAR;EACN,CAHD,EAGG,CAACV,IAAD,CAHH;EAKA,IAAAO,gBAAA,EAAU,MAAM;IACd,IAAIF,QAAJ,EAAc;MACZF,UAAU,CAACQ,OAAX,GAAqBX,IAArB;MACAC,OAAO,CAAC,EAAD,CAAP;IACD,CAHD,MAGO;MACLA,OAAO,CAACE,UAAU,CAACQ,OAAZ,CAAP;IACD;EACF,CAPD,EAOG,CAACN,QAAD,CAPH;EASA,MAAMO,SAAS,GAAG,IAAAC,mBAAA,EAAQ,MAAM;IAC9B,IAAI,CAACnB,WAAL,EAAkB,OAAO,MAAP;IAClB,IAAIA,WAAW,CAACoB,aAAZ,EAAJ,EAAiC,OAAO,MAAP;IACjC,OAAO,MAAP;EACD,CAJiB,CAAlB;EAMA,oBACE,6BAAC,iCAAD;IACE,sBAAsB,EAAE,CAACxB,MAAD,GAAUM,mBADpC;IAEE,QAAQ,EAAEjB;EAFZ,gBAIE,6BAAC,iBAAD;IAAM,KAAK,EAAE;MAAEoC,WAAW,EAAE3B,IAAf;MAAqB4B,YAAY,EAAE3B,KAAnC;MAA0C4B,eAAe,EAAEzB,MAAM,CAAC0B;IAAlE;EAAb,gBACE,6BAAC,iBAAD;IAAM,KAAK,EAAE;MAAEC,cAAc,EAAE,QAAlB;MAA4BC,KAAK,EAAE;IAAnC;EAAb,GACGR,SAAS,KAAK,MAAd,iBAAwB,6BAAC,kBAAD,eAAe1B,KAAf;IAAsB,IAAI,EAAEc,IAA5B;IAAkC,OAAO,EAAEC,OAA3C;IAAoD,QAAQ,EAAEI;EAA9D,GAD3B,EAEGO,SAAS,KAAK,MAAd,IAAwBlB,WAAxB,iBACC,6BAAC,kBAAD,eACMR,KADN;IAEE,IAAI,EAAEc,IAFR;IAGE,OAAO,EAAEC,OAHX;IAIE,WAAW,EAAEP,WAJf;IAKE,cAAc,EAAEC;EALlB,GAHJ,CADF,eAaE,6BAAC,cAAD;IAAgB,MAAM,EAAEL;EAAxB,EAbF,CAJF,CADF;AAsBD,CArDD;;AAsDA,MAAM+B,cAAc,GAAG,QAAoC;EAAA,IAAnC;IAAEC;EAAF,CAAmC;EACzD,oBAAO,6BAAC,iBAAD;IAAM,KAAK,EAAE;MAAEA;IAAF;EAAb,EAAP;AACD,CAFD;;4BAIeC,cAAA,CAAMC,IAAN,CAAWvC,iBAAX,C"}