@sendbird/uikit-react-native 1.1.1 → 2.0.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/README.md +1 -1
  2. package/lib/commonjs/components/ChatFlatList.js +10 -8
  3. package/lib/commonjs/components/ChatFlatList.js.map +1 -1
  4. package/lib/commonjs/components/FileViewer.js +8 -3
  5. package/lib/commonjs/components/FileViewer.js.map +1 -1
  6. package/lib/commonjs/components/MessageRenderer/FileMessage/ImageFileMessage.js +47 -15
  7. package/lib/commonjs/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +1 -1
  8. package/lib/commonjs/components/MessageRenderer/FileMessage/VideoFileMessage.js +51 -34
  9. package/lib/commonjs/components/MessageRenderer/FileMessage/VideoFileMessage.js.map +1 -1
  10. package/lib/commonjs/components/MessageRenderer/MessageIncomingSenderName.js +2 -1
  11. package/lib/commonjs/components/MessageRenderer/MessageIncomingSenderName.js.map +1 -1
  12. package/lib/commonjs/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js +3 -1
  13. package/lib/commonjs/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +1 -1
  14. package/lib/commonjs/components/MessageRenderer/index.js +7 -2
  15. package/lib/commonjs/components/MessageRenderer/index.js.map +1 -1
  16. package/lib/commonjs/containers/SendbirdUIKitContainer.js +12 -15
  17. package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
  18. package/lib/commonjs/contexts/SendbirdChat.js +9 -9
  19. package/lib/commonjs/contexts/SendbirdChat.js.map +1 -1
  20. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js +39 -6
  21. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -1
  22. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js +4 -4
  23. package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js.map +1 -1
  24. package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
  25. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js +4 -2
  26. package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
  27. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +1 -1
  28. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -1
  29. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +4 -2
  30. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  31. package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js +44 -13
  32. package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
  33. package/lib/commonjs/domain/groupChannelUserList/types.js.map +1 -1
  34. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js +7 -6
  35. package/lib/commonjs/fragments/createGroupChannelCreateFragment.js.map +1 -1
  36. package/lib/commonjs/fragments/createGroupChannelFragment.js +12 -12
  37. package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
  38. package/lib/commonjs/fragments/createGroupChannelListFragment.js +1 -1
  39. package/lib/commonjs/fragments/createGroupChannelListFragment.js.map +1 -1
  40. package/lib/commonjs/fragments/createGroupChannelMembersFragment.js +4 -4
  41. package/lib/commonjs/fragments/createGroupChannelMembersFragment.js.map +1 -1
  42. package/lib/commonjs/hooks/useConnection.js +35 -34
  43. package/lib/commonjs/hooks/useConnection.js.map +1 -1
  44. package/lib/commonjs/hooks/usePushTokenRegistration.js +2 -2
  45. package/lib/commonjs/hooks/usePushTokenRegistration.js.map +1 -1
  46. package/lib/commonjs/index.js +10 -1
  47. package/lib/commonjs/index.js.map +1 -1
  48. package/lib/commonjs/libs/InternalLocalCacheStorage.js +8 -0
  49. package/lib/commonjs/libs/InternalLocalCacheStorage.js.map +1 -1
  50. package/lib/commonjs/libs/SBUError.js +41 -0
  51. package/lib/commonjs/libs/SBUError.js.map +1 -0
  52. package/lib/commonjs/libs/SBUUtils.js +20 -0
  53. package/lib/commonjs/libs/SBUUtils.js.map +1 -0
  54. package/lib/commonjs/localization/StringSet.type.js +6 -0
  55. package/lib/commonjs/localization/StringSet.type.js.map +1 -1
  56. package/lib/commonjs/platform/createFileService.expo.js +6 -4
  57. package/lib/commonjs/platform/createFileService.expo.js.map +1 -1
  58. package/lib/commonjs/platform/createFileService.native.js +18 -8
  59. package/lib/commonjs/platform/createFileService.native.js.map +1 -1
  60. package/lib/commonjs/platform/types.js +4 -0
  61. package/lib/commonjs/platform/types.js.map +1 -1
  62. package/lib/commonjs/version.js +1 -1
  63. package/lib/commonjs/version.js.map +1 -1
  64. package/lib/module/components/ChatFlatList.js +10 -8
  65. package/lib/module/components/ChatFlatList.js.map +1 -1
  66. package/lib/module/components/FileViewer.js +9 -4
  67. package/lib/module/components/FileViewer.js.map +1 -1
  68. package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js +48 -17
  69. package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +1 -1
  70. package/lib/module/components/MessageRenderer/FileMessage/VideoFileMessage.js +52 -35
  71. package/lib/module/components/MessageRenderer/FileMessage/VideoFileMessage.js.map +1 -1
  72. package/lib/module/components/MessageRenderer/MessageIncomingSenderName.js +2 -1
  73. package/lib/module/components/MessageRenderer/MessageIncomingSenderName.js.map +1 -1
  74. package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js +3 -1
  75. package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +1 -1
  76. package/lib/module/components/MessageRenderer/index.js +7 -2
  77. package/lib/module/components/MessageRenderer/index.js.map +1 -1
  78. package/lib/module/containers/SendbirdUIKitContainer.js +10 -15
  79. package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
  80. package/lib/module/contexts/SendbirdChat.js +10 -10
  81. package/lib/module/contexts/SendbirdChat.js.map +1 -1
  82. package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js +38 -7
  83. package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -1
  84. package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js +5 -5
  85. package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js.map +1 -1
  86. package/lib/module/domain/groupChannel/types.js.map +1 -1
  87. package/lib/module/domain/groupChannelList/component/GroupChannelListList.js +3 -2
  88. package/lib/module/domain/groupChannelList/component/GroupChannelListList.js.map +1 -1
  89. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +1 -1
  90. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -1
  91. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +3 -2
  92. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  93. package/lib/module/domain/groupChannelSettings/module/moduleContext.js +43 -14
  94. package/lib/module/domain/groupChannelSettings/module/moduleContext.js.map +1 -1
  95. package/lib/module/domain/groupChannelUserList/types.js.map +1 -1
  96. package/lib/module/fragments/createGroupChannelCreateFragment.js +7 -6
  97. package/lib/module/fragments/createGroupChannelCreateFragment.js.map +1 -1
  98. package/lib/module/fragments/createGroupChannelFragment.js +12 -12
  99. package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
  100. package/lib/module/fragments/createGroupChannelListFragment.js +1 -1
  101. package/lib/module/fragments/createGroupChannelListFragment.js.map +1 -1
  102. package/lib/module/fragments/createGroupChannelMembersFragment.js +4 -4
  103. package/lib/module/fragments/createGroupChannelMembersFragment.js.map +1 -1
  104. package/lib/module/hooks/useConnection.js +35 -35
  105. package/lib/module/hooks/useConnection.js.map +1 -1
  106. package/lib/module/hooks/usePushTokenRegistration.js +2 -2
  107. package/lib/module/hooks/usePushTokenRegistration.js.map +1 -1
  108. package/lib/module/index.js +1 -0
  109. package/lib/module/index.js.map +1 -1
  110. package/lib/module/libs/InternalLocalCacheStorage.js +7 -0
  111. package/lib/module/libs/InternalLocalCacheStorage.js.map +1 -1
  112. package/lib/module/libs/SBUError.js +32 -0
  113. package/lib/module/libs/SBUError.js.map +1 -0
  114. package/lib/module/libs/SBUUtils.js +10 -0
  115. package/lib/module/libs/SBUUtils.js.map +1 -0
  116. package/lib/module/localization/StringSet.type.js +6 -0
  117. package/lib/module/localization/StringSet.type.js.map +1 -1
  118. package/lib/module/platform/createFileService.expo.js +5 -4
  119. package/lib/module/platform/createFileService.expo.js.map +1 -1
  120. package/lib/module/platform/createFileService.native.js +18 -9
  121. package/lib/module/platform/createFileService.native.js.map +1 -1
  122. package/lib/module/platform/types.js +1 -1
  123. package/lib/module/platform/types.js.map +1 -1
  124. package/lib/module/version.js +1 -1
  125. package/lib/module/version.js.map +1 -1
  126. package/lib/typescript/src/components/MessageRenderer/UserMessage/OpenGraphUserMessage.d.ts +2 -2
  127. package/lib/typescript/src/components/MessageRenderer/index.d.ts +1 -1
  128. package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +1 -1
  129. package/lib/typescript/src/contexts/SendbirdChat.d.ts +1 -1
  130. package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/index.d.ts +3 -3
  131. package/lib/typescript/src/domain/groupChannel/component/GroupChannelMessageList.d.ts +6 -6
  132. package/lib/typescript/src/domain/groupChannel/types.d.ts +3 -3
  133. package/lib/typescript/src/domain/groupChannelUserList/types.d.ts +2 -2
  134. package/lib/typescript/src/hooks/useContext.d.ts +5 -5
  135. package/lib/typescript/src/index.d.ts +1 -0
  136. package/lib/typescript/src/libs/InternalLocalCacheStorage.d.ts +2 -0
  137. package/lib/typescript/src/libs/SBUError.d.ts +14 -0
  138. package/lib/typescript/src/libs/SBUUtils.d.ts +3 -0
  139. package/lib/typescript/src/localization/StringSet.type.d.ts +3 -0
  140. package/lib/typescript/src/platform/types.d.ts +2 -1
  141. package/lib/typescript/src/version.d.ts +1 -1
  142. package/package.json +8 -8
  143. package/src/components/ChatFlatList.tsx +5 -4
  144. package/src/components/FileViewer.tsx +12 -4
  145. package/src/components/MessageRenderer/FileMessage/ImageFileMessage.tsx +55 -12
  146. package/src/components/MessageRenderer/FileMessage/VideoFileMessage.tsx +38 -30
  147. package/src/components/MessageRenderer/MessageIncomingSenderName.tsx +1 -1
  148. package/src/components/MessageRenderer/UserMessage/OpenGraphUserMessage.tsx +5 -3
  149. package/src/components/MessageRenderer/index.tsx +5 -2
  150. package/src/containers/SendbirdUIKitContainer.tsx +13 -9
  151. package/src/contexts/SendbirdChat.tsx +18 -13
  152. package/src/domain/groupChannel/component/GroupChannelInput/SendInput.tsx +28 -4
  153. package/src/domain/groupChannel/component/GroupChannelInput/index.tsx +5 -5
  154. package/src/domain/groupChannel/types.ts +6 -6
  155. package/src/domain/groupChannelList/component/GroupChannelListList.tsx +3 -2
  156. package/src/domain/groupChannelSettings/component/GroupChannelSettingsInfo.tsx +1 -1
  157. package/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.tsx +3 -2
  158. package/src/domain/groupChannelSettings/module/moduleContext.tsx +33 -18
  159. package/src/domain/groupChannelUserList/types.ts +3 -3
  160. package/src/fragments/createGroupChannelCreateFragment.tsx +8 -7
  161. package/src/fragments/createGroupChannelFragment.tsx +4 -12
  162. package/src/fragments/createGroupChannelListFragment.tsx +1 -1
  163. package/src/fragments/createGroupChannelMembersFragment.tsx +4 -3
  164. package/src/hooks/useConnection.ts +40 -43
  165. package/src/hooks/usePushTokenRegistration.ts +2 -2
  166. package/src/index.ts +1 -0
  167. package/src/libs/InternalLocalCacheStorage.ts +5 -0
  168. package/src/libs/SBUError.ts +26 -0
  169. package/src/libs/SBUUtils.ts +9 -0
  170. package/src/localization/StringSet.type.ts +10 -0
  171. package/src/platform/createFileService.expo.ts +5 -4
  172. package/src/platform/createFileService.native.ts +17 -9
  173. package/src/platform/types.ts +3 -1
  174. package/src/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["GroupChannelSettingsMenu","onPressMenuMembers","onPressMenuLeaveChannel","menuItemsCreator","menu","sdk","useSendbirdChat","channel","useContext","GroupChannelSettingsContexts","Fragment","STRINGS","useLocalization","colors","useUIKitTheme","toggleNotification","myPushTriggerOption","setMyPushTriggerOption","menuItems","icon","name","GROUP_CHANNEL_SETTINGS","MENU_NOTIFICATION","onPress","actionItem","MENU_MEMBERS","actionLabel","String","memberCount","onBackground01","iconColor","error","MENU_LEAVE_CHANNEL","leave","then","clearCachedMessages","url","catch","map","disabled","iconBackgroundColor"],"sources":["GroupChannelSettingsMenu.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { View } from 'react-native';\n\nimport type { MenuBarProps } from '@sendbird/uikit-react-native-foundation';\nimport { Icon, MenuBar, Switch, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\n\nimport { useLocalization, useSendbirdChat } from '../../../hooks/useContext';\nimport { GroupChannelSettingsContexts } from '../module/moduleContext';\nimport type { GroupChannelSettingsProps } from '../types';\n\nconst GroupChannelSettingsMenu = ({\n onPressMenuMembers,\n onPressMenuLeaveChannel,\n menuItemsCreator = (menu) => menu,\n}: GroupChannelSettingsProps['Menu']) => {\n const { sdk } = useSendbirdChat();\n const { channel } = useContext(GroupChannelSettingsContexts.Fragment);\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n\n const toggleNotification = async () => {\n if (channel.myPushTriggerOption === 'off') {\n await channel.setMyPushTriggerOption('default');\n } else {\n await channel.setMyPushTriggerOption('off');\n }\n };\n\n const menuItems: MenuBarProps[] = menuItemsCreator([\n {\n icon: 'notifications',\n name: STRINGS.GROUP_CHANNEL_SETTINGS.MENU_NOTIFICATION,\n onPress: toggleNotification,\n actionItem: <Switch value={channel.myPushTriggerOption !== 'off'} onChangeValue={toggleNotification} />,\n },\n {\n icon: 'members',\n name: STRINGS.GROUP_CHANNEL_SETTINGS.MENU_MEMBERS,\n onPress: () => onPressMenuMembers(),\n actionLabel: String(channel.memberCount),\n actionItem: <Icon icon={'chevron-right'} color={colors.onBackground01} />,\n },\n {\n icon: 'leave',\n iconColor: colors.error,\n name: STRINGS.GROUP_CHANNEL_SETTINGS.MENU_LEAVE_CHANNEL,\n onPress: () => {\n channel.leave().then(() => {\n onPressMenuLeaveChannel();\n sdk.clearCachedMessages([channel.url]).catch();\n });\n },\n },\n ]);\n\n return (\n <View>\n {menuItems.map((menu) => {\n return (\n <MenuBar\n key={menu.name}\n onPress={menu.onPress}\n name={menu.name}\n disabled={menu.disabled}\n icon={menu.icon}\n iconColor={menu.iconColor}\n iconBackgroundColor={menu.iconBackgroundColor}\n actionLabel={menu.actionLabel}\n actionItem={menu.actionItem}\n />\n );\n })}\n </View>\n );\n};\n\nexport default GroupChannelSettingsMenu;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAGA;;AAEA;;AACA;;;;;;AAGA,MAAMA,wBAAwB,GAAG,QAIQ;EAAA,IAJP;IAChCC,kBADgC;IAEhCC,uBAFgC;IAGhCC,gBAAgB,GAAIC,IAAD,IAAUA;EAHG,CAIO;EACvC,MAAM;IAAEC;EAAF,IAAU,IAAAC,2BAAA,GAAhB;EACA,MAAM;IAAEC;EAAF,IAAc,IAAAC,iBAAA,EAAWC,2CAAA,CAA6BC,QAAxC,CAApB;EACA,MAAM;IAAEC;EAAF,IAAc,IAAAC,2BAAA,GAApB;EACA,MAAM;IAAEC;EAAF,IAAa,IAAAC,yCAAA,GAAnB;;EAEA,MAAMC,kBAAkB,GAAG,YAAY;IACrC,IAAIR,OAAO,CAACS,mBAAR,KAAgC,KAApC,EAA2C;MACzC,MAAMT,OAAO,CAACU,sBAAR,CAA+B,SAA/B,CAAN;IACD,CAFD,MAEO;MACL,MAAMV,OAAO,CAACU,sBAAR,CAA+B,KAA/B,CAAN;IACD;EACF,CAND;;EAQA,MAAMC,SAAyB,GAAGf,gBAAgB,CAAC,CACjD;IACEgB,IAAI,EAAE,eADR;IAEEC,IAAI,EAAET,OAAO,CAACU,sBAAR,CAA+BC,iBAFvC;IAGEC,OAAO,EAAER,kBAHX;IAIES,UAAU,eAAE,6BAAC,kCAAD;MAAQ,KAAK,EAAEjB,OAAO,CAACS,mBAAR,KAAgC,KAA/C;MAAsD,aAAa,EAAED;IAArE;EAJd,CADiD,EAOjD;IACEI,IAAI,EAAE,SADR;IAEEC,IAAI,EAAET,OAAO,CAACU,sBAAR,CAA+BI,YAFvC;IAGEF,OAAO,EAAE,MAAMtB,kBAAkB,EAHnC;IAIEyB,WAAW,EAAEC,MAAM,CAACpB,OAAO,CAACqB,WAAT,CAJrB;IAKEJ,UAAU,eAAE,6BAAC,gCAAD;MAAM,IAAI,EAAE,eAAZ;MAA6B,KAAK,EAAEX,MAAM,CAACgB;IAA3C;EALd,CAPiD,EAcjD;IACEV,IAAI,EAAE,OADR;IAEEW,SAAS,EAAEjB,MAAM,CAACkB,KAFpB;IAGEX,IAAI,EAAET,OAAO,CAACU,sBAAR,CAA+BW,kBAHvC;IAIET,OAAO,EAAE,MAAM;MACbhB,OAAO,CAAC0B,KAAR,GAAgBC,IAAhB,CAAqB,MAAM;QACzBhC,uBAAuB;QACvBG,GAAG,CAAC8B,mBAAJ,CAAwB,CAAC5B,OAAO,CAAC6B,GAAT,CAAxB,EAAuCC,KAAvC;MACD,CAHD;IAID;EATH,CAdiD,CAAD,CAAlD;EA2BA,oBACE,6BAAC,iBAAD,QACGnB,SAAS,CAACoB,GAAV,CAAelC,IAAD,IAAU;IACvB,oBACE,6BAAC,mCAAD;MACE,GAAG,EAAEA,IAAI,CAACgB,IADZ;MAEE,OAAO,EAAEhB,IAAI,CAACmB,OAFhB;MAGE,IAAI,EAAEnB,IAAI,CAACgB,IAHb;MAIE,QAAQ,EAAEhB,IAAI,CAACmC,QAJjB;MAKE,IAAI,EAAEnC,IAAI,CAACe,IALb;MAME,SAAS,EAAEf,IAAI,CAAC0B,SANlB;MAOE,mBAAmB,EAAE1B,IAAI,CAACoC,mBAP5B;MAQE,WAAW,EAAEpC,IAAI,CAACsB,WARpB;MASE,UAAU,EAAEtB,IAAI,CAACoB;IATnB,EADF;EAaD,CAdA,CADH,CADF;AAmBD,CAhED;;eAkEexB,wB"}
1
+ {"version":3,"names":["GroupChannelSettingsMenu","onPressMenuMembers","onPressMenuLeaveChannel","menuItemsCreator","menu","sdk","useSendbirdChat","channel","useContext","GroupChannelSettingsContexts","Fragment","STRINGS","useLocalization","colors","useUIKitTheme","toggleNotification","myPushTriggerOption","setMyPushTriggerOption","PushTriggerOption","DEFAULT","OFF","menuItems","icon","name","GROUP_CHANNEL_SETTINGS","MENU_NOTIFICATION","onPress","actionItem","MENU_MEMBERS","actionLabel","String","memberCount","onBackground01","iconColor","error","MENU_LEAVE_CHANNEL","leave","then","clearCachedMessages","url","catch","map","disabled","iconBackgroundColor"],"sources":["GroupChannelSettingsMenu.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { View } from 'react-native';\n\nimport { PushTriggerOption } from '@sendbird/chat';\nimport type { MenuBarProps } from '@sendbird/uikit-react-native-foundation';\nimport { Icon, MenuBar, Switch, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\n\nimport { useLocalization, useSendbirdChat } from '../../../hooks/useContext';\nimport { GroupChannelSettingsContexts } from '../module/moduleContext';\nimport type { GroupChannelSettingsProps } from '../types';\n\nconst GroupChannelSettingsMenu = ({\n onPressMenuMembers,\n onPressMenuLeaveChannel,\n menuItemsCreator = (menu) => menu,\n}: GroupChannelSettingsProps['Menu']) => {\n const { sdk } = useSendbirdChat();\n const { channel } = useContext(GroupChannelSettingsContexts.Fragment);\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n\n const toggleNotification = async () => {\n if (channel.myPushTriggerOption === 'off') {\n await channel.setMyPushTriggerOption(PushTriggerOption.DEFAULT);\n } else {\n await channel.setMyPushTriggerOption(PushTriggerOption.OFF);\n }\n };\n\n const menuItems: MenuBarProps[] = menuItemsCreator([\n {\n icon: 'notifications',\n name: STRINGS.GROUP_CHANNEL_SETTINGS.MENU_NOTIFICATION,\n onPress: toggleNotification,\n actionItem: <Switch value={channel.myPushTriggerOption !== 'off'} onChangeValue={toggleNotification} />,\n },\n {\n icon: 'members',\n name: STRINGS.GROUP_CHANNEL_SETTINGS.MENU_MEMBERS,\n onPress: () => onPressMenuMembers(),\n actionLabel: String(channel.memberCount),\n actionItem: <Icon icon={'chevron-right'} color={colors.onBackground01} />,\n },\n {\n icon: 'leave',\n iconColor: colors.error,\n name: STRINGS.GROUP_CHANNEL_SETTINGS.MENU_LEAVE_CHANNEL,\n onPress: () => {\n channel.leave().then(() => {\n onPressMenuLeaveChannel();\n sdk.clearCachedMessages([channel.url]).catch();\n });\n },\n },\n ]);\n\n return (\n <View>\n {menuItems.map((menu) => {\n return (\n <MenuBar\n key={menu.name}\n onPress={menu.onPress}\n name={menu.name}\n disabled={menu.disabled}\n icon={menu.icon}\n iconColor={menu.iconColor}\n iconBackgroundColor={menu.iconBackgroundColor}\n actionLabel={menu.actionLabel}\n actionItem={menu.actionItem}\n />\n );\n })}\n </View>\n );\n};\n\nexport default GroupChannelSettingsMenu;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AAEA;;AAEA;;AACA;;;;;;AAGA,MAAMA,wBAAwB,GAAG,QAIQ;EAAA,IAJP;IAChCC,kBADgC;IAEhCC,uBAFgC;IAGhCC,gBAAgB,GAAIC,IAAD,IAAUA;EAHG,CAIO;EACvC,MAAM;IAAEC;EAAF,IAAU,IAAAC,2BAAA,GAAhB;EACA,MAAM;IAAEC;EAAF,IAAc,IAAAC,iBAAA,EAAWC,2CAAA,CAA6BC,QAAxC,CAApB;EACA,MAAM;IAAEC;EAAF,IAAc,IAAAC,2BAAA,GAApB;EACA,MAAM;IAAEC;EAAF,IAAa,IAAAC,yCAAA,GAAnB;;EAEA,MAAMC,kBAAkB,GAAG,YAAY;IACrC,IAAIR,OAAO,CAACS,mBAAR,KAAgC,KAApC,EAA2C;MACzC,MAAMT,OAAO,CAACU,sBAAR,CAA+BC,uBAAA,CAAkBC,OAAjD,CAAN;IACD,CAFD,MAEO;MACL,MAAMZ,OAAO,CAACU,sBAAR,CAA+BC,uBAAA,CAAkBE,GAAjD,CAAN;IACD;EACF,CAND;;EAQA,MAAMC,SAAyB,GAAGlB,gBAAgB,CAAC,CACjD;IACEmB,IAAI,EAAE,eADR;IAEEC,IAAI,EAAEZ,OAAO,CAACa,sBAAR,CAA+BC,iBAFvC;IAGEC,OAAO,EAAEX,kBAHX;IAIEY,UAAU,eAAE,6BAAC,kCAAD;MAAQ,KAAK,EAAEpB,OAAO,CAACS,mBAAR,KAAgC,KAA/C;MAAsD,aAAa,EAAED;IAArE;EAJd,CADiD,EAOjD;IACEO,IAAI,EAAE,SADR;IAEEC,IAAI,EAAEZ,OAAO,CAACa,sBAAR,CAA+BI,YAFvC;IAGEF,OAAO,EAAE,MAAMzB,kBAAkB,EAHnC;IAIE4B,WAAW,EAAEC,MAAM,CAACvB,OAAO,CAACwB,WAAT,CAJrB;IAKEJ,UAAU,eAAE,6BAAC,gCAAD;MAAM,IAAI,EAAE,eAAZ;MAA6B,KAAK,EAAEd,MAAM,CAACmB;IAA3C;EALd,CAPiD,EAcjD;IACEV,IAAI,EAAE,OADR;IAEEW,SAAS,EAAEpB,MAAM,CAACqB,KAFpB;IAGEX,IAAI,EAAEZ,OAAO,CAACa,sBAAR,CAA+BW,kBAHvC;IAIET,OAAO,EAAE,MAAM;MACbnB,OAAO,CAAC6B,KAAR,GAAgBC,IAAhB,CAAqB,MAAM;QACzBnC,uBAAuB;QACvBG,GAAG,CAACiC,mBAAJ,CAAwB,CAAC/B,OAAO,CAACgC,GAAT,CAAxB,EAAuCC,KAAvC;MACD,CAHD;IAID;EATH,CAdiD,CAAD,CAAlD;EA2BA,oBACE,6BAAC,iBAAD,QACGnB,SAAS,CAACoB,GAAV,CAAerC,IAAD,IAAU;IACvB,oBACE,6BAAC,mCAAD;MACE,GAAG,EAAEA,IAAI,CAACmB,IADZ;MAEE,OAAO,EAAEnB,IAAI,CAACsB,OAFhB;MAGE,IAAI,EAAEtB,IAAI,CAACmB,IAHb;MAIE,QAAQ,EAAEnB,IAAI,CAACsC,QAJjB;MAKE,IAAI,EAAEtC,IAAI,CAACkB,IALb;MAME,SAAS,EAAElB,IAAI,CAAC6B,SANlB;MAOE,mBAAmB,EAAE7B,IAAI,CAACuC,mBAP5B;MAQE,WAAW,EAAEvC,IAAI,CAACyB,WARpB;MASE,UAAU,EAAEzB,IAAI,CAACuB;IATnB,EADF;EAaD,CAdA,CADH,CADF;AAmBD,CAhED;;eAkEe3B,wB"}
@@ -17,6 +17,10 @@ var _ProviderLayout = _interopRequireDefault(require("../../../components/Provid
17
17
 
18
18
  var _useContext = require("../../../hooks/useContext");
19
19
 
20
+ var _SBUError = _interopRequireDefault(require("../../../libs/SBUError"));
21
+
22
+ var _SBUUtils = _interopRequireDefault(require("../../../libs/SBUUtils"));
23
+
20
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
25
 
22
26
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -50,6 +54,9 @@ const GroupChannelSettingsContextsProvider = _ref => {
50
54
  const {
51
55
  fileService
52
56
  } = (0, _useContext.usePlatformService)();
57
+ const {
58
+ alert
59
+ } = (0, _uikitReactNativeFoundation.useAlert)();
53
60
  const {
54
61
  activeChannel,
55
62
  setActiveChannel
@@ -87,11 +94,9 @@ const GroupChannelSettingsContextsProvider = _ref => {
87
94
  submitLabel: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_NAME_PROMPT_OK,
88
95
  placeholder: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER,
89
96
  defaultValue: activeChannel.name,
90
- onSubmit: async channelName => {
91
- const params = new sdk.GroupChannelParams();
92
- params.name = channelName;
93
- await updateChannel(params);
94
- }
97
+ onSubmit: channelName => updateChannel({
98
+ name: channelName
99
+ })
95
100
  });
96
101
  }, [STRINGS, updateChannel, activeChannel.name]);
97
102
  const changeChannelImage = (0, _react.useCallback)(() => {
@@ -102,12 +107,25 @@ const GroupChannelSettingsContextsProvider = _ref => {
102
107
  onPress: async () => {
103
108
  const file = await fileService.openCamera({
104
109
  mediaType: 'photo',
105
- onOpenFailureWithToastMessage: () => toast.show(STRINGS.TOAST.OPEN_CAMERA_ERROR, 'error')
110
+ onOpenFailure: error => {
111
+ if (error.code === _SBUError.default.CODE.ERR_PERMISSIONS_DENIED) {
112
+ alert({
113
+ title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,
114
+ message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE('camera', 'UIKitSample'),
115
+ buttons: [{
116
+ text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK,
117
+ onPress: () => _SBUUtils.default.openSettings()
118
+ }]
119
+ });
120
+ } else {
121
+ toast.show(STRINGS.TOAST.OPEN_CAMERA_ERROR, 'error');
122
+ }
123
+ }
106
124
  });
107
125
  if (!file) return;
108
- const params = new sdk.GroupChannelParams();
109
- params.coverImage = file;
110
- await updateChannel(params);
126
+ await updateChannel({
127
+ coverImage: file
128
+ });
111
129
  }
112
130
  }, {
113
131
  title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY,
@@ -115,12 +133,25 @@ const GroupChannelSettingsContextsProvider = _ref => {
115
133
  const files = await fileService.openMediaLibrary({
116
134
  selectionLimit: 1,
117
135
  mediaType: 'photo',
118
- onOpenFailureWithToastMessage: () => toast.show(STRINGS.TOAST.OPEN_PHOTO_LIBRARY_ERROR, 'error')
136
+ onOpenFailure: error => {
137
+ if (error.code === _SBUError.default.CODE.ERR_PERMISSIONS_DENIED) {
138
+ alert({
139
+ title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,
140
+ message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE('device storage', 'UIKitSample'),
141
+ buttons: [{
142
+ text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK,
143
+ onPress: () => _SBUUtils.default.openSettings()
144
+ }]
145
+ });
146
+ } else {
147
+ toast.show(STRINGS.TOAST.OPEN_PHOTO_LIBRARY_ERROR, 'error');
148
+ }
149
+ }
119
150
  });
120
151
  if (!files || !files[0]) return;
121
- const params = new sdk.GroupChannelParams();
122
- params.coverImage = files[0];
123
- await updateChannel(params);
152
+ await updateChannel({
153
+ coverImage: files[0]
154
+ });
124
155
  }
125
156
  }]
126
157
  });
@@ -1 +1 @@
1
- {"version":3,"names":["GroupChannelSettingsContexts","Fragment","createContext","channel","headerTitle","headerRight","onPressHeaderRight","NOOP","HOOK_NAME","GroupChannelSettingsContextsProvider","children","uniqId","useUniqId","forceUpdate","useForceUpdate","STRINGS","useLocalization","sdk","useSendbirdChat","fileService","usePlatformService","activeChannel","setActiveChannel","useActiveGroupChannel","onChannelChanged","isDifferentChannel","isGroupChannel","useChannelHandler","onChannelFrozen","onChannelUnfrozen","toast","useToast","openSheet","useBottomSheet","openPrompt","usePrompt","openMenu","useActionMenu","updateChannel","useCallback","params","updatedChannel","changeChannelName","title","GROUP_CHANNEL_SETTINGS","DIALOG_CHANGE_NAME_PROMPT_TITLE","submitLabel","DIALOG_CHANGE_NAME_PROMPT_OK","placeholder","DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER","defaultValue","name","onSubmit","channelName","GroupChannelParams","changeChannelImage","DIALOG_CHANGE_IMAGE_MENU_TITLE","menuItems","DIALOG_CHANGE_IMAGE_MENU_CAMERA","onPress","file","openCamera","mediaType","onOpenFailureWithToastMessage","show","TOAST","OPEN_CAMERA_ERROR","coverImage","DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY","files","openMediaLibrary","selectionLimit","OPEN_PHOTO_LIBRARY_ERROR","sheetItems","DIALOG_CHANGE_NAME","DIALOG_CHANGE_IMAGE","HEADER_TITLE","HEADER_RIGHT"],"sources":["moduleContext.tsx"],"sourcesContent":["import React, { createContext, useCallback } from 'react';\n\nimport { useActiveGroupChannel, useChannelHandler } from '@sendbird/uikit-chat-hooks';\nimport { useActionMenu, useBottomSheet, usePrompt, useToast } from '@sendbird/uikit-react-native-foundation';\nimport {\n NOOP,\n SendbirdGroupChannel,\n SendbirdGroupChannelParams,\n SendbirdOpenChannel,\n isDifferentChannel,\n useForceUpdate,\n useUniqId,\n} from '@sendbird/uikit-utils';\n\nimport ProviderLayout from '../../../components/ProviderLayout';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../../../hooks/useContext';\nimport type { GroupChannelSettingsContextsType, GroupChannelSettingsModule } from '../types';\n\nexport const GroupChannelSettingsContexts: GroupChannelSettingsContextsType = {\n Fragment: createContext({\n channel: {} as SendbirdGroupChannel,\n headerTitle: '',\n headerRight: '',\n onPressHeaderRight: NOOP,\n }),\n};\n\nconst HOOK_NAME = 'GroupChannelSettingsContextsProvider';\nexport const GroupChannelSettingsContextsProvider: GroupChannelSettingsModule['Provider'] = ({ children, channel }) => {\n const uniqId = useUniqId(HOOK_NAME);\n const forceUpdate = useForceUpdate();\n const { STRINGS } = useLocalization();\n const { sdk } = useSendbirdChat();\n const { fileService } = usePlatformService();\n\n const { activeChannel, setActiveChannel } = useActiveGroupChannel(sdk, channel);\n\n const onChannelChanged = (channel: SendbirdGroupChannel | SendbirdOpenChannel) => {\n if (isDifferentChannel(channel, activeChannel) || !channel.isGroupChannel()) return;\n setActiveChannel(channel);\n forceUpdate();\n };\n\n useChannelHandler(sdk, `${HOOK_NAME}_${uniqId}`, {\n onChannelChanged: onChannelChanged,\n onChannelFrozen: onChannelChanged,\n onChannelUnfrozen: onChannelChanged,\n });\n\n const toast = useToast();\n const { openSheet } = useBottomSheet();\n const { openPrompt } = usePrompt();\n const { openMenu } = useActionMenu();\n\n const updateChannel = useCallback(\n async (params: SendbirdGroupChannelParams) => {\n const updatedChannel = await activeChannel.updateChannel(params);\n setActiveChannel(updatedChannel);\n forceUpdate();\n },\n [activeChannel],\n );\n\n const changeChannelName = useCallback(() => {\n openPrompt({\n title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_NAME_PROMPT_TITLE,\n submitLabel: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_NAME_PROMPT_OK,\n placeholder: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER,\n defaultValue: activeChannel.name,\n onSubmit: async (channelName) => {\n const params = new sdk.GroupChannelParams();\n params.name = channelName;\n await updateChannel(params);\n },\n });\n }, [STRINGS, updateChannel, activeChannel.name]);\n\n const changeChannelImage = useCallback(() => {\n openMenu({\n title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_IMAGE_MENU_TITLE,\n menuItems: [\n {\n title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_IMAGE_MENU_CAMERA,\n onPress: async () => {\n const file = await fileService.openCamera({\n mediaType: 'photo',\n onOpenFailureWithToastMessage: () => toast.show(STRINGS.TOAST.OPEN_CAMERA_ERROR, 'error'),\n });\n if (!file) return;\n\n const params = new sdk.GroupChannelParams();\n params.coverImage = file;\n await updateChannel(params);\n },\n },\n {\n title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY,\n onPress: async () => {\n const files = await fileService.openMediaLibrary({\n selectionLimit: 1,\n mediaType: 'photo',\n onOpenFailureWithToastMessage: () => toast.show(STRINGS.TOAST.OPEN_PHOTO_LIBRARY_ERROR, 'error'),\n });\n if (!files || !files[0]) return;\n\n const params = new sdk.GroupChannelParams();\n params.coverImage = files[0];\n await updateChannel(params);\n },\n },\n ],\n });\n }, [STRINGS, updateChannel]);\n\n const onPressHeaderRight = useCallback(() => {\n openSheet({\n sheetItems: [\n { title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_NAME, onPress: changeChannelName },\n { title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_IMAGE, onPress: changeChannelImage },\n ],\n });\n }, [STRINGS, changeChannelImage, changeChannelName]);\n\n return (\n <ProviderLayout>\n <GroupChannelSettingsContexts.Fragment.Provider\n value={{\n channel: activeChannel,\n headerTitle: STRINGS.GROUP_CHANNEL_SETTINGS.HEADER_TITLE,\n headerRight: STRINGS.GROUP_CHANNEL_SETTINGS.HEADER_RIGHT,\n onPressHeaderRight,\n }}\n >\n {children}\n </GroupChannelSettingsContexts.Fragment.Provider>\n </ProviderLayout>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["GroupChannelSettingsContexts","Fragment","createContext","channel","headerTitle","headerRight","onPressHeaderRight","NOOP","HOOK_NAME","GroupChannelSettingsContextsProvider","children","uniqId","useUniqId","forceUpdate","useForceUpdate","STRINGS","useLocalization","sdk","useSendbirdChat","fileService","usePlatformService","alert","useAlert","activeChannel","setActiveChannel","useActiveGroupChannel","onChannelChanged","isDifferentChannel","isGroupChannel","useChannelHandler","onChannelFrozen","onChannelUnfrozen","toast","useToast","openSheet","useBottomSheet","openPrompt","usePrompt","openMenu","useActionMenu","updateChannel","useCallback","params","updatedChannel","changeChannelName","title","GROUP_CHANNEL_SETTINGS","DIALOG_CHANGE_NAME_PROMPT_TITLE","submitLabel","DIALOG_CHANGE_NAME_PROMPT_OK","placeholder","DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER","defaultValue","name","onSubmit","channelName","changeChannelImage","DIALOG_CHANGE_IMAGE_MENU_TITLE","menuItems","DIALOG_CHANGE_IMAGE_MENU_CAMERA","onPress","file","openCamera","mediaType","onOpenFailure","error","code","SBUError","CODE","ERR_PERMISSIONS_DENIED","DIALOG","ALERT_PERMISSIONS_TITLE","message","ALERT_PERMISSIONS_MESSAGE","buttons","text","ALERT_PERMISSIONS_OK","SBUUtils","openSettings","show","TOAST","OPEN_CAMERA_ERROR","coverImage","DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY","files","openMediaLibrary","selectionLimit","OPEN_PHOTO_LIBRARY_ERROR","sheetItems","DIALOG_CHANGE_NAME","DIALOG_CHANGE_IMAGE","HEADER_TITLE","HEADER_RIGHT"],"sources":["moduleContext.tsx"],"sourcesContent":["import React, { createContext, useCallback } from 'react';\n\nimport { useActiveGroupChannel, useChannelHandler } from '@sendbird/uikit-chat-hooks';\nimport { useActionMenu, useAlert, useBottomSheet, usePrompt, useToast } from '@sendbird/uikit-react-native-foundation';\nimport {\n NOOP,\n SendbirdBaseChannel,\n SendbirdGroupChannel,\n SendbirdGroupChannelUpdateParams,\n isDifferentChannel,\n useForceUpdate,\n useUniqId,\n} from '@sendbird/uikit-utils';\n\nimport ProviderLayout from '../../../components/ProviderLayout';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../../../hooks/useContext';\nimport SBUError from '../../../libs/SBUError';\nimport SBUUtils from '../../../libs/SBUUtils';\nimport type { GroupChannelSettingsContextsType, GroupChannelSettingsModule } from '../types';\n\nexport const GroupChannelSettingsContexts: GroupChannelSettingsContextsType = {\n Fragment: createContext({\n channel: {} as SendbirdGroupChannel,\n headerTitle: '',\n headerRight: '',\n onPressHeaderRight: NOOP,\n }),\n};\n\nconst HOOK_NAME = 'GroupChannelSettingsContextsProvider';\nexport const GroupChannelSettingsContextsProvider: GroupChannelSettingsModule['Provider'] = ({ children, channel }) => {\n const uniqId = useUniqId(HOOK_NAME);\n const forceUpdate = useForceUpdate();\n const { STRINGS } = useLocalization();\n const { sdk } = useSendbirdChat();\n const { fileService } = usePlatformService();\n const { alert } = useAlert();\n\n const { activeChannel, setActiveChannel } = useActiveGroupChannel(sdk, channel);\n\n const onChannelChanged = (channel: SendbirdBaseChannel) => {\n if (isDifferentChannel(channel, activeChannel) || !channel.isGroupChannel()) return;\n setActiveChannel(channel);\n forceUpdate();\n };\n\n useChannelHandler(sdk, `${HOOK_NAME}_${uniqId}`, {\n onChannelChanged: onChannelChanged,\n onChannelFrozen: onChannelChanged,\n onChannelUnfrozen: onChannelChanged,\n });\n\n const toast = useToast();\n const { openSheet } = useBottomSheet();\n const { openPrompt } = usePrompt();\n const { openMenu } = useActionMenu();\n\n const updateChannel = useCallback(\n async (params: SendbirdGroupChannelUpdateParams) => {\n const updatedChannel = await activeChannel.updateChannel(params);\n setActiveChannel(updatedChannel);\n forceUpdate();\n },\n [activeChannel],\n );\n\n const changeChannelName = useCallback(() => {\n openPrompt({\n title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_NAME_PROMPT_TITLE,\n submitLabel: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_NAME_PROMPT_OK,\n placeholder: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER,\n defaultValue: activeChannel.name,\n onSubmit: (channelName) => updateChannel({ name: channelName }),\n });\n }, [STRINGS, updateChannel, activeChannel.name]);\n\n const changeChannelImage = useCallback(() => {\n openMenu({\n title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_IMAGE_MENU_TITLE,\n menuItems: [\n {\n title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_IMAGE_MENU_CAMERA,\n onPress: async () => {\n const file = await fileService.openCamera({\n mediaType: 'photo',\n onOpenFailure: (error) => {\n if (error.code === SBUError.CODE.ERR_PERMISSIONS_DENIED) {\n alert({\n title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,\n message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE('camera', 'UIKitSample'),\n buttons: [{ text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK, onPress: () => SBUUtils.openSettings() }],\n });\n } else {\n toast.show(STRINGS.TOAST.OPEN_CAMERA_ERROR, 'error');\n }\n },\n });\n if (!file) return;\n\n await updateChannel({ coverImage: file });\n },\n },\n {\n title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY,\n onPress: async () => {\n const files = await fileService.openMediaLibrary({\n selectionLimit: 1,\n mediaType: 'photo',\n onOpenFailure: (error) => {\n if (error.code === SBUError.CODE.ERR_PERMISSIONS_DENIED) {\n alert({\n title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,\n message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE('device storage', 'UIKitSample'),\n buttons: [{ text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK, onPress: () => SBUUtils.openSettings() }],\n });\n } else {\n toast.show(STRINGS.TOAST.OPEN_PHOTO_LIBRARY_ERROR, 'error');\n }\n },\n });\n if (!files || !files[0]) return;\n\n await updateChannel({ coverImage: files[0] });\n },\n },\n ],\n });\n }, [STRINGS, updateChannel]);\n\n const onPressHeaderRight = useCallback(() => {\n openSheet({\n sheetItems: [\n { title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_NAME, onPress: changeChannelName },\n { title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_IMAGE, onPress: changeChannelImage },\n ],\n });\n }, [STRINGS, changeChannelImage, changeChannelName]);\n\n return (\n <ProviderLayout>\n <GroupChannelSettingsContexts.Fragment.Provider\n value={{\n channel: activeChannel,\n headerTitle: STRINGS.GROUP_CHANNEL_SETTINGS.HEADER_TITLE,\n headerRight: STRINGS.GROUP_CHANNEL_SETTINGS.HEADER_RIGHT,\n onPressHeaderRight,\n }}\n >\n {children}\n </GroupChannelSettingsContexts.Fragment.Provider>\n </ProviderLayout>\n );\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { UseUserListOptions } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdGroupChannel, SendbirdGroupChannelParams } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\nimport type { GroupChannelType } from '../groupChannelList/types';\nimport type { UserListProps } from '../userList/types';\n\ntype UserIds = string[];\n\nexport interface GroupChannelCreateProps<User> {\n Fragment: {\n onPressHeaderLeft: () => void;\n onCreateChannel: (channel: SendbirdGroupChannel) => void;\n channelType?: GroupChannelType;\n userIdsGenerator?: (users: User[]) => UserIds;\n onBeforeCreateChannel?: (\n params: SendbirdGroupChannelParams,\n users: User[],\n ) => SendbirdGroupChannelParams | Promise<SendbirdGroupChannelParams>;\n sortComparator?: UseUserListOptions<User>['sortComparator'];\n queryCreator?: UseUserListOptions<User>['queryCreator'];\n renderUser?: UserListProps<User>['List']['renderUser'];\n };\n}\nexport type GroupChannelCreateFragment<User> = CommonComponent<GroupChannelCreateProps<User>['Fragment']>;\n\nexport interface GroupChannelInviteProps<User> {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: () => void;\n onInviteMembers: (channel: SendbirdGroupChannel) => void;\n userIdsGenerator?: (users: User[]) => UserIds;\n queryCreator?: UseUserListOptions<User>['queryCreator'];\n renderUser?: UserListProps<User>['List']['renderUser'];\n sortComparator?: UseUserListOptions<User>['sortComparator'];\n };\n}\nexport type GroupChannelInviteFragment<User> = CommonComponent<GroupChannelInviteProps<User>['Fragment']>;\n\nexport interface GroupChannelMembersProps<User> {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: () => void;\n onPressHeaderRight: () => void;\n sortComparator?: UseUserListOptions<User>['sortComparator'];\n renderUser?: UserListProps<User>['List']['renderUser'];\n };\n}\nexport type GroupChannelMembersFragment<User> = CommonComponent<GroupChannelMembersProps<User>['Fragment']>;\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { UseUserListOptions } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdGroupChannel, SendbirdGroupChannelCreateParams } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\nimport type { GroupChannelType } from '../groupChannelList/types';\nimport type { UserListProps } from '../userList/types';\n\ntype UserIds = string[];\n\nexport interface GroupChannelCreateProps<User> {\n Fragment: {\n onPressHeaderLeft: () => void;\n onCreateChannel: (channel: SendbirdGroupChannel) => void;\n channelType?: GroupChannelType;\n userIdsGenerator?: (users: User[]) => UserIds;\n onBeforeCreateChannel?: (\n params: SendbirdGroupChannelCreateParams,\n users: User[],\n ) => SendbirdGroupChannelCreateParams | Promise<SendbirdGroupChannelCreateParams>;\n sortComparator?: UseUserListOptions<User>['sortComparator'];\n queryCreator?: UseUserListOptions<User>['queryCreator'];\n renderUser?: UserListProps<User>['List']['renderUser'];\n };\n}\nexport type GroupChannelCreateFragment<User> = CommonComponent<GroupChannelCreateProps<User>['Fragment']>;\n\nexport interface GroupChannelInviteProps<User> {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: () => void;\n onInviteMembers: (channel: SendbirdGroupChannel) => void;\n userIdsGenerator?: (users: User[]) => UserIds;\n queryCreator?: UseUserListOptions<User>['queryCreator'];\n renderUser?: UserListProps<User>['List']['renderUser'];\n sortComparator?: UseUserListOptions<User>['sortComparator'];\n };\n}\nexport type GroupChannelInviteFragment<User> = CommonComponent<GroupChannelInviteProps<User>['Fragment']>;\n\nexport interface GroupChannelMembersProps<User> {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: () => void;\n onPressHeaderRight: () => void;\n sortComparator?: UseUserListOptions<User>['sortComparator'];\n renderUser?: UserListProps<User>['List']['renderUser'];\n };\n}\nexport type GroupChannelMembersFragment<User> = CommonComponent<GroupChannelMembersProps<User>['Fragment']>;\n"],"mappings":""}
@@ -106,16 +106,17 @@ const createGroupChannelCreateFragment = initModule => {
106
106
  }, /*#__PURE__*/_react.default.createElement(UserListModule.Header, {
107
107
  onPressHeaderLeft: onPressHeaderLeft,
108
108
  onPressHeaderRight: async users => {
109
- const params = new sdk.GroupChannelParams();
109
+ const params = {
110
+ invitedUserIds: userIdsGenerator(users),
111
+ name: '',
112
+ coverUrl: '',
113
+ isDistinct: false
114
+ };
110
115
  if (channelType === 'BROADCAST') params.isBroadcast = true;
111
116
  if (channelType === 'SUPER_GROUP') params.isSuper = true;
112
117
  if (currentUser) params.operatorUserIds = [currentUser.userId];
113
- params.addUserIds(userIdsGenerator(users));
114
- params.name = '';
115
- params.coverUrl = '';
116
- params.isDistinct = false;
117
118
  const processedParams = await onBeforeCreateChannel(params, users);
118
- const channel = await sdk.GroupChannel.createChannel(processedParams);
119
+ const channel = await sdk.groupChannel.createChannel(processedParams);
119
120
  onCreateChannel(channel);
120
121
  }
121
122
  }), /*#__PURE__*/_react.default.createElement(_StatusComposition.default, {
@@ -1 +1 @@
1
- {"version":3,"names":["defaultUserIdsGenerator","users","userIds","map","user","userId","filter","u","Boolean","length","Logger","warn","createGroupChannelCreateFragment","initModule","UserListModule","createUserListModule","userIdsGenerator","onPressHeaderLeft","onBeforeCreateChannel","PASS","onCreateChannel","sortComparator","queryCreator","channelType","renderUser","sdk","currentUser","useSendbirdChat","STRINGS","useLocalization","refreshing","loading","error","refresh","next","useUserList","_renderUser","useFreshCallback","selectedUsers","setSelectedUsers","Error","sbUser","sbSelectedUsers","sbSetSelectedUsers","isMe","userIdx","findIndex","isSelected","draft","splice","push","profileUrl","nickname","LABELS","USER_NO_NAME","GROUP_CHANNEL_CREATE","HEADER_RIGHT","HEADER_TITLE","params","GroupChannelParams","isBroadcast","isSuper","operatorUserIds","addUserIds","name","coverUrl","isDistinct","processedParams","channel","GroupChannel","createChannel"],"sources":["createGroupChannelCreateFragment.tsx"],"sourcesContent":["import React from 'react';\nimport { TouchableOpacity } from 'react-native';\n\nimport { useUserList } from '@sendbird/uikit-chat-hooks';\nimport { Logger, PASS, SendbirdUser, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport StatusComposition from '../components/StatusComposition';\nimport UserSelectableBar from '../components/UserSelectableBar';\nimport type { GroupChannelCreateFragment } from '../domain/groupChannelUserList/types';\nimport createUserListModule from '../domain/userList/module/createUserListModule';\nimport type { UserListModule } from '../domain/userList/types';\nimport { useLocalization, useSendbirdChat } from '../hooks/useContext';\n\nconst defaultUserIdsGenerator = <T,>(users: T[]) => {\n const userIds = users\n .map((user) => {\n // @ts-ignore\n return user.userId as string | undefined;\n })\n .filter((u): u is string => Boolean(u));\n\n if (userIds.length === 0) {\n Logger.warn(\n 'GroupChannelCreateFragment: Couldn\\'t find user ids! if you provide \"queryCreator\", please provide \"userIdsGenerator\" as well',\n );\n }\n\n return userIds;\n};\n\nconst createGroupChannelCreateFragment = <UserType,>(\n initModule?: Partial<UserListModule<UserType>>,\n): GroupChannelCreateFragment<UserType> => {\n const UserListModule = createUserListModule<UserType>(initModule);\n\n return ({\n userIdsGenerator = defaultUserIdsGenerator,\n onPressHeaderLeft,\n onBeforeCreateChannel = PASS,\n onCreateChannel,\n sortComparator,\n queryCreator,\n channelType = 'GROUP',\n renderUser,\n }) => {\n const { sdk, currentUser } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { users, refreshing, loading, error, refresh, next } = useUserList(sdk, {\n queryCreator,\n sortComparator,\n });\n\n const _renderUser: NonNullable<typeof renderUser> = useFreshCallback((user, selectedUsers, setSelectedUsers) => {\n if (queryCreator && !renderUser) {\n throw new Error('You should provide \"renderUser\" when providing \"queryCreator\"');\n }\n if (renderUser) return renderUser(user, selectedUsers, setSelectedUsers);\n\n const sbUser = user as unknown as SendbirdUser;\n const sbSelectedUsers = selectedUsers as unknown as SendbirdUser[];\n const sbSetSelectedUsers = setSelectedUsers as unknown as React.Dispatch<React.SetStateAction<SendbirdUser[]>>;\n\n const isMe = sbUser.userId === currentUser?.userId;\n if (isMe) return null;\n\n const userIdx = sbSelectedUsers.findIndex((u) => u.userId === sbUser.userId);\n const isSelected = userIdx > -1;\n\n return (\n <TouchableOpacity\n activeOpacity={0.7}\n onPress={() => {\n sbSetSelectedUsers(([...draft]) => {\n if (isSelected) draft.splice(userIdx, 1);\n else draft.push(sbUser);\n return draft;\n });\n }}\n >\n <UserSelectableBar\n uri={sbUser.profileUrl}\n name={sbUser.nickname || STRINGS.LABELS.USER_NO_NAME}\n selected={isSelected}\n disabled={false}\n />\n </TouchableOpacity>\n );\n });\n\n return (\n <UserListModule.Provider\n headerRight={(selectedUsers) => STRINGS.GROUP_CHANNEL_CREATE.HEADER_RIGHT({ selectedUsers })}\n headerTitle={STRINGS.GROUP_CHANNEL_CREATE.HEADER_TITLE}\n >\n <UserListModule.Header\n onPressHeaderLeft={onPressHeaderLeft}\n onPressHeaderRight={async (users) => {\n const params = new sdk.GroupChannelParams();\n\n if (channelType === 'BROADCAST') params.isBroadcast = true;\n if (channelType === 'SUPER_GROUP') params.isSuper = true;\n if (currentUser) params.operatorUserIds = [currentUser.userId];\n params.addUserIds(userIdsGenerator(users));\n params.name = '';\n params.coverUrl = '';\n params.isDistinct = false;\n\n const processedParams = await onBeforeCreateChannel(params, users);\n const channel = await sdk.GroupChannel.createChannel(processedParams);\n onCreateChannel(channel);\n }}\n />\n <StatusComposition\n loading={loading}\n error={Boolean(error)}\n LoadingComponent={<UserListModule.StatusLoading />}\n ErrorComponent={<UserListModule.StatusError onPressRetry={() => refresh()} />}\n >\n <UserListModule.List\n onLoadNext={next}\n users={users}\n renderUser={_renderUser}\n onRefresh={refresh}\n refreshing={refreshing}\n ListEmptyComponent={<UserListModule.StatusEmpty />}\n />\n </StatusComposition>\n </UserListModule.Provider>\n );\n };\n};\n\nexport default createGroupChannelCreateFragment;\n"],"mappings":"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"}
1
+ {"version":3,"names":["defaultUserIdsGenerator","users","userIds","map","user","userId","filter","u","Boolean","length","Logger","warn","createGroupChannelCreateFragment","initModule","UserListModule","createUserListModule","userIdsGenerator","onPressHeaderLeft","onBeforeCreateChannel","PASS","onCreateChannel","sortComparator","queryCreator","channelType","renderUser","sdk","currentUser","useSendbirdChat","STRINGS","useLocalization","refreshing","loading","error","refresh","next","useUserList","_renderUser","useFreshCallback","selectedUsers","setSelectedUsers","Error","sbUser","sbSelectedUsers","sbSetSelectedUsers","isMe","userIdx","findIndex","isSelected","draft","splice","push","profileUrl","nickname","LABELS","USER_NO_NAME","GROUP_CHANNEL_CREATE","HEADER_RIGHT","HEADER_TITLE","params","invitedUserIds","name","coverUrl","isDistinct","isBroadcast","isSuper","operatorUserIds","processedParams","channel","groupChannel","createChannel"],"sources":["createGroupChannelCreateFragment.tsx"],"sourcesContent":["import React from 'react';\nimport { TouchableOpacity } from 'react-native';\n\nimport { useUserList } from '@sendbird/uikit-chat-hooks';\nimport { Logger, PASS, SendbirdGroupChannelCreateParams, SendbirdUser, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport StatusComposition from '../components/StatusComposition';\nimport UserSelectableBar from '../components/UserSelectableBar';\nimport type { GroupChannelCreateFragment } from '../domain/groupChannelUserList/types';\nimport createUserListModule from '../domain/userList/module/createUserListModule';\nimport type { UserListModule } from '../domain/userList/types';\nimport { useLocalization, useSendbirdChat } from '../hooks/useContext';\n\nconst defaultUserIdsGenerator = <T,>(users: T[]) => {\n const userIds = users\n .map((user) => {\n // @ts-ignore\n return user.userId as string | undefined;\n })\n .filter((u): u is string => Boolean(u));\n\n if (userIds.length === 0) {\n Logger.warn(\n 'GroupChannelCreateFragment: Couldn\\'t find user ids! if you provide \"queryCreator\", please provide \"userIdsGenerator\" as well',\n );\n }\n\n return userIds;\n};\n\nconst createGroupChannelCreateFragment = <UserType,>(\n initModule?: Partial<UserListModule<UserType>>,\n): GroupChannelCreateFragment<UserType> => {\n const UserListModule = createUserListModule<UserType>(initModule);\n\n return ({\n userIdsGenerator = defaultUserIdsGenerator,\n onPressHeaderLeft,\n onBeforeCreateChannel = PASS,\n onCreateChannel,\n sortComparator,\n queryCreator,\n channelType = 'GROUP',\n renderUser,\n }) => {\n const { sdk, currentUser } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { users, refreshing, loading, error, refresh, next } = useUserList(sdk, {\n queryCreator,\n sortComparator,\n });\n\n const _renderUser: NonNullable<typeof renderUser> = useFreshCallback((user, selectedUsers, setSelectedUsers) => {\n if (queryCreator && !renderUser) {\n throw new Error('You should provide \"renderUser\" when providing \"queryCreator\"');\n }\n if (renderUser) return renderUser(user, selectedUsers, setSelectedUsers);\n\n const sbUser = user as unknown as SendbirdUser;\n const sbSelectedUsers = selectedUsers as unknown as SendbirdUser[];\n const sbSetSelectedUsers = setSelectedUsers as unknown as React.Dispatch<React.SetStateAction<SendbirdUser[]>>;\n\n const isMe = sbUser.userId === currentUser?.userId;\n if (isMe) return null;\n\n const userIdx = sbSelectedUsers.findIndex((u) => u.userId === sbUser.userId);\n const isSelected = userIdx > -1;\n\n return (\n <TouchableOpacity\n activeOpacity={0.7}\n onPress={() => {\n sbSetSelectedUsers(([...draft]) => {\n if (isSelected) draft.splice(userIdx, 1);\n else draft.push(sbUser);\n return draft;\n });\n }}\n >\n <UserSelectableBar\n uri={sbUser.profileUrl}\n name={sbUser.nickname || STRINGS.LABELS.USER_NO_NAME}\n selected={isSelected}\n disabled={false}\n />\n </TouchableOpacity>\n );\n });\n\n return (\n <UserListModule.Provider\n headerRight={(selectedUsers) => STRINGS.GROUP_CHANNEL_CREATE.HEADER_RIGHT({ selectedUsers })}\n headerTitle={STRINGS.GROUP_CHANNEL_CREATE.HEADER_TITLE}\n >\n <UserListModule.Header\n onPressHeaderLeft={onPressHeaderLeft}\n onPressHeaderRight={async (users) => {\n const params: SendbirdGroupChannelCreateParams = {\n invitedUserIds: userIdsGenerator(users),\n name: '',\n coverUrl: '',\n isDistinct: false,\n };\n\n if (channelType === 'BROADCAST') params.isBroadcast = true;\n if (channelType === 'SUPER_GROUP') params.isSuper = true;\n if (currentUser) params.operatorUserIds = [currentUser.userId];\n\n const processedParams = await onBeforeCreateChannel(params, users);\n const channel = await sdk.groupChannel.createChannel(processedParams);\n onCreateChannel(channel);\n }}\n />\n <StatusComposition\n loading={loading}\n error={Boolean(error)}\n LoadingComponent={<UserListModule.StatusLoading />}\n ErrorComponent={<UserListModule.StatusError onPressRetry={() => refresh()} />}\n >\n <UserListModule.List\n onLoadNext={next}\n users={users}\n renderUser={_renderUser}\n onRefresh={refresh}\n refreshing={refreshing}\n ListEmptyComponent={<UserListModule.StatusEmpty />}\n />\n </StatusComposition>\n </UserListModule.Provider>\n );\n };\n};\n\nexport default createGroupChannelCreateFragment;\n"],"mappings":"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"}
@@ -91,27 +91,27 @@ const createGroupChannelFragment = initModule => {
91
91
  ...flatListProps
92
92
  }), [loading, flatListProps]);
93
93
  const onSendFileMessage = (0, _uikitUtils.useFreshCallback)(async file => {
94
- const params = new sdk.FileMessageParams();
95
- params.file = file;
96
- const processedParams = await onBeforeSendFileMessage(params);
94
+ const processedParams = await onBeforeSendFileMessage({
95
+ file
96
+ });
97
97
  await sendFileMessage(processedParams);
98
98
  });
99
99
  const onSendUserMessage = (0, _uikitUtils.useFreshCallback)(async text => {
100
- const params = new sdk.UserMessageParams();
101
- params.message = text;
102
- const processedParams = await onBeforeSendUserMessage(params);
100
+ const processedParams = await onBeforeSendUserMessage({
101
+ message: text
102
+ });
103
103
  await sendUserMessage(processedParams);
104
104
  });
105
105
  const onUpdateFileMessage = (0, _uikitUtils.useFreshCallback)(async (editedFile, message) => {
106
- const params = new sdk.FileMessageParams();
107
- params.file = editedFile;
108
- const processedParams = await onBeforeSendFileMessage(params);
106
+ const processedParams = await onBeforeSendFileMessage({
107
+ file: editedFile
108
+ });
109
109
  await updateFileMessage(message.messageId, processedParams);
110
110
  });
111
111
  const onUpdateUserMessage = (0, _uikitUtils.useFreshCallback)(async (editedText, message) => {
112
- const params = new sdk.UserMessageParams();
113
- params.message = editedText;
114
- const processedParams = await onBeforeSendUserMessage(params);
112
+ const processedParams = await onBeforeSendUserMessage({
113
+ message: editedText
114
+ });
115
115
  await updateUserMessage(message.messageId, processedParams);
116
116
  });
117
117
  return /*#__PURE__*/_react.default.createElement(GroupChannelModule.Provider, {
@@ -1 +1 @@
1
- {"version":3,"names":["createGroupChannelFragment","initModule","GroupChannelModule","createGroupChannelModule","renderNewMessagesButton","props","renderScrollToBottomButton","renderMessage","enableMessageGrouping","enableTypingIndicator","onPressHeaderLeft","NOOP","onPressHeaderRight","onPressImageMessage","onPressMediaMessage","onChannelDeleted","onBeforeSendFileMessage","PASS","onBeforeSendUserMessage","channel","keyboardAvoidOffset","queryCreator","collectionCreator","sortComparator","messageComparator","flatListProps","sdk","currentUser","useSendbirdChat","activeChannel","messages","nextMessages","newMessagesFromMembers","next","prev","sendFileMessage","sendUserMessage","updateFileMessage","updateUserMessage","resendMessage","deleteMessage","loading","useGroupChannelMessages","userId","enableCollectionWithoutLocalCache","_renderMessage","useFreshCallback","memoizedFlatListProps","useMemo","ListEmptyComponent","contentContainerStyle","flexGrow","onSendFileMessage","file","params","FileMessageParams","processedParams","onSendUserMessage","text","UserMessageParams","message","onUpdateFileMessage","editedFile","messageId","onUpdateUserMessage","editedText"],"sources":["createGroupChannelFragment.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\n\nimport { useGroupChannelMessages } from '@sendbird/uikit-chat-hooks';\nimport { NOOP, PASS, messageComparator, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport MessageRenderer from '../components/MessageRenderer';\nimport NewMessagesButton from '../components/NewMessagesButton';\nimport ScrollToBottomButton from '../components/ScrollToBottomButton';\nimport StatusComposition from '../components/StatusComposition';\nimport createGroupChannelModule from '../domain/groupChannel/module/createGroupChannelModule';\nimport type { GroupChannelFragment, GroupChannelModule, GroupChannelProps } from '../domain/groupChannel/types';\nimport { useSendbirdChat } from '../hooks/useContext';\n\nconst createGroupChannelFragment = (initModule?: Partial<GroupChannelModule>): GroupChannelFragment => {\n const GroupChannelModule = createGroupChannelModule(initModule);\n\n return ({\n renderNewMessagesButton = (props) => <NewMessagesButton {...props} />,\n renderScrollToBottomButton = (props) => <ScrollToBottomButton {...props} />,\n renderMessage,\n enableMessageGrouping = true,\n enableTypingIndicator = true,\n onPressHeaderLeft = NOOP,\n onPressHeaderRight = NOOP,\n onPressImageMessage,\n onPressMediaMessage = NOOP,\n onChannelDeleted = NOOP,\n onBeforeSendFileMessage = PASS,\n onBeforeSendUserMessage = PASS,\n channel,\n keyboardAvoidOffset,\n queryCreator,\n collectionCreator,\n sortComparator = messageComparator,\n flatListProps,\n }) => {\n const { sdk, currentUser } = useSendbirdChat();\n\n const {\n activeChannel,\n messages,\n nextMessages,\n newMessagesFromMembers,\n next,\n prev,\n sendFileMessage,\n sendUserMessage,\n updateFileMessage,\n updateUserMessage,\n resendMessage,\n deleteMessage,\n loading,\n } = useGroupChannelMessages(sdk, channel, currentUser?.userId, {\n collectionCreator,\n queryCreator,\n sortComparator,\n onChannelDeleted,\n enableCollectionWithoutLocalCache: !queryCreator,\n });\n\n const _renderMessage: GroupChannelProps['MessageList']['renderMessage'] = useFreshCallback((props) => {\n if (renderMessage) return renderMessage(props);\n return <MessageRenderer {...props} />;\n });\n\n const memoizedFlatListProps = useMemo(\n () => ({\n ListEmptyComponent: <GroupChannelModule.StatusEmpty />,\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }),\n [loading, flatListProps],\n );\n\n const onSendFileMessage: GroupChannelProps['Input']['onSendFileMessage'] = useFreshCallback(async (file) => {\n const params = new sdk.FileMessageParams();\n params.file = file;\n const processedParams = await onBeforeSendFileMessage(params);\n await sendFileMessage(processedParams);\n });\n const onSendUserMessage: GroupChannelProps['Input']['onSendUserMessage'] = useFreshCallback(async (text) => {\n const params = new sdk.UserMessageParams();\n params.message = text;\n const processedParams = await onBeforeSendUserMessage(params);\n await sendUserMessage(processedParams);\n });\n const onUpdateFileMessage: GroupChannelProps['Input']['onUpdateFileMessage'] = useFreshCallback(\n async (editedFile, message) => {\n const params = new sdk.FileMessageParams();\n params.file = editedFile;\n const processedParams = await onBeforeSendFileMessage(params);\n await updateFileMessage(message.messageId, processedParams);\n },\n );\n const onUpdateUserMessage: GroupChannelProps['Input']['onUpdateUserMessage'] = useFreshCallback(\n async (editedText, message) => {\n const params = new sdk.UserMessageParams();\n params.message = editedText;\n const processedParams = await onBeforeSendUserMessage(params);\n await updateUserMessage(message.messageId, processedParams);\n },\n );\n\n return (\n <GroupChannelModule.Provider\n channel={activeChannel}\n enableTypingIndicator={enableTypingIndicator}\n keyboardAvoidOffset={keyboardAvoidOffset}\n >\n <GroupChannelModule.Header onPressHeaderLeft={onPressHeaderLeft} onPressHeaderRight={onPressHeaderRight} />\n <StatusComposition loading={loading} LoadingComponent={<GroupChannelModule.StatusLoading />}>\n <GroupChannelModule.MessageList\n enableMessageGrouping={enableMessageGrouping}\n currentUserId={currentUser?.userId}\n channel={activeChannel}\n renderMessage={_renderMessage}\n messages={messages}\n nextMessages={nextMessages}\n newMessagesFromMembers={newMessagesFromMembers}\n onTopReached={prev}\n onBottomReached={next}\n renderNewMessagesButton={renderNewMessagesButton}\n renderScrollToBottomButton={renderScrollToBottomButton}\n onResendFailedMessage={resendMessage}\n onDeleteMessage={deleteMessage}\n onPressImageMessage={onPressImageMessage}\n onPressMediaMessage={onPressMediaMessage}\n flatListProps={memoizedFlatListProps}\n />\n <GroupChannelModule.Input\n channel={activeChannel}\n onSendFileMessage={onSendFileMessage}\n onSendUserMessage={onSendUserMessage}\n onUpdateFileMessage={onUpdateFileMessage}\n onUpdateUserMessage={onUpdateUserMessage}\n />\n </StatusComposition>\n </GroupChannelModule.Provider>\n );\n };\n};\n\nexport default createGroupChannelFragment;\n"],"mappings":"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"}
1
+ {"version":3,"names":["createGroupChannelFragment","initModule","GroupChannelModule","createGroupChannelModule","renderNewMessagesButton","props","renderScrollToBottomButton","renderMessage","enableMessageGrouping","enableTypingIndicator","onPressHeaderLeft","NOOP","onPressHeaderRight","onPressImageMessage","onPressMediaMessage","onChannelDeleted","onBeforeSendFileMessage","PASS","onBeforeSendUserMessage","channel","keyboardAvoidOffset","queryCreator","collectionCreator","sortComparator","messageComparator","flatListProps","sdk","currentUser","useSendbirdChat","activeChannel","messages","nextMessages","newMessagesFromMembers","next","prev","sendFileMessage","sendUserMessage","updateFileMessage","updateUserMessage","resendMessage","deleteMessage","loading","useGroupChannelMessages","userId","enableCollectionWithoutLocalCache","_renderMessage","useFreshCallback","memoizedFlatListProps","useMemo","ListEmptyComponent","contentContainerStyle","flexGrow","onSendFileMessage","file","processedParams","onSendUserMessage","text","message","onUpdateFileMessage","editedFile","messageId","onUpdateUserMessage","editedText"],"sources":["createGroupChannelFragment.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\n\nimport { useGroupChannelMessages } from '@sendbird/uikit-chat-hooks';\nimport { NOOP, PASS, messageComparator, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport MessageRenderer from '../components/MessageRenderer';\nimport NewMessagesButton from '../components/NewMessagesButton';\nimport ScrollToBottomButton from '../components/ScrollToBottomButton';\nimport StatusComposition from '../components/StatusComposition';\nimport createGroupChannelModule from '../domain/groupChannel/module/createGroupChannelModule';\nimport type { GroupChannelFragment, GroupChannelModule, GroupChannelProps } from '../domain/groupChannel/types';\nimport { useSendbirdChat } from '../hooks/useContext';\n\nconst createGroupChannelFragment = (initModule?: Partial<GroupChannelModule>): GroupChannelFragment => {\n const GroupChannelModule = createGroupChannelModule(initModule);\n\n return ({\n renderNewMessagesButton = (props) => <NewMessagesButton {...props} />,\n renderScrollToBottomButton = (props) => <ScrollToBottomButton {...props} />,\n renderMessage,\n enableMessageGrouping = true,\n enableTypingIndicator = true,\n onPressHeaderLeft = NOOP,\n onPressHeaderRight = NOOP,\n onPressImageMessage,\n onPressMediaMessage = NOOP,\n onChannelDeleted = NOOP,\n onBeforeSendFileMessage = PASS,\n onBeforeSendUserMessage = PASS,\n channel,\n keyboardAvoidOffset,\n queryCreator,\n collectionCreator,\n sortComparator = messageComparator,\n flatListProps,\n }) => {\n const { sdk, currentUser } = useSendbirdChat();\n\n const {\n activeChannel,\n messages,\n nextMessages,\n newMessagesFromMembers,\n next,\n prev,\n sendFileMessage,\n sendUserMessage,\n updateFileMessage,\n updateUserMessage,\n resendMessage,\n deleteMessage,\n loading,\n } = useGroupChannelMessages(sdk, channel, currentUser?.userId, {\n collectionCreator,\n queryCreator,\n sortComparator,\n onChannelDeleted,\n enableCollectionWithoutLocalCache: !queryCreator,\n });\n\n const _renderMessage: GroupChannelProps['MessageList']['renderMessage'] = useFreshCallback((props) => {\n if (renderMessage) return renderMessage(props);\n return <MessageRenderer {...props} />;\n });\n\n const memoizedFlatListProps = useMemo(\n () => ({\n ListEmptyComponent: <GroupChannelModule.StatusEmpty />,\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }),\n [loading, flatListProps],\n );\n\n const onSendFileMessage: GroupChannelProps['Input']['onSendFileMessage'] = useFreshCallback(async (file) => {\n const processedParams = await onBeforeSendFileMessage({ file });\n await sendFileMessage(processedParams);\n });\n const onSendUserMessage: GroupChannelProps['Input']['onSendUserMessage'] = useFreshCallback(async (text) => {\n const processedParams = await onBeforeSendUserMessage({ message: text });\n await sendUserMessage(processedParams);\n });\n const onUpdateFileMessage: GroupChannelProps['Input']['onUpdateFileMessage'] = useFreshCallback(\n async (editedFile, message) => {\n const processedParams = await onBeforeSendFileMessage({ file: editedFile });\n await updateFileMessage(message.messageId, processedParams);\n },\n );\n const onUpdateUserMessage: GroupChannelProps['Input']['onUpdateUserMessage'] = useFreshCallback(\n async (editedText, message) => {\n const processedParams = await onBeforeSendUserMessage({ message: editedText });\n await updateUserMessage(message.messageId, processedParams);\n },\n );\n\n return (\n <GroupChannelModule.Provider\n channel={activeChannel}\n enableTypingIndicator={enableTypingIndicator}\n keyboardAvoidOffset={keyboardAvoidOffset}\n >\n <GroupChannelModule.Header onPressHeaderLeft={onPressHeaderLeft} onPressHeaderRight={onPressHeaderRight} />\n <StatusComposition loading={loading} LoadingComponent={<GroupChannelModule.StatusLoading />}>\n <GroupChannelModule.MessageList\n enableMessageGrouping={enableMessageGrouping}\n currentUserId={currentUser?.userId}\n channel={activeChannel}\n renderMessage={_renderMessage}\n messages={messages}\n nextMessages={nextMessages}\n newMessagesFromMembers={newMessagesFromMembers}\n onTopReached={prev}\n onBottomReached={next}\n renderNewMessagesButton={renderNewMessagesButton}\n renderScrollToBottomButton={renderScrollToBottomButton}\n onResendFailedMessage={resendMessage}\n onDeleteMessage={deleteMessage}\n onPressImageMessage={onPressImageMessage}\n onPressMediaMessage={onPressMediaMessage}\n flatListProps={memoizedFlatListProps}\n />\n <GroupChannelModule.Input\n channel={activeChannel}\n onSendFileMessage={onSendFileMessage}\n onSendUserMessage={onSendUserMessage}\n onUpdateFileMessage={onUpdateFileMessage}\n onUpdateUserMessage={onUpdateUserMessage}\n />\n </StatusComposition>\n </GroupChannelModule.Provider>\n );\n };\n};\n\nexport default createGroupChannelFragment;\n"],"mappings":"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"}
@@ -77,7 +77,7 @@ const createGroupChannelListFragment = initModule => {
77
77
  });
78
78
 
79
79
  if (!currentUser) {
80
- _uikitUtils.Logger.warn('Cannot render GroupChannelListFragment, User is not connected');
80
+ _uikitUtils.Logger.warn('Cannot render GroupChannelListFragment, please connect using `useConnection()` hook first');
81
81
 
82
82
  return null;
83
83
  }
@@ -1 +1 @@
1
- {"version":3,"names":["createGroupChannelListFragment","initModule","GroupChannelListModule","createGroupChannelListModule","TypeSelectorHeader","onPressChannel","onPressCreateChannel","queryCreator","collectionCreator","renderGroupChannelPreview","flatListProps","menuItemCreator","PASS","sdk","currentUser","features","markAsDeliveredWithChannel","useSendbirdChat","groupChannels","next","loading","useGroupChannelList","userId","enableCollectionWithoutLocalCache","deliveryReceiptEnabled","useEffect","listener","AppState","addEventListener","status","forEach","remove","_renderGroupChannelPreview","useFreshCallback","channel","onLongPressChannel","Logger","warn","ListEmptyComponent","contentContainerStyle","flexGrow"],"sources":["createGroupChannelListFragment.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport { AppState } from 'react-native';\n\nimport { useGroupChannelList } from '@sendbird/uikit-chat-hooks';\nimport { Logger, PASS, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport StatusComposition from '../components/StatusComposition';\nimport GroupChannelPreviewContainer from '../containers/GroupChannelPreviewContainer';\nimport createGroupChannelListModule from '../domain/groupChannelList/module/createGroupChannelListModule';\nimport type {\n GroupChannelListFragment,\n GroupChannelListModule,\n GroupChannelListProps,\n} from '../domain/groupChannelList/types';\nimport { useSendbirdChat } from '../hooks/useContext';\n\nconst createGroupChannelListFragment = (initModule?: Partial<GroupChannelListModule>): GroupChannelListFragment => {\n const GroupChannelListModule = createGroupChannelListModule(initModule);\n return ({\n TypeSelectorHeader,\n onPressChannel,\n onPressCreateChannel,\n queryCreator,\n collectionCreator,\n renderGroupChannelPreview,\n // skipTypeSelection = true,\n flatListProps = {},\n menuItemCreator = PASS,\n }) => {\n const { sdk, currentUser, features, markAsDeliveredWithChannel } = useSendbirdChat();\n const { groupChannels, next, loading } = useGroupChannelList(sdk, currentUser?.userId, {\n queryCreator,\n collectionCreator,\n enableCollectionWithoutLocalCache: !queryCreator,\n });\n\n if (features.deliveryReceiptEnabled) {\n useEffect(() => {\n const listener = AppState.addEventListener('change', (status) => {\n if (status === 'active') groupChannels.forEach(markAsDeliveredWithChannel);\n });\n return () => listener.remove();\n }, []);\n }\n\n const _renderGroupChannelPreview: GroupChannelListProps['List']['renderGroupChannelPreview'] = useFreshCallback(\n (channel, onLongPressChannel) => {\n if (renderGroupChannelPreview) return renderGroupChannelPreview(channel, onLongPressChannel);\n return (\n <GroupChannelPreviewContainer\n channel={channel}\n onPress={() => onPressChannel(channel)}\n onLongPress={() => onLongPressChannel()}\n />\n );\n },\n );\n\n if (!currentUser) {\n Logger.warn('Cannot render GroupChannelListFragment, User is not connected');\n return null;\n }\n\n return (\n <GroupChannelListModule.Provider>\n <GroupChannelListModule.Header />\n <StatusComposition loading={loading} LoadingComponent={<GroupChannelListModule.StatusLoading />}>\n <GroupChannelListModule.List\n menuItemCreator={menuItemCreator}\n renderGroupChannelPreview={_renderGroupChannelPreview}\n groupChannels={groupChannels}\n onLoadNext={next}\n flatListProps={{\n ListEmptyComponent: <GroupChannelListModule.StatusEmpty />,\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }}\n />\n </StatusComposition>\n <GroupChannelListModule.TypeSelector\n // NOTE: not included in first iteration\n skipTypeSelection\n Header={TypeSelectorHeader}\n onSelectType={onPressCreateChannel}\n />\n </GroupChannelListModule.Provider>\n );\n };\n};\n\nexport default createGroupChannelListFragment;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;AAEA;;AACA;;AACA;;AAMA;;;;;;;;AAEA,MAAMA,8BAA8B,GAAIC,UAAD,IAA4E;EACjH,MAAMC,sBAAsB,GAAG,IAAAC,qCAAA,EAA6BF,UAA7B,CAA/B;EACA,OAAO,QAUD;IAAA,IAVE;MACNG,kBADM;MAENC,cAFM;MAGNC,oBAHM;MAINC,YAJM;MAKNC,iBALM;MAMNC,yBANM;MAON;MACAC,aAAa,GAAG,EARV;MASNC,eAAe,GAAGC;IATZ,CAUF;IACJ,MAAM;MAAEC,GAAF;MAAOC,WAAP;MAAoBC,QAApB;MAA8BC;IAA9B,IAA6D,IAAAC,2BAAA,GAAnE;IACA,MAAM;MAAEC,aAAF;MAAiBC,IAAjB;MAAuBC;IAAvB,IAAmC,IAAAC,mCAAA,EAAoBR,GAApB,EAAyBC,WAAzB,aAAyBA,WAAzB,uBAAyBA,WAAW,CAAEQ,MAAtC,EAA8C;MACrFf,YADqF;MAErFC,iBAFqF;MAGrFe,iCAAiC,EAAE,CAAChB;IAHiD,CAA9C,CAAzC;;IAMA,IAAIQ,QAAQ,CAACS,sBAAb,EAAqC;MACnC,IAAAC,gBAAA,EAAU,MAAM;QACd,MAAMC,QAAQ,GAAGC,qBAAA,CAASC,gBAAT,CAA0B,QAA1B,EAAqCC,MAAD,IAAY;UAC/D,IAAIA,MAAM,KAAK,QAAf,EAAyBX,aAAa,CAACY,OAAd,CAAsBd,0BAAtB;QAC1B,CAFgB,CAAjB;;QAGA,OAAO,MAAMU,QAAQ,CAACK,MAAT,EAAb;MACD,CALD,EAKG,EALH;IAMD;;IAED,MAAMC,0BAAsF,GAAG,IAAAC,4BAAA,EAC7F,CAACC,OAAD,EAAUC,kBAAV,KAAiC;MAC/B,IAAI1B,yBAAJ,EAA+B,OAAOA,yBAAyB,CAACyB,OAAD,EAAUC,kBAAV,CAAhC;MAC/B,oBACE,6BAAC,qCAAD;QACE,OAAO,EAAED,OADX;QAEE,OAAO,EAAE,MAAM7B,cAAc,CAAC6B,OAAD,CAF/B;QAGE,WAAW,EAAE,MAAMC,kBAAkB;MAHvC,EADF;IAOD,CAV4F,CAA/F;;IAaA,IAAI,CAACrB,WAAL,EAAkB;MAChBsB,kBAAA,CAAOC,IAAP,CAAY,+DAAZ;;MACA,OAAO,IAAP;IACD;;IAED,oBACE,6BAAC,sBAAD,CAAwB,QAAxB,qBACE,6BAAC,sBAAD,CAAwB,MAAxB,OADF,eAEE,6BAAC,0BAAD;MAAmB,OAAO,EAAEjB,OAA5B;MAAqC,gBAAgB,eAAE,6BAAC,sBAAD,CAAwB,aAAxB;IAAvD,gBACE,6BAAC,sBAAD,CAAwB,IAAxB;MACE,eAAe,EAAET,eADnB;MAEE,yBAAyB,EAAEqB,0BAF7B;MAGE,aAAa,EAAEd,aAHjB;MAIE,UAAU,EAAEC,IAJd;MAKE,aAAa,EAAE;QACbmB,kBAAkB,eAAE,6BAAC,sBAAD,CAAwB,WAAxB,OADP;QAEbC,qBAAqB,EAAE;UAAEC,QAAQ,EAAE;QAAZ,CAFV;QAGb,GAAG9B;MAHU;IALjB,EADF,CAFF,eAeE,6BAAC,sBAAD,CAAwB,YAAxB;MACE;MACA,iBAAiB,MAFnB;MAGE,MAAM,EAAEN,kBAHV;MAIE,YAAY,EAAEE;IAJhB,EAfF,CADF;EAwBD,CArED;AAsED,CAxED;;eA0EeN,8B"}
1
+ {"version":3,"names":["createGroupChannelListFragment","initModule","GroupChannelListModule","createGroupChannelListModule","TypeSelectorHeader","onPressChannel","onPressCreateChannel","queryCreator","collectionCreator","renderGroupChannelPreview","flatListProps","menuItemCreator","PASS","sdk","currentUser","features","markAsDeliveredWithChannel","useSendbirdChat","groupChannels","next","loading","useGroupChannelList","userId","enableCollectionWithoutLocalCache","deliveryReceiptEnabled","useEffect","listener","AppState","addEventListener","status","forEach","remove","_renderGroupChannelPreview","useFreshCallback","channel","onLongPressChannel","Logger","warn","ListEmptyComponent","contentContainerStyle","flexGrow"],"sources":["createGroupChannelListFragment.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport { AppState } from 'react-native';\n\nimport { useGroupChannelList } from '@sendbird/uikit-chat-hooks';\nimport { Logger, PASS, useFreshCallback } from '@sendbird/uikit-utils';\n\nimport StatusComposition from '../components/StatusComposition';\nimport GroupChannelPreviewContainer from '../containers/GroupChannelPreviewContainer';\nimport createGroupChannelListModule from '../domain/groupChannelList/module/createGroupChannelListModule';\nimport type {\n GroupChannelListFragment,\n GroupChannelListModule,\n GroupChannelListProps,\n} from '../domain/groupChannelList/types';\nimport { useSendbirdChat } from '../hooks/useContext';\n\nconst createGroupChannelListFragment = (initModule?: Partial<GroupChannelListModule>): GroupChannelListFragment => {\n const GroupChannelListModule = createGroupChannelListModule(initModule);\n return ({\n TypeSelectorHeader,\n onPressChannel,\n onPressCreateChannel,\n queryCreator,\n collectionCreator,\n renderGroupChannelPreview,\n // skipTypeSelection = true,\n flatListProps = {},\n menuItemCreator = PASS,\n }) => {\n const { sdk, currentUser, features, markAsDeliveredWithChannel } = useSendbirdChat();\n const { groupChannels, next, loading } = useGroupChannelList(sdk, currentUser?.userId, {\n queryCreator,\n collectionCreator,\n enableCollectionWithoutLocalCache: !queryCreator,\n });\n\n if (features.deliveryReceiptEnabled) {\n useEffect(() => {\n const listener = AppState.addEventListener('change', (status) => {\n if (status === 'active') groupChannels.forEach(markAsDeliveredWithChannel);\n });\n return () => listener.remove();\n }, []);\n }\n\n const _renderGroupChannelPreview: GroupChannelListProps['List']['renderGroupChannelPreview'] = useFreshCallback(\n (channel, onLongPressChannel) => {\n if (renderGroupChannelPreview) return renderGroupChannelPreview(channel, onLongPressChannel);\n return (\n <GroupChannelPreviewContainer\n channel={channel}\n onPress={() => onPressChannel(channel)}\n onLongPress={() => onLongPressChannel()}\n />\n );\n },\n );\n\n if (!currentUser) {\n Logger.warn('Cannot render GroupChannelListFragment, please connect using `useConnection()` hook first');\n return null;\n }\n\n return (\n <GroupChannelListModule.Provider>\n <GroupChannelListModule.Header />\n <StatusComposition loading={loading} LoadingComponent={<GroupChannelListModule.StatusLoading />}>\n <GroupChannelListModule.List\n menuItemCreator={menuItemCreator}\n renderGroupChannelPreview={_renderGroupChannelPreview}\n groupChannels={groupChannels}\n onLoadNext={next}\n flatListProps={{\n ListEmptyComponent: <GroupChannelListModule.StatusEmpty />,\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }}\n />\n </StatusComposition>\n <GroupChannelListModule.TypeSelector\n // NOTE: not included in first iteration\n skipTypeSelection\n Header={TypeSelectorHeader}\n onSelectType={onPressCreateChannel}\n />\n </GroupChannelListModule.Provider>\n );\n };\n};\n\nexport default createGroupChannelListFragment;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;AAEA;;AACA;;AACA;;AAMA;;;;;;;;AAEA,MAAMA,8BAA8B,GAAIC,UAAD,IAA4E;EACjH,MAAMC,sBAAsB,GAAG,IAAAC,qCAAA,EAA6BF,UAA7B,CAA/B;EACA,OAAO,QAUD;IAAA,IAVE;MACNG,kBADM;MAENC,cAFM;MAGNC,oBAHM;MAINC,YAJM;MAKNC,iBALM;MAMNC,yBANM;MAON;MACAC,aAAa,GAAG,EARV;MASNC,eAAe,GAAGC;IATZ,CAUF;IACJ,MAAM;MAAEC,GAAF;MAAOC,WAAP;MAAoBC,QAApB;MAA8BC;IAA9B,IAA6D,IAAAC,2BAAA,GAAnE;IACA,MAAM;MAAEC,aAAF;MAAiBC,IAAjB;MAAuBC;IAAvB,IAAmC,IAAAC,mCAAA,EAAoBR,GAApB,EAAyBC,WAAzB,aAAyBA,WAAzB,uBAAyBA,WAAW,CAAEQ,MAAtC,EAA8C;MACrFf,YADqF;MAErFC,iBAFqF;MAGrFe,iCAAiC,EAAE,CAAChB;IAHiD,CAA9C,CAAzC;;IAMA,IAAIQ,QAAQ,CAACS,sBAAb,EAAqC;MACnC,IAAAC,gBAAA,EAAU,MAAM;QACd,MAAMC,QAAQ,GAAGC,qBAAA,CAASC,gBAAT,CAA0B,QAA1B,EAAqCC,MAAD,IAAY;UAC/D,IAAIA,MAAM,KAAK,QAAf,EAAyBX,aAAa,CAACY,OAAd,CAAsBd,0BAAtB;QAC1B,CAFgB,CAAjB;;QAGA,OAAO,MAAMU,QAAQ,CAACK,MAAT,EAAb;MACD,CALD,EAKG,EALH;IAMD;;IAED,MAAMC,0BAAsF,GAAG,IAAAC,4BAAA,EAC7F,CAACC,OAAD,EAAUC,kBAAV,KAAiC;MAC/B,IAAI1B,yBAAJ,EAA+B,OAAOA,yBAAyB,CAACyB,OAAD,EAAUC,kBAAV,CAAhC;MAC/B,oBACE,6BAAC,qCAAD;QACE,OAAO,EAAED,OADX;QAEE,OAAO,EAAE,MAAM7B,cAAc,CAAC6B,OAAD,CAF/B;QAGE,WAAW,EAAE,MAAMC,kBAAkB;MAHvC,EADF;IAOD,CAV4F,CAA/F;;IAaA,IAAI,CAACrB,WAAL,EAAkB;MAChBsB,kBAAA,CAAOC,IAAP,CAAY,2FAAZ;;MACA,OAAO,IAAP;IACD;;IAED,oBACE,6BAAC,sBAAD,CAAwB,QAAxB,qBACE,6BAAC,sBAAD,CAAwB,MAAxB,OADF,eAEE,6BAAC,0BAAD;MAAmB,OAAO,EAAEjB,OAA5B;MAAqC,gBAAgB,eAAE,6BAAC,sBAAD,CAAwB,aAAxB;IAAvD,gBACE,6BAAC,sBAAD,CAAwB,IAAxB;MACE,eAAe,EAAET,eADnB;MAEE,yBAAyB,EAAEqB,0BAF7B;MAGE,aAAa,EAAEd,aAHjB;MAIE,UAAU,EAAEC,IAJd;MAKE,aAAa,EAAE;QACbmB,kBAAkB,eAAE,6BAAC,sBAAD,CAAwB,WAAxB,OADP;QAEbC,qBAAqB,EAAE;UAAEC,QAAQ,EAAE;QAAZ,CAFV;QAGb,GAAG9B;MAHU;IALjB,EADF,CAFF,eAeE,6BAAC,sBAAD,CAAwB,YAAxB;MACE;MACA,iBAAiB,MAFnB;MAGE,MAAM,EAAEN,kBAHV;MAIE,YAAY,EAAEE;IAJhB,EAfF,CADF;EAwBD,CArED;AAsED,CAxED;;eA0EeN,8B"}
@@ -51,10 +51,10 @@ const createGroupChannelMembersFragment = initModule => {
51
51
  STRINGS
52
52
  } = (0, _useContext.useLocalization)();
53
53
  (0, _uikitChatHooks.useChannelHandler)(sdk, `${name}_${uniqId}`, {
54
- onUserEntered(channel) {
55
- if (channel.url === activeChannel.url) forceUpdate();
56
- },
57
-
54
+ // Note: Removed from v4
55
+ // onUserEntered(channel) {
56
+ // if (channel.url === activeChannel.url) forceUpdate();
57
+ // },
58
58
  onUserLeft(channel) {
59
59
  if (channel.url === activeChannel.url) forceUpdate();
60
60
  },
@@ -1 +1 @@
1
- {"version":3,"names":["noop","name","createGroupChannelMembersFragment","initModule","UserListModule","createUserListModule","channel","onPressHeaderLeft","onPressHeaderRight","renderUser","uniqId","useUniqId","forceUpdate","useForceUpdate","sdk","currentUser","useSendbirdChat","activeChannel","useActiveGroupChannel","STRINGS","useLocalization","useChannelHandler","onUserEntered","url","onUserLeft","onUserJoined","onUserUnmuted","onUserUnbanned","onUserBanned","onUserMuted","onChannelMemberCountChanged","channels","find","c","onChannelChanged","onChannelFrozen","onChannelUnfrozen","_renderUser","useCallback","user","selectedUsers","setSelectedUsers","isMuted","profileUrl","role","GROUP_CHANNEL_MEMBERS","USER_BAR_OPERATOR","nickname","LABELS","USER_NO_NAME","userId","USER_BAR_ME_POSTFIX","undefined","HEADER_TITLE","members"],"sources":["createGroupChannelMembersFragment.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\n\nimport { useActiveGroupChannel, useChannelHandler } from '@sendbird/uikit-chat-hooks';\nimport { Icon } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdMember } from '@sendbird/uikit-utils';\nimport { useForceUpdate, useUniqId } from '@sendbird/uikit-utils';\n\nimport UserActionBar from '../components/UserActionBar';\nimport type { GroupChannelMembersFragment } from '../domain/groupChannelUserList/types';\nimport createUserListModule from '../domain/userList/module/createUserListModule';\nimport type { UserListModule } from '../domain/userList/types';\nimport { useLocalization, useSendbirdChat } from '../hooks/useContext';\n\nconst noop = () => '';\nconst name = 'createGroupChannelMembersFragment';\nconst createGroupChannelMembersFragment = (\n initModule?: Partial<UserListModule<SendbirdMember>>,\n): GroupChannelMembersFragment<SendbirdMember> => {\n const UserListModule = createUserListModule<SendbirdMember>(initModule);\n\n return ({ channel, onPressHeaderLeft, onPressHeaderRight, renderUser }) => {\n const uniqId = useUniqId(name);\n const forceUpdate = useForceUpdate();\n const { sdk, currentUser } = useSendbirdChat();\n const { activeChannel } = useActiveGroupChannel(sdk, channel);\n\n const { STRINGS } = useLocalization();\n\n useChannelHandler(sdk, `${name}_${uniqId}`, {\n onUserEntered(channel) {\n if (channel.url === activeChannel.url) forceUpdate();\n },\n onUserLeft(channel) {\n if (channel.url === activeChannel.url) forceUpdate();\n },\n onUserJoined(channel) {\n if (channel.url === activeChannel.url) forceUpdate();\n },\n onUserUnmuted(channel) {\n if (channel.url === activeChannel.url) forceUpdate();\n },\n onUserUnbanned(channel) {\n if (channel.url === activeChannel.url) forceUpdate();\n },\n onUserBanned(channel) {\n if (channel.url === activeChannel.url) forceUpdate();\n },\n onUserMuted(channel) {\n if (channel.url === activeChannel.url) forceUpdate();\n },\n onChannelMemberCountChanged(channels) {\n if (channels.find((c) => c.url === channel.url)) forceUpdate();\n },\n onChannelChanged(channel) {\n if (channel.url === activeChannel.url) forceUpdate();\n },\n onChannelFrozen(channel) {\n if (channel.url === activeChannel.url) forceUpdate();\n },\n onChannelUnfrozen(channel) {\n if (channel.url === activeChannel.url) forceUpdate();\n },\n });\n\n const _renderUser: NonNullable<typeof renderUser> = useCallback(\n (user, selectedUsers, setSelectedUsers) => {\n if (renderUser) return renderUser(user, selectedUsers, setSelectedUsers);\n\n return (\n <UserActionBar\n muted={user.isMuted}\n uri={user.profileUrl}\n label={user.role === 'operator' ? STRINGS.GROUP_CHANNEL_MEMBERS.USER_BAR_OPERATOR : ''}\n name={\n (user.nickname || STRINGS.LABELS.USER_NO_NAME) +\n (user.userId === currentUser?.userId ? STRINGS.GROUP_CHANNEL_MEMBERS.USER_BAR_ME_POSTFIX : '')\n }\n disabled={user.userId === currentUser?.userId}\n // TODO: implement ban/mute actions, use channel.members with handlers instead member query\n onPressActionMenu={undefined}\n />\n );\n },\n [renderUser],\n );\n\n return (\n <UserListModule.Provider headerRight={noop} headerTitle={STRINGS.GROUP_CHANNEL_MEMBERS.HEADER_TITLE}>\n <UserListModule.Header\n shouldActivateHeaderRight={() => true}\n onPressHeaderLeft={onPressHeaderLeft}\n right={<Icon icon={'plus'} />}\n onPressHeaderRight={async () => onPressHeaderRight()}\n />\n\n <UserListModule.List\n users={activeChannel.members}\n renderUser={_renderUser}\n onLoadNext={async () => void 0}\n ListEmptyComponent={<UserListModule.StatusEmpty />}\n />\n </UserListModule.Provider>\n );\n };\n};\n\nexport default createGroupChannelMembersFragment;\n"],"mappings":"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"}
1
+ {"version":3,"names":["noop","name","createGroupChannelMembersFragment","initModule","UserListModule","createUserListModule","channel","onPressHeaderLeft","onPressHeaderRight","renderUser","uniqId","useUniqId","forceUpdate","useForceUpdate","sdk","currentUser","useSendbirdChat","activeChannel","useActiveGroupChannel","STRINGS","useLocalization","useChannelHandler","onUserLeft","url","onUserJoined","onUserUnmuted","onUserUnbanned","onUserBanned","onUserMuted","onChannelMemberCountChanged","channels","find","c","onChannelChanged","onChannelFrozen","onChannelUnfrozen","_renderUser","useCallback","user","selectedUsers","setSelectedUsers","isMuted","profileUrl","role","GROUP_CHANNEL_MEMBERS","USER_BAR_OPERATOR","nickname","LABELS","USER_NO_NAME","userId","USER_BAR_ME_POSTFIX","undefined","HEADER_TITLE","members"],"sources":["createGroupChannelMembersFragment.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\n\nimport { useActiveGroupChannel, useChannelHandler } from '@sendbird/uikit-chat-hooks';\nimport { Icon } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdMember } from '@sendbird/uikit-utils';\nimport { useForceUpdate, useUniqId } from '@sendbird/uikit-utils';\n\nimport UserActionBar from '../components/UserActionBar';\nimport type { GroupChannelMembersFragment } from '../domain/groupChannelUserList/types';\nimport createUserListModule from '../domain/userList/module/createUserListModule';\nimport type { UserListModule } from '../domain/userList/types';\nimport { useLocalization, useSendbirdChat } from '../hooks/useContext';\n\nconst noop = () => '';\nconst name = 'createGroupChannelMembersFragment';\nconst createGroupChannelMembersFragment = (\n initModule?: Partial<UserListModule<SendbirdMember>>,\n): GroupChannelMembersFragment<SendbirdMember> => {\n const UserListModule = createUserListModule<SendbirdMember>(initModule);\n\n return ({ channel, onPressHeaderLeft, onPressHeaderRight, renderUser }) => {\n const uniqId = useUniqId(name);\n const forceUpdate = useForceUpdate();\n const { sdk, currentUser } = useSendbirdChat();\n const { activeChannel } = useActiveGroupChannel(sdk, channel);\n\n const { STRINGS } = useLocalization();\n\n useChannelHandler(sdk, `${name}_${uniqId}`, {\n // Note: Removed from v4\n // onUserEntered(channel) {\n // if (channel.url === activeChannel.url) forceUpdate();\n // },\n onUserLeft(channel) {\n if (channel.url === activeChannel.url) forceUpdate();\n },\n onUserJoined(channel) {\n if (channel.url === activeChannel.url) forceUpdate();\n },\n onUserUnmuted(channel) {\n if (channel.url === activeChannel.url) forceUpdate();\n },\n onUserUnbanned(channel) {\n if (channel.url === activeChannel.url) forceUpdate();\n },\n onUserBanned(channel) {\n if (channel.url === activeChannel.url) forceUpdate();\n },\n onUserMuted(channel) {\n if (channel.url === activeChannel.url) forceUpdate();\n },\n onChannelMemberCountChanged(channels) {\n if (channels.find((c) => c.url === channel.url)) forceUpdate();\n },\n onChannelChanged(channel) {\n if (channel.url === activeChannel.url) forceUpdate();\n },\n onChannelFrozen(channel) {\n if (channel.url === activeChannel.url) forceUpdate();\n },\n onChannelUnfrozen(channel) {\n if (channel.url === activeChannel.url) forceUpdate();\n },\n });\n\n const _renderUser: NonNullable<typeof renderUser> = useCallback(\n (user, selectedUsers, setSelectedUsers) => {\n if (renderUser) return renderUser(user, selectedUsers, setSelectedUsers);\n\n return (\n <UserActionBar\n muted={user.isMuted}\n uri={user.profileUrl}\n label={user.role === 'operator' ? STRINGS.GROUP_CHANNEL_MEMBERS.USER_BAR_OPERATOR : ''}\n name={\n (user.nickname || STRINGS.LABELS.USER_NO_NAME) +\n (user.userId === currentUser?.userId ? STRINGS.GROUP_CHANNEL_MEMBERS.USER_BAR_ME_POSTFIX : '')\n }\n disabled={user.userId === currentUser?.userId}\n // TODO: implement ban/mute actions, use channel.members with handlers instead member query\n onPressActionMenu={undefined}\n />\n );\n },\n [renderUser],\n );\n\n return (\n <UserListModule.Provider headerRight={noop} headerTitle={STRINGS.GROUP_CHANNEL_MEMBERS.HEADER_TITLE}>\n <UserListModule.Header\n shouldActivateHeaderRight={() => true}\n onPressHeaderLeft={onPressHeaderLeft}\n right={<Icon icon={'plus'} />}\n onPressHeaderRight={async () => onPressHeaderRight()}\n />\n\n <UserListModule.List\n users={activeChannel.members}\n renderUser={_renderUser}\n onLoadNext={async () => void 0}\n ListEmptyComponent={<UserListModule.StatusEmpty />}\n />\n </UserListModule.Provider>\n );\n };\n};\n\nexport default createGroupChannelMembersFragment;\n"],"mappings":"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"}
@@ -15,7 +15,7 @@ var _usePushTokenRegistration = _interopRequireDefault(require("./usePushTokenRe
15
15
 
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
17
 
18
- const cacheStrictCodes = [400300, 400301, 400302, 400310];
18
+ const cacheRestrictCodes = [400300, 400301, 400302, 400310];
19
19
 
20
20
  const useConnection = () => {
21
21
  const {
@@ -28,51 +28,53 @@ const useConnection = () => {
28
28
  unregisterPushTokenForCurrentUser
29
29
  } = (0, _usePushTokenRegistration.default)();
30
30
  const connect = (0, _react.useCallback)(async (userId, opts) => {
31
- return new Promise((resolve, reject) => {
32
- const callback = async (user, error) => {
33
- if (error && sdk.isCacheEnabled && cacheStrictCodes.some(code => error.code === code)) {
34
- _uikitUtils.Logger.warn('[useConnection]', 'connect failure', error.message, error.code);
31
+ try {
32
+ _uikitUtils.Logger.debug('[useConnection]', 'connect start:', userId);
35
33
 
36
- _uikitUtils.Logger.warn('[useConnection]', 'clear cached-data');
34
+ let user = await sdk.connect(userId, opts === null || opts === void 0 ? void 0 : opts.accessToken);
37
35
 
38
- await sdk.clearCachedData().catch(e => _uikitUtils.Logger.warn('[useConnection]', 'clear cached-data failure', e));
39
- return reject(error);
40
- }
36
+ if (opts !== null && opts !== void 0 && opts.nickname) {
37
+ _uikitUtils.Logger.debug('[useConnection]', 'nickname-sync start:', opts.nickname);
41
38
 
42
- if (user) {
43
- let _user = user;
39
+ await sdk.updateCurrentUserInfo({
40
+ nickname: opts.nickname
41
+ }).then(updatedUser => user = updatedUser).catch(e => _uikitUtils.Logger.warn('[useConnection]', 'nickname-sync failure', e));
42
+ }
44
43
 
45
- if (opts !== null && opts !== void 0 && opts.nickname) {
46
- _uikitUtils.Logger.debug('[useConnection]', 'nickname-sync start:', opts.nickname);
44
+ if (features.autoPushTokenRegistrationEnabled) {
45
+ _uikitUtils.Logger.debug('[useConnection]', 'autoPushTokenRegistration enabled, register for current user');
47
46
 
48
- await sdk.updateCurrentUserInfo(opts.nickname, sdk.currentUser.profileUrl).then(updatedUser => _user = updatedUser).catch(e => _uikitUtils.Logger.warn('[useConnection]', 'nickname-sync failure', e));
49
- }
47
+ await registerPushTokenForCurrentUser().catch(e => {
48
+ _uikitUtils.Logger.warn('[useConnection]', 'autoPushToken Registration failure', e);
49
+ });
50
+ }
50
51
 
51
- if (features.autoPushTokenRegistrationEnabled) {
52
- _uikitUtils.Logger.debug('[useConnection]', 'autoPushTokenRegistration enabled, register for current user');
52
+ _uikitUtils.Logger.debug('[useConnection]', 'connected! (online)');
53
53
 
54
- await registerPushTokenForCurrentUser().catch(e => {
55
- _uikitUtils.Logger.warn('[useConnection]', 'autoPushToken Registration failure', e);
56
- });
57
- }
54
+ setCurrentUser(user);
55
+ return user;
56
+ } catch (e) {
57
+ const error = e;
58
58
 
59
- _uikitUtils.Logger.debug('[useConnection]', 'connected!');
59
+ if (sdk.isCacheEnabled) {
60
+ if (cacheRestrictCodes.some(code => error.code === code)) {
61
+ _uikitUtils.Logger.warn('[useConnection]', 'offline connect restricted', error.message, error.code);
60
62
 
61
- setCurrentUser(_user);
62
- return resolve(_user);
63
- }
63
+ _uikitUtils.Logger.warn('[useConnection]', 'clear cached-data');
64
64
 
65
- if (error) {
66
- _uikitUtils.Logger.warn('[useConnection]', 'connect failure', error.message, error.code);
65
+ await sdk.clearCachedData().catch(e => _uikitUtils.Logger.warn('[useConnection]', 'clear cached-data failure', e));
66
+ } else if (sdk.currentUser) {
67
+ _uikitUtils.Logger.debug('[useConnection]', 'connected! (offline)');
67
68
 
68
- return reject(error);
69
+ setCurrentUser(sdk.currentUser);
70
+ return sdk.currentUser;
69
71
  }
70
- };
72
+ }
71
73
 
72
- _uikitUtils.Logger.debug('[useConnection]', 'connect start:', userId);
74
+ _uikitUtils.Logger.warn('[useConnection]', 'connect failure', error.message, error.code);
73
75
 
74
- if (opts !== null && opts !== void 0 && opts.accessToken) sdk.connect(userId, opts.accessToken, callback);else sdk.connect(userId, callback);
75
- });
76
+ throw error;
77
+ }
76
78
  }, [sdk, registerPushTokenForCurrentUser, features.autoPushTokenRegistrationEnabled]);
77
79
  const disconnect = (0, _react.useCallback)(async () => {
78
80
  _uikitUtils.Logger.debug('[useConnection]', 'disconnect start');
@@ -85,8 +87,7 @@ const useConnection = () => {
85
87
  });
86
88
  }
87
89
 
88
- await sdk.disconnect();
89
- setCurrentUser(undefined);
90
+ await sdk.disconnect().then(() => setCurrentUser(undefined));
90
91
 
91
92
  _uikitUtils.Logger.debug('[useConnection]', 'disconnected!');
92
93
  }, [sdk, unregisterPushTokenForCurrentUser, features.autoPushTokenRegistrationEnabled]);