@sendbird/uikit-react-native 3.7.3 → 3.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/lib/commonjs/components/ChannelInput/SendInput.js +2 -1
  2. package/lib/commonjs/components/ChannelInput/SendInput.js.map +1 -1
  3. package/lib/commonjs/components/ChannelInput/VoiceMessageInput.js +33 -23
  4. package/lib/commonjs/components/ChannelInput/VoiceMessageInput.js.map +1 -1
  5. package/lib/commonjs/components/ChannelInput/index.js +11 -5
  6. package/lib/commonjs/components/ChannelInput/index.js.map +1 -1
  7. package/lib/commonjs/components/ChannelMessageList/index.js +6 -1
  8. package/lib/commonjs/components/ChannelMessageList/index.js.map +1 -1
  9. package/lib/commonjs/components/ChannelThreadMessageList/index.js +6 -1
  10. package/lib/commonjs/components/ChannelThreadMessageList/index.js.map +1 -1
  11. package/lib/commonjs/components/GroupChannelMessageRenderer/index.js +1 -1
  12. package/lib/commonjs/components/GroupChannelMessageRenderer/index.js.map +1 -1
  13. package/lib/commonjs/components/ReactionAddons/BottomSheetReactionAddon.js +7 -3
  14. package/lib/commonjs/components/ReactionAddons/BottomSheetReactionAddon.js.map +1 -1
  15. package/lib/commonjs/components/ReactionBottomSheets/ReactionListBottomSheet.js +7 -3
  16. package/lib/commonjs/components/ReactionBottomSheets/ReactionListBottomSheet.js.map +1 -1
  17. package/lib/commonjs/components/ThreadParentMessageRenderer/index.js +1 -1
  18. package/lib/commonjs/components/ThreadParentMessageRenderer/index.js.map +1 -1
  19. package/lib/commonjs/containers/SendbirdUIKitContainer.js +0 -1
  20. package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
  21. package/lib/commonjs/contexts/PlatformServiceCtx.js +2 -1
  22. package/lib/commonjs/contexts/PlatformServiceCtx.js.map +1 -1
  23. package/lib/commonjs/contexts/SBUHandlersCtx.js.map +1 -1
  24. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +2 -2
  25. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  26. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +8 -4
  27. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  28. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadMessageList.js +1 -1
  29. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadMessageList.js.map +1 -1
  30. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js +8 -3
  31. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js.map +1 -1
  32. package/lib/commonjs/fragments/createGroupChannelFragment.js +3 -2
  33. package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
  34. package/lib/commonjs/fragments/createGroupChannelThreadFragment.js +3 -2
  35. package/lib/commonjs/fragments/createGroupChannelThreadFragment.js.map +1 -1
  36. package/lib/commonjs/hooks/useConnection.js +2 -2
  37. package/lib/commonjs/hooks/useConnection.js.map +1 -1
  38. package/lib/commonjs/hooks/usePushTokenRegistration.js +22 -4
  39. package/lib/commonjs/hooks/usePushTokenRegistration.js.map +1 -1
  40. package/lib/commonjs/platform/createPlayerService.expo.js +8 -2
  41. package/lib/commonjs/platform/createPlayerService.expo.js.map +1 -1
  42. package/lib/commonjs/platform/createPlayerService.native.js +9 -3
  43. package/lib/commonjs/platform/createPlayerService.native.js.map +1 -1
  44. package/lib/commonjs/platform/createRecorderService.native.js +8 -2
  45. package/lib/commonjs/platform/createRecorderService.native.js.map +1 -1
  46. package/lib/commonjs/version.js +1 -1
  47. package/lib/commonjs/version.js.map +1 -1
  48. package/lib/module/components/ChannelInput/SendInput.js +2 -1
  49. package/lib/module/components/ChannelInput/SendInput.js.map +1 -1
  50. package/lib/module/components/ChannelInput/VoiceMessageInput.js +34 -24
  51. package/lib/module/components/ChannelInput/VoiceMessageInput.js.map +1 -1
  52. package/lib/module/components/ChannelInput/index.js +12 -6
  53. package/lib/module/components/ChannelInput/index.js.map +1 -1
  54. package/lib/module/components/ChannelMessageList/index.js +6 -1
  55. package/lib/module/components/ChannelMessageList/index.js.map +1 -1
  56. package/lib/module/components/ChannelThreadMessageList/index.js +6 -1
  57. package/lib/module/components/ChannelThreadMessageList/index.js.map +1 -1
  58. package/lib/module/components/GroupChannelMessageRenderer/index.js +1 -1
  59. package/lib/module/components/GroupChannelMessageRenderer/index.js.map +1 -1
  60. package/lib/module/components/ReactionAddons/BottomSheetReactionAddon.js +8 -4
  61. package/lib/module/components/ReactionAddons/BottomSheetReactionAddon.js.map +1 -1
  62. package/lib/module/components/ReactionBottomSheets/ReactionListBottomSheet.js +7 -3
  63. package/lib/module/components/ReactionBottomSheets/ReactionListBottomSheet.js.map +1 -1
  64. package/lib/module/components/ThreadParentMessageRenderer/index.js +1 -1
  65. package/lib/module/components/ThreadParentMessageRenderer/index.js.map +1 -1
  66. package/lib/module/containers/SendbirdUIKitContainer.js +0 -1
  67. package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
  68. package/lib/module/contexts/PlatformServiceCtx.js +2 -1
  69. package/lib/module/contexts/PlatformServiceCtx.js.map +1 -1
  70. package/lib/module/contexts/SBUHandlersCtx.js.map +1 -1
  71. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +2 -2
  72. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  73. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +8 -4
  74. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  75. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadMessageList.js +1 -1
  76. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadMessageList.js.map +1 -1
  77. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js +8 -3
  78. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js.map +1 -1
  79. package/lib/module/fragments/createGroupChannelFragment.js +3 -2
  80. package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
  81. package/lib/module/fragments/createGroupChannelThreadFragment.js +3 -2
  82. package/lib/module/fragments/createGroupChannelThreadFragment.js.map +1 -1
  83. package/lib/module/hooks/useConnection.js +2 -2
  84. package/lib/module/hooks/useConnection.js.map +1 -1
  85. package/lib/module/hooks/usePushTokenRegistration.js +22 -4
  86. package/lib/module/hooks/usePushTokenRegistration.js.map +1 -1
  87. package/lib/module/platform/createPlayerService.expo.js +9 -3
  88. package/lib/module/platform/createPlayerService.expo.js.map +1 -1
  89. package/lib/module/platform/createPlayerService.native.js +10 -4
  90. package/lib/module/platform/createPlayerService.native.js.map +1 -1
  91. package/lib/module/platform/createRecorderService.native.js +9 -3
  92. package/lib/module/platform/createRecorderService.native.js.map +1 -1
  93. package/lib/module/version.js +1 -1
  94. package/lib/module/version.js.map +1 -1
  95. package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +1 -1
  96. package/lib/typescript/src/contexts/SBUHandlersCtx.d.ts +1 -1
  97. package/lib/typescript/src/version.d.ts +1 -1
  98. package/package.json +5 -5
  99. package/src/components/ChannelInput/SendInput.tsx +2 -1
  100. package/src/components/ChannelInput/VoiceMessageInput.tsx +40 -24
  101. package/src/components/ChannelInput/index.tsx +16 -6
  102. package/src/components/ChannelMessageList/index.tsx +5 -1
  103. package/src/components/ChannelThreadMessageList/index.tsx +5 -1
  104. package/src/components/GroupChannelMessageRenderer/index.tsx +1 -1
  105. package/src/components/ReactionAddons/BottomSheetReactionAddon.tsx +10 -5
  106. package/src/components/ReactionBottomSheets/ReactionListBottomSheet.tsx +7 -4
  107. package/src/components/ThreadParentMessageRenderer/index.tsx +1 -1
  108. package/src/containers/SendbirdUIKitContainer.tsx +0 -1
  109. package/src/contexts/PlatformServiceCtx.tsx +2 -1
  110. package/src/contexts/SBUHandlersCtx.tsx +1 -1
  111. package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +2 -2
  112. package/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.tsx +8 -4
  113. package/src/domain/groupChannelThread/component/GroupChannelThreadMessageList.tsx +1 -1
  114. package/src/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.tsx +7 -3
  115. package/src/fragments/createGroupChannelFragment.tsx +3 -2
  116. package/src/fragments/createGroupChannelThreadFragment.tsx +3 -2
  117. package/src/hooks/useConnection.ts +8 -2
  118. package/src/hooks/usePushTokenRegistration.ts +22 -4
  119. package/src/platform/createPlayerService.expo.tsx +9 -3
  120. package/src/platform/createPlayerService.native.tsx +10 -4
  121. package/src/platform/createRecorderService.native.tsx +9 -3
  122. package/src/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["React","useContext","View","PushTriggerOption","Icon","MenuBar","Switch","useUIKitTheme","Logger","conditionChaining","useIIFE","useLocalization","useSendbirdChat","GroupChannelSettingsContexts","WARN_onPressMenuNotification","WARN_onPressMenuSearchInChannel","GroupChannelSettingsMenu","_ref","onPressMenuModeration","onPressMenuMembers","onPressMenuSearchInChannel","onPressMenuLeaveChannel","onPressMenuNotification","menuItemsCreator","menu","sdk","sbOptions","channel","Fragment","STRINGS","colors","__DEV__","uikit","groupChannel","enableMention","warn","uikitWithAppInfo","setting","enableMessageSearch","toggleNotification","myPushTriggerOption","setMyPushTriggerOption","DEFAULT","OFF","onPressNotificationMenu","actionLabelNotificationMenu","actionItemNotificationMenu","getNotificationsLabel","ALL","GROUP_CHANNEL_SETTINGS","MENU_NOTIFICATION_LABEL_ON","MENU_NOTIFICATION_LABEL_OFF","MENTION_ONLY","MENU_NOTIFICATION_LABEL_MENTION_ONLY","createElement","icon","color","onBackground01","value","onChangeValue","defaultMenuItems","visible","myRole","name","MENU_MODERATION","onPress","actionItem","MENU_NOTIFICATION","actionLabel","MENU_MEMBERS","String","memberCount","isEphemeral","push","MENU_SEARCH","iconColor","error","MENU_LEAVE_CHANNEL","leave","then","clearCachedMessages","url","catch","menuItems","map","key","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';\nimport { Logger, conditionChaining, useIIFE } from '@sendbird/uikit-utils';\n\nimport { useLocalization, useSendbirdChat } from '../../../hooks/useContext';\nimport { GroupChannelSettingsContexts } from '../module/moduleContext';\nimport type { GroupChannelSettingsProps } from '../types';\n\nlet WARN_onPressMenuNotification = false;\nlet WARN_onPressMenuSearchInChannel = false;\n\nconst GroupChannelSettingsMenu = ({\n onPressMenuModeration,\n onPressMenuMembers,\n onPressMenuSearchInChannel,\n onPressMenuLeaveChannel,\n onPressMenuNotification,\n menuItemsCreator = (menu) => menu,\n}: GroupChannelSettingsProps['Menu']) => {\n const { sdk, sbOptions } = useSendbirdChat();\n const { channel } = useContext(GroupChannelSettingsContexts.Fragment);\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n\n if (\n __DEV__ &&\n !WARN_onPressMenuNotification &&\n !onPressMenuNotification &&\n sbOptions.uikit.groupChannel.channel.enableMention\n ) {\n Logger.warn('If you are using mention, make sure to pass the `onPressMenuNotification` prop');\n WARN_onPressMenuNotification = true;\n }\n\n if (\n __DEV__ &&\n !WARN_onPressMenuSearchInChannel &&\n !onPressMenuSearchInChannel &&\n sbOptions.uikitWithAppInfo.groupChannel.setting.enableMessageSearch\n ) {\n Logger.warn('If you are using message search, make sure to pass the `onPressMenuSearchInChannel` prop');\n WARN_onPressMenuSearchInChannel = true;\n }\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 { onPressNotificationMenu, actionLabelNotificationMenu, actionItemNotificationMenu } = useIIFE(() => {\n const getNotificationsLabel = () => {\n switch (channel.myPushTriggerOption) {\n case PushTriggerOption.ALL:\n case PushTriggerOption.DEFAULT:\n return STRINGS.GROUP_CHANNEL_SETTINGS.MENU_NOTIFICATION_LABEL_ON;\n case PushTriggerOption.OFF:\n return STRINGS.GROUP_CHANNEL_SETTINGS.MENU_NOTIFICATION_LABEL_OFF;\n case PushTriggerOption.MENTION_ONLY:\n return STRINGS.GROUP_CHANNEL_SETTINGS.MENU_NOTIFICATION_LABEL_MENTION_ONLY;\n }\n };\n\n return {\n actionLabelNotificationMenu: getNotificationsLabel(),\n actionItemNotificationMenu: conditionChaining(\n [sbOptions.uikit.groupChannel.channel.enableMention],\n [\n <Icon icon={'chevron-right'} color={colors.onBackground01} />,\n <Switch value={channel.myPushTriggerOption !== 'off'} onChangeValue={toggleNotification} />,\n ],\n ),\n onPressNotificationMenu: () => {\n if (sbOptions.uikit.groupChannel.channel.enableMention) onPressMenuNotification?.();\n else toggleNotification();\n },\n };\n });\n\n const defaultMenuItems: MenuBarProps[] = [\n {\n icon: 'moderation',\n visible: channel.myRole === 'operator',\n name: STRINGS.GROUP_CHANNEL_SETTINGS.MENU_MODERATION,\n onPress: () => onPressMenuModeration(),\n actionItem: <Icon icon={'chevron-right'} color={colors.onBackground01} />,\n },\n {\n icon: 'notifications',\n name: STRINGS.GROUP_CHANNEL_SETTINGS.MENU_NOTIFICATION,\n onPress: onPressNotificationMenu,\n actionLabel: actionLabelNotificationMenu,\n actionItem: actionItemNotificationMenu,\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\n if (sbOptions.uikitWithAppInfo.groupChannel.setting.enableMessageSearch && !channel.isEphemeral) {\n defaultMenuItems.push({\n icon: 'search',\n name: STRINGS.GROUP_CHANNEL_SETTINGS.MENU_SEARCH,\n onPress: () => onPressMenuSearchInChannel?.(),\n });\n }\n\n defaultMenuItems.push({\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 const menuItems = menuItemsCreator(defaultMenuItems);\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 visible={menu.visible}\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":"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"}
1
+ {"version":3,"names":["React","useContext","View","PushTriggerOption","Icon","MenuBar","Switch","useUIKitTheme","Logger","conditionChaining","useIIFE","useLocalization","useSendbirdChat","GroupChannelSettingsContexts","WARN_onPressMenuNotification","WARN_onPressMenuSearchInChannel","GroupChannelSettingsMenu","_ref","onPressMenuModeration","onPressMenuMembers","onPressMenuSearchInChannel","onPressMenuLeaveChannel","onPressMenuNotification","menuItemsCreator","menu","sdk","sbOptions","channel","Fragment","STRINGS","colors","__DEV__","uikit","groupChannel","enableMention","warn","uikitWithAppInfo","setting","enableMessageSearch","toggleNotification","myPushTriggerOption","setMyPushTriggerOption","DEFAULT","OFF","error","onPressNotificationMenu","actionLabelNotificationMenu","actionItemNotificationMenu","getNotificationsLabel","ALL","GROUP_CHANNEL_SETTINGS","MENU_NOTIFICATION_LABEL_ON","MENU_NOTIFICATION_LABEL_OFF","MENTION_ONLY","MENU_NOTIFICATION_LABEL_MENTION_ONLY","createElement","icon","color","onBackground01","value","onChangeValue","defaultMenuItems","visible","myRole","name","MENU_MODERATION","onPress","actionItem","MENU_NOTIFICATION","actionLabel","MENU_MEMBERS","String","memberCount","isEphemeral","push","MENU_SEARCH","iconColor","MENU_LEAVE_CHANNEL","leave","then","clearCachedMessages","url","catch","menuItems","map","key","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';\nimport { Logger, conditionChaining, useIIFE } from '@sendbird/uikit-utils';\n\nimport { useLocalization, useSendbirdChat } from '../../../hooks/useContext';\nimport { GroupChannelSettingsContexts } from '../module/moduleContext';\nimport type { GroupChannelSettingsProps } from '../types';\n\nlet WARN_onPressMenuNotification = false;\nlet WARN_onPressMenuSearchInChannel = false;\n\nconst GroupChannelSettingsMenu = ({\n onPressMenuModeration,\n onPressMenuMembers,\n onPressMenuSearchInChannel,\n onPressMenuLeaveChannel,\n onPressMenuNotification,\n menuItemsCreator = (menu) => menu,\n}: GroupChannelSettingsProps['Menu']) => {\n const { sdk, sbOptions } = useSendbirdChat();\n const { channel } = useContext(GroupChannelSettingsContexts.Fragment);\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n\n if (\n __DEV__ &&\n !WARN_onPressMenuNotification &&\n !onPressMenuNotification &&\n sbOptions.uikit.groupChannel.channel.enableMention\n ) {\n Logger.warn('If you are using mention, make sure to pass the `onPressMenuNotification` prop');\n WARN_onPressMenuNotification = true;\n }\n\n if (\n __DEV__ &&\n !WARN_onPressMenuSearchInChannel &&\n !onPressMenuSearchInChannel &&\n sbOptions.uikitWithAppInfo.groupChannel.setting.enableMessageSearch\n ) {\n Logger.warn('If you are using message search, make sure to pass the `onPressMenuSearchInChannel` prop');\n WARN_onPressMenuSearchInChannel = true;\n }\n\n const toggleNotification = async () => {\n try {\n if (channel.myPushTriggerOption === 'off') {\n await channel.setMyPushTriggerOption(PushTriggerOption.DEFAULT);\n } else {\n await channel.setMyPushTriggerOption(PushTriggerOption.OFF);\n }\n } catch (error) {\n Logger.warn('Failed to toggle notification', error);\n }\n };\n\n const { onPressNotificationMenu, actionLabelNotificationMenu, actionItemNotificationMenu } = useIIFE(() => {\n const getNotificationsLabel = () => {\n switch (channel.myPushTriggerOption) {\n case PushTriggerOption.ALL:\n case PushTriggerOption.DEFAULT:\n return STRINGS.GROUP_CHANNEL_SETTINGS.MENU_NOTIFICATION_LABEL_ON;\n case PushTriggerOption.OFF:\n return STRINGS.GROUP_CHANNEL_SETTINGS.MENU_NOTIFICATION_LABEL_OFF;\n case PushTriggerOption.MENTION_ONLY:\n return STRINGS.GROUP_CHANNEL_SETTINGS.MENU_NOTIFICATION_LABEL_MENTION_ONLY;\n }\n };\n\n return {\n actionLabelNotificationMenu: getNotificationsLabel(),\n actionItemNotificationMenu: conditionChaining(\n [sbOptions.uikit.groupChannel.channel.enableMention],\n [\n <Icon icon={'chevron-right'} color={colors.onBackground01} />,\n <Switch value={channel.myPushTriggerOption !== 'off'} onChangeValue={toggleNotification} />,\n ],\n ),\n onPressNotificationMenu: () => {\n if (sbOptions.uikit.groupChannel.channel.enableMention) onPressMenuNotification?.();\n else toggleNotification();\n },\n };\n });\n\n const defaultMenuItems: MenuBarProps[] = [\n {\n icon: 'moderation',\n visible: channel.myRole === 'operator',\n name: STRINGS.GROUP_CHANNEL_SETTINGS.MENU_MODERATION,\n onPress: () => onPressMenuModeration(),\n actionItem: <Icon icon={'chevron-right'} color={colors.onBackground01} />,\n },\n {\n icon: 'notifications',\n name: STRINGS.GROUP_CHANNEL_SETTINGS.MENU_NOTIFICATION,\n onPress: onPressNotificationMenu,\n actionLabel: actionLabelNotificationMenu,\n actionItem: actionItemNotificationMenu,\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\n if (sbOptions.uikitWithAppInfo.groupChannel.setting.enableMessageSearch && !channel.isEphemeral) {\n defaultMenuItems.push({\n icon: 'search',\n name: STRINGS.GROUP_CHANNEL_SETTINGS.MENU_SEARCH,\n onPress: () => onPressMenuSearchInChannel?.(),\n });\n }\n\n defaultMenuItems.push({\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 const menuItems = menuItemsCreator(defaultMenuItems);\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 visible={menu.visible}\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":"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"}
@@ -36,7 +36,7 @@ const GroupChannelThreadMessageList = props => {
36
36
  let animated = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
37
37
  if (props.hasNext()) {
38
38
  props.onScrolledAwayFromBottom(false);
39
- await props.onResetMessageList();
39
+ await props.onResetMessageList().catch(_ => {});
40
40
  props.onScrolledAwayFromBottom(false);
41
41
  lazyScrollToBottom({
42
42
  animated
@@ -1 +1 @@
1
- {"version":3,"names":["React","useContext","useEffect","useLayoutEffect","useRef","useChannelHandler","isDifferentChannel","useFreshCallback","useUniqHandlerId","ChannelThreadMessageList","useSendbirdChat","GroupChannelThreadContexts","GroupChannelThreadMessageList","props","sdk","setMessageToEdit","Fragment","subscribe","PubSub","flatListRef","lazyScrollToBottom","lazyScrollToIndex","MessageList","id","ignorePropReached","_onTopReached","current","onTopReached","_onBottomReached","onBottomReached","scrollToBottom","animated","arguments","length","undefined","hasNext","onScrolledAwayFromBottom","onResetMessageList","startingPoint","foundMessageIndex","messages","findIndex","it","createdAt","isIncludedInList","timeout","index","setTimeout","onReactionUpdated","channel","event","recentMessage","isRecentMessage","messageId","scrollReachedBottomAndCanScroll","scrolledAwayFromBottom","_ref","type","createElement","_extends","ref","onEditMessage","onPressNewMessagesButton","onPressScrollToBottomButton","renderNewMessagesButton","renderScrollToBottomButton","memo"],"sources":["GroupChannelThreadMessageList.tsx"],"sourcesContent":["import React, { useContext, useEffect, useLayoutEffect, useRef } from 'react';\n\nimport { useChannelHandler } from '@sendbird/uikit-chat-hooks';\nimport { isDifferentChannel, useFreshCallback, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport ChannelThreadMessageList from '../../../components/ChannelThreadMessageList';\nimport { useSendbirdChat } from '../../../hooks/useContext';\nimport { GroupChannelThreadContexts } from '../module/moduleContext';\nimport type { GroupChannelThreadProps } from '../types';\n\nconst GroupChannelThreadMessageList = (props: GroupChannelThreadProps['MessageList']) => {\n const { sdk } = useSendbirdChat();\n const { setMessageToEdit } = useContext(GroupChannelThreadContexts.Fragment);\n const { subscribe } = useContext(GroupChannelThreadContexts.PubSub);\n const { flatListRef, lazyScrollToBottom, lazyScrollToIndex } = useContext(GroupChannelThreadContexts.MessageList);\n\n const id = useUniqHandlerId('GroupChannelThreadMessageList');\n const ignorePropReached = useRef(false);\n\n const _onTopReached = () => {\n if (!ignorePropReached.current) {\n props.onTopReached();\n }\n };\n\n const _onBottomReached = () => {\n if (!ignorePropReached.current) {\n props.onBottomReached();\n }\n };\n\n const scrollToBottom = useFreshCallback(async (animated = false) => {\n if (props.hasNext()) {\n props.onScrolledAwayFromBottom(false);\n\n await props.onResetMessageList();\n props.onScrolledAwayFromBottom(false);\n lazyScrollToBottom({ animated });\n } else {\n lazyScrollToBottom({ animated });\n }\n });\n\n useLayoutEffect(() => {\n if (props.startingPoint) {\n const foundMessageIndex = props.messages.findIndex((it) => it.createdAt === props.startingPoint);\n const isIncludedInList = foundMessageIndex > -1;\n if (isIncludedInList) {\n ignorePropReached.current = true;\n const timeout = 300;\n lazyScrollToIndex({ index: foundMessageIndex, animated: true, timeout: timeout });\n setTimeout(() => {\n ignorePropReached.current = false;\n }, timeout + 50);\n }\n }\n }, [props.startingPoint]);\n\n useChannelHandler(sdk, id, {\n onReactionUpdated(channel, event) {\n if (isDifferentChannel(channel, props.channel)) return;\n const recentMessage = props.messages[0];\n const isRecentMessage = recentMessage && recentMessage.messageId === event.messageId;\n const scrollReachedBottomAndCanScroll = !props.scrolledAwayFromBottom && !props.hasNext();\n if (isRecentMessage && scrollReachedBottomAndCanScroll) {\n lazyScrollToBottom({ animated: true, timeout: 250 });\n }\n },\n });\n\n useEffect(() => {\n return subscribe(({ type }) => {\n switch (type) {\n case 'TYPING_BUBBLE_RENDERED':\n case 'MESSAGES_RECEIVED': {\n if (!props.scrolledAwayFromBottom) {\n scrollToBottom(true);\n }\n break;\n }\n case 'MESSAGE_SENT_SUCCESS':\n case 'MESSAGE_SENT_PENDING': {\n scrollToBottom(false);\n break;\n }\n }\n });\n }, [props.scrolledAwayFromBottom]);\n\n return (\n <ChannelThreadMessageList\n {...props}\n ref={flatListRef}\n onTopReached={_onTopReached}\n onBottomReached={_onBottomReached}\n onEditMessage={setMessageToEdit}\n onPressNewMessagesButton={scrollToBottom}\n onPressScrollToBottomButton={scrollToBottom}\n renderNewMessagesButton={null}\n renderScrollToBottomButton={null}\n />\n );\n};\n\nexport default React.memo(GroupChannelThreadMessageList);\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useContext","useEffect","useLayoutEffect","useRef","useChannelHandler","isDifferentChannel","useFreshCallback","useUniqHandlerId","ChannelThreadMessageList","useSendbirdChat","GroupChannelThreadContexts","GroupChannelThreadMessageList","props","sdk","setMessageToEdit","Fragment","subscribe","PubSub","flatListRef","lazyScrollToBottom","lazyScrollToIndex","MessageList","id","ignorePropReached","_onTopReached","current","onTopReached","_onBottomReached","onBottomReached","scrollToBottom","animated","arguments","length","undefined","hasNext","onScrolledAwayFromBottom","onResetMessageList","catch","_","startingPoint","foundMessageIndex","messages","findIndex","it","createdAt","isIncludedInList","timeout","index","setTimeout","onReactionUpdated","channel","event","recentMessage","isRecentMessage","messageId","scrollReachedBottomAndCanScroll","scrolledAwayFromBottom","_ref","type","createElement","_extends","ref","onEditMessage","onPressNewMessagesButton","onPressScrollToBottomButton","renderNewMessagesButton","renderScrollToBottomButton","memo"],"sources":["GroupChannelThreadMessageList.tsx"],"sourcesContent":["import React, { useContext, useEffect, useLayoutEffect, useRef } from 'react';\n\nimport { useChannelHandler } from '@sendbird/uikit-chat-hooks';\nimport { isDifferentChannel, useFreshCallback, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport ChannelThreadMessageList from '../../../components/ChannelThreadMessageList';\nimport { useSendbirdChat } from '../../../hooks/useContext';\nimport { GroupChannelThreadContexts } from '../module/moduleContext';\nimport type { GroupChannelThreadProps } from '../types';\n\nconst GroupChannelThreadMessageList = (props: GroupChannelThreadProps['MessageList']) => {\n const { sdk } = useSendbirdChat();\n const { setMessageToEdit } = useContext(GroupChannelThreadContexts.Fragment);\n const { subscribe } = useContext(GroupChannelThreadContexts.PubSub);\n const { flatListRef, lazyScrollToBottom, lazyScrollToIndex } = useContext(GroupChannelThreadContexts.MessageList);\n\n const id = useUniqHandlerId('GroupChannelThreadMessageList');\n const ignorePropReached = useRef(false);\n\n const _onTopReached = () => {\n if (!ignorePropReached.current) {\n props.onTopReached();\n }\n };\n\n const _onBottomReached = () => {\n if (!ignorePropReached.current) {\n props.onBottomReached();\n }\n };\n\n const scrollToBottom = useFreshCallback(async (animated = false) => {\n if (props.hasNext()) {\n props.onScrolledAwayFromBottom(false);\n\n await props.onResetMessageList().catch((_) => {});\n props.onScrolledAwayFromBottom(false);\n lazyScrollToBottom({ animated });\n } else {\n lazyScrollToBottom({ animated });\n }\n });\n\n useLayoutEffect(() => {\n if (props.startingPoint) {\n const foundMessageIndex = props.messages.findIndex((it) => it.createdAt === props.startingPoint);\n const isIncludedInList = foundMessageIndex > -1;\n if (isIncludedInList) {\n ignorePropReached.current = true;\n const timeout = 300;\n lazyScrollToIndex({ index: foundMessageIndex, animated: true, timeout: timeout });\n setTimeout(() => {\n ignorePropReached.current = false;\n }, timeout + 50);\n }\n }\n }, [props.startingPoint]);\n\n useChannelHandler(sdk, id, {\n onReactionUpdated(channel, event) {\n if (isDifferentChannel(channel, props.channel)) return;\n const recentMessage = props.messages[0];\n const isRecentMessage = recentMessage && recentMessage.messageId === event.messageId;\n const scrollReachedBottomAndCanScroll = !props.scrolledAwayFromBottom && !props.hasNext();\n if (isRecentMessage && scrollReachedBottomAndCanScroll) {\n lazyScrollToBottom({ animated: true, timeout: 250 });\n }\n },\n });\n\n useEffect(() => {\n return subscribe(({ type }) => {\n switch (type) {\n case 'TYPING_BUBBLE_RENDERED':\n case 'MESSAGES_RECEIVED': {\n if (!props.scrolledAwayFromBottom) {\n scrollToBottom(true);\n }\n break;\n }\n case 'MESSAGE_SENT_SUCCESS':\n case 'MESSAGE_SENT_PENDING': {\n scrollToBottom(false);\n break;\n }\n }\n });\n }, [props.scrolledAwayFromBottom]);\n\n return (\n <ChannelThreadMessageList\n {...props}\n ref={flatListRef}\n onTopReached={_onTopReached}\n onBottomReached={_onBottomReached}\n onEditMessage={setMessageToEdit}\n onPressNewMessagesButton={scrollToBottom}\n onPressScrollToBottomButton={scrollToBottom}\n renderNewMessagesButton={null}\n renderScrollToBottomButton={null}\n />\n );\n};\n\nexport default React.memo(GroupChannelThreadMessageList);\n"],"mappings":"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"}
@@ -4,6 +4,7 @@ import { Avatar, Divider, Icon, Text, createStyleSheet, useAlert, useBottomSheet
4
4
  import { Logger, getAvailableUriFromFileMessage, getFileExtension, getFileType, isMyMessage, isVoiceMessage, shouldRenderReaction, toMegabyte } from '@sendbird/uikit-utils';
5
5
  import ThreadParentMessageRenderer from '../../../components/ThreadParentMessageRenderer';
6
6
  import { useLocalization, usePlatformService, useSBUHandlers, useSendbirdChat } from '../../../hooks/useContext';
7
+ import SBUUtils from '../../../libs/SBUUtils';
7
8
  import { GroupChannelThreadContexts } from '../module/moduleContext';
8
9
  import { ReactionAddons } from './../../../components/ReactionAddons';
9
10
  const GroupChannelThreadParentMessageInfo = props => {
@@ -204,9 +205,13 @@ const useCreateMessagePressActions = _ref => {
204
205
  if (message.isFileMessage()) {
205
206
  const fileType = getFileType(message.type || getFileExtension(message.name));
206
207
  if (['image', 'video', 'audio'].includes(fileType)) {
207
- onPressMediaMessage === null || onPressMediaMessage === void 0 ? void 0 : onPressMediaMessage(message, () => onDeleteMessage === null || onDeleteMessage === void 0 ? void 0 : onDeleteMessage(message), getAvailableUriFromFileMessage(message));
208
+ var _handlers$onOpenFileU;
209
+ onPressMediaMessage === null || onPressMediaMessage === void 0 ? void 0 : onPressMediaMessage(message, () => onDeleteMessage(message), getAvailableUriFromFileMessage(message));
210
+ (_handlers$onOpenFileU = handlers.onOpenFileURL) === null || _handlers$onOpenFileU === void 0 ? void 0 : _handlers$onOpenFileU.call(handlers, message.url);
211
+ } else {
212
+ const openFile = handlers.onOpenFileURL ?? SBUUtils.openURL;
213
+ openFile(message.url);
208
214
  }
209
- handlers.onOpenFileURL(message.url);
210
215
  }
211
216
  };
212
217
  const alertForMessageDelete = message => {
@@ -218,7 +223,7 @@ const useCreateMessagePressActions = _ref => {
218
223
  text: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE_CONFIRM_OK,
219
224
  style: 'destructive',
220
225
  onPress: () => {
221
- onDeleteMessage === null || onDeleteMessage === void 0 ? void 0 : onDeleteMessage(message).catch(onDeleteFailure);
226
+ onDeleteMessage(message).catch(onDeleteFailure);
222
227
  }
223
228
  }]
224
229
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","useContext","TouchableOpacity","View","Avatar","Divider","Icon","Text","createStyleSheet","useAlert","useBottomSheet","useToast","useUIKitTheme","Logger","getAvailableUriFromFileMessage","getFileExtension","getFileType","isMyMessage","isVoiceMessage","shouldRenderReaction","toMegabyte","ThreadParentMessageRenderer","useLocalization","usePlatformService","useSBUHandlers","useSendbirdChat","GroupChannelThreadContexts","ReactionAddons","GroupChannelThreadParentMessageInfo","props","_parentMessage$sender","_parentMessage$thread","channel","parentMessage","setMessageToEdit","Fragment","STRINGS","colors","sbOptions","nickName","sender","nickname","LABELS","USER_NO_NAME","messageTimestamp","GROUP_CHANNEL_THREAD","PARENT_MESSAGE_TIME","replyCountText","REPLY_COUNT","threadInfo","replyCount","createMessagePressActions","useCreateMessagePressActions","currentUserId","onDeleteMessage","onPressMediaMessage","onEditMessage","onPress","onLongPress","bottomSheetItem","message","renderMessageInfoAndMenu","_parentMessage$sender2","createElement","style","styles","infoAndMenuContainer","size","uri","profileUrl","userNickAndTimeContainer","h2","color","onBackground01","numberOfLines","userNickname","caption2","onBackground03","messageTime","activeOpacity","undefined","icon","onBackground02","renderReplyCount","replyContainer","caption3","replyText","renderReactionAddons","configs","uikitWithAppInfo","groupChannel","isSuper","enableReactionsSupergroup","enableReactions","reactionButtonContainer","Message","reactionAddonType","messageProps","container","messageContainer","flexDirection","height","padding","paddingBottom","flex","marginLeft","marginBottom","marginTop","contextMenuButton","width","justifyContent","paddingHorizontal","paddingVertical","paddingLeft","_ref","handlers","toast","openSheet","alert","clipboardService","fileService","onDeleteFailure","error","show","TOAST","DELETE_MSG_ERROR","onCopyText","isUserMessage","setString","COPY_OK","onDownloadFile","isFileMessage","DOWNLOAD_START","save","fileUrl","url","fileName","name","fileType","type","then","response","DOWNLOAD_OK","log","catch","err","DOWNLOAD_ERROR","onOpenFile","includes","onOpenFileURL","alertForMessageDelete","title","CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE","buttons","text","CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL","CHANNEL_MESSAGE_DELETE_CONFIRM_OK","_ref2","sheetItems","menu","copy","CHANNEL_MESSAGE_COPY","edit","CHANNEL_MESSAGE_EDIT","delete","disabled","CHANNEL_MESSAGE_DELETE","download","CHANNEL_MESSAGE_SAVE","push","isEphemeral","sendingStatus","HeaderComponent","isGroupChannel","_ref3","onClose","BottomSheet","memo"],"sources":["GroupChannelThreadParentMessageInfo.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { TouchableOpacity, View } from 'react-native';\n\nimport {\n Avatar,\n BottomSheetItem,\n Divider,\n Icon,\n Text,\n createStyleSheet,\n useAlert,\n useBottomSheet,\n useToast,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport {\n Logger,\n SendbirdFileMessage,\n SendbirdMessage,\n SendbirdUserMessage,\n getAvailableUriFromFileMessage,\n getFileExtension,\n getFileType,\n isMyMessage,\n isVoiceMessage,\n shouldRenderReaction,\n toMegabyte,\n} from '@sendbird/uikit-utils';\n\nimport ThreadParentMessageRenderer, {\n ThreadParentMessageRendererProps,\n} from '../../../components/ThreadParentMessageRenderer';\nimport { useLocalization, usePlatformService, useSBUHandlers, useSendbirdChat } from '../../../hooks/useContext';\nimport { GroupChannelThreadContexts } from '../module/moduleContext';\nimport type { GroupChannelThreadProps } from '../types';\nimport { ReactionAddons } from './../../../components/ReactionAddons';\n\ntype PressActions = { onPress?: () => void; onLongPress?: () => void; bottomSheetItem?: BottomSheetItem };\ntype HandleableMessage = SendbirdUserMessage | SendbirdFileMessage;\ntype CreateMessagePressActions = (params: { message: SendbirdMessage }) => PressActions;\n\nconst GroupChannelThreadParentMessageInfo = (props: GroupChannelThreadProps['ParentMessageInfo']) => {\n const { channel, parentMessage, setMessageToEdit } = useContext(GroupChannelThreadContexts.Fragment);\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n const { sbOptions } = useSendbirdChat();\n\n const nickName = parentMessage.sender?.nickname || STRINGS.LABELS.USER_NO_NAME;\n const messageTimestamp = STRINGS.GROUP_CHANNEL_THREAD.PARENT_MESSAGE_TIME(parentMessage);\n const replyCountText = STRINGS.GROUP_CHANNEL_THREAD.REPLY_COUNT(parentMessage.threadInfo?.replyCount || 0);\n const createMessagePressActions = useCreateMessagePressActions({\n channel: props.channel,\n currentUserId: props.currentUserId,\n onDeleteMessage: props.onDeleteMessage,\n onPressMediaMessage: props.onPressMediaMessage,\n onEditMessage: setMessageToEdit,\n });\n const { onPress, onLongPress, bottomSheetItem } = createMessagePressActions({ message: parentMessage });\n\n const renderMessageInfoAndMenu = () => {\n return (\n <View style={styles.infoAndMenuContainer}>\n <Avatar size={34} uri={parentMessage.sender?.profileUrl} />\n <View style={styles.userNickAndTimeContainer}>\n <Text h2 color={colors.onBackground01} numberOfLines={1} style={styles.userNickname}>\n {nickName}\n </Text>\n <Text caption2 color={colors.onBackground03} style={styles.messageTime}>\n {messageTimestamp}\n </Text>\n </View>\n <TouchableOpacity activeOpacity={0.7} onPress={bottomSheetItem ? onLongPress : undefined}>\n <Icon icon={'more'} color={colors.onBackground02} />\n </TouchableOpacity>\n </View>\n );\n };\n\n const renderReplyCount = (replyCountText: string) => {\n if (replyCountText) {\n return (\n <View style={styles.replyContainer}>\n <Text caption3 color={colors.onBackground03} style={styles.replyText}>\n {replyCountText}\n </Text>\n <Divider />\n </View>\n );\n } else {\n return null;\n }\n };\n\n const renderReactionAddons = () => {\n const configs = sbOptions.uikitWithAppInfo.groupChannel.channel;\n if (shouldRenderReaction(channel, channel.isSuper ? configs.enableReactionsSupergroup : configs.enableReactions)) {\n return (\n <View style={styles.reactionButtonContainer}>\n <ReactionAddons.Message\n channel={props.channel}\n message={parentMessage}\n reactionAddonType={'thread_parent_message'}\n />\n </View>\n );\n } else {\n return null;\n }\n };\n\n const messageProps: ThreadParentMessageRendererProps = {\n parentMessage,\n onPress,\n onLongPress,\n };\n\n return (\n <View>\n <View style={styles.container}>{renderMessageInfoAndMenu()}</View>\n <View style={styles.messageContainer}>\n <ThreadParentMessageRenderer {...messageProps}></ThreadParentMessageRenderer>\n </View>\n {renderReactionAddons()}\n <Divider />\n {renderReplyCount(replyCountText)}\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n flexDirection: 'column',\n },\n infoAndMenuContainer: {\n flexDirection: 'row',\n height: 50,\n padding: 16,\n paddingBottom: 0,\n },\n userNickAndTimeContainer: {\n flexDirection: 'column',\n flex: 1,\n marginLeft: 8,\n },\n userNickname: {\n marginBottom: 2,\n },\n messageTime: {\n marginTop: 2,\n },\n contextMenuButton: {\n width: 34,\n height: 34,\n justifyContent: 'flex-end',\n },\n messageContainer: {\n paddingHorizontal: 16,\n paddingVertical: 8,\n },\n reactionButtonContainer: {\n paddingLeft: 16,\n marginBottom: 16,\n },\n replyContainer: {\n flexDirection: 'column',\n },\n replyText: {\n justifyContent: 'center',\n paddingHorizontal: 16,\n paddingVertical: 12,\n },\n});\n\nconst useCreateMessagePressActions = ({\n channel,\n currentUserId,\n onDeleteMessage,\n onPressMediaMessage,\n onEditMessage,\n}: Pick<\n GroupChannelThreadProps['ParentMessageInfo'],\n 'channel' | 'currentUserId' | 'onDeleteMessage' | 'onPressMediaMessage'\n> & { onEditMessage: (message: HandleableMessage) => void }): CreateMessagePressActions => {\n const handlers = useSBUHandlers();\n const { STRINGS } = useLocalization();\n const toast = useToast();\n const { openSheet } = useBottomSheet();\n const { alert } = useAlert();\n const { clipboardService, fileService } = usePlatformService();\n const { sbOptions } = useSendbirdChat();\n\n const onDeleteFailure = (error: Error) => {\n toast.show(STRINGS.TOAST.DELETE_MSG_ERROR, 'error');\n Logger.error(STRINGS.TOAST.DELETE_MSG_ERROR, error);\n };\n\n const onCopyText = (message: HandleableMessage) => {\n if (message.isUserMessage()) {\n clipboardService.setString(message.message || '');\n toast.show(STRINGS.TOAST.COPY_OK, 'success');\n }\n };\n\n const onDownloadFile = (message: HandleableMessage) => {\n if (message.isFileMessage()) {\n if (toMegabyte(message.size) > 4) {\n toast.show(STRINGS.TOAST.DOWNLOAD_START, 'success');\n }\n\n fileService\n .save({ fileUrl: message.url, fileName: message.name, fileType: message.type })\n .then((response) => {\n toast.show(STRINGS.TOAST.DOWNLOAD_OK, 'success');\n Logger.log('File saved to', response);\n })\n .catch((err) => {\n toast.show(STRINGS.TOAST.DOWNLOAD_ERROR, 'error');\n Logger.log('File save failure', err);\n });\n }\n };\n\n const onOpenFile = (message: HandleableMessage) => {\n if (message.isFileMessage()) {\n const fileType = getFileType(message.type || getFileExtension(message.name));\n if (['image', 'video', 'audio'].includes(fileType)) {\n onPressMediaMessage?.(message, () => onDeleteMessage?.(message), getAvailableUriFromFileMessage(message));\n }\n handlers.onOpenFileURL(message.url);\n }\n };\n\n const alertForMessageDelete = (message: HandleableMessage) => {\n alert({\n title: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE,\n buttons: [\n { text: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL },\n {\n text: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE_CONFIRM_OK,\n style: 'destructive',\n onPress: () => {\n onDeleteMessage?.(message).catch(onDeleteFailure);\n },\n },\n ],\n });\n };\n\n return ({ message }) => {\n if (!message.isUserMessage() && !message.isFileMessage()) return {};\n\n const sheetItems: BottomSheetItem['sheetItems'] = [];\n const menu = {\n copy: (message: HandleableMessage) => ({\n icon: 'copy' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_COPY,\n onPress: () => onCopyText(message),\n }),\n edit: (message: HandleableMessage) => ({\n icon: 'edit' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_EDIT,\n onPress: () => onEditMessage?.(message),\n }),\n delete: (message: HandleableMessage) => ({\n disabled: message.threadInfo ? message.threadInfo.replyCount > 0 : undefined,\n icon: 'delete' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE,\n onPress: () => alertForMessageDelete(message),\n }),\n download: (message: HandleableMessage) => ({\n icon: 'download' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_SAVE,\n onPress: () => onDownloadFile(message),\n }),\n };\n\n if (message.isUserMessage()) {\n sheetItems.push(menu.copy(message));\n if (!channel.isEphemeral) {\n if (isMyMessage(message, currentUserId) && message.sendingStatus === 'succeeded') {\n sheetItems.push(menu.edit(message));\n sheetItems.push(menu.delete(message));\n }\n }\n }\n\n if (message.isFileMessage()) {\n if (!isVoiceMessage(message)) {\n sheetItems.push(menu.download(message));\n }\n if (!channel.isEphemeral) {\n if (isMyMessage(message, currentUserId) && message.sendingStatus === 'succeeded') {\n sheetItems.push(menu.delete(message));\n }\n }\n }\n\n const configs = sbOptions.uikitWithAppInfo.groupChannel.channel;\n const bottomSheetItem: BottomSheetItem = {\n sheetItems,\n HeaderComponent: shouldRenderReaction(\n channel,\n channel.isGroupChannel() && (channel.isSuper ? configs.enableReactionsSupergroup : configs.enableReactions),\n )\n ? ({ onClose }) => <ReactionAddons.BottomSheet message={message} channel={channel} onClose={onClose} />\n : undefined,\n };\n\n if (message.isFileMessage()) {\n return {\n onPress: () => onOpenFile(message),\n onLongPress: () => openSheet(bottomSheetItem),\n bottomSheetItem,\n };\n } else {\n return {\n onPress: undefined,\n onLongPress: () => openSheet(bottomSheetItem),\n bottomSheetItem,\n };\n }\n };\n};\n\nexport default React.memo(GroupChannelThreadParentMessageInfo);\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useContext","TouchableOpacity","View","Avatar","Divider","Icon","Text","createStyleSheet","useAlert","useBottomSheet","useToast","useUIKitTheme","Logger","getAvailableUriFromFileMessage","getFileExtension","getFileType","isMyMessage","isVoiceMessage","shouldRenderReaction","toMegabyte","ThreadParentMessageRenderer","useLocalization","usePlatformService","useSBUHandlers","useSendbirdChat","SBUUtils","GroupChannelThreadContexts","ReactionAddons","GroupChannelThreadParentMessageInfo","props","_parentMessage$sender","_parentMessage$thread","channel","parentMessage","setMessageToEdit","Fragment","STRINGS","colors","sbOptions","nickName","sender","nickname","LABELS","USER_NO_NAME","messageTimestamp","GROUP_CHANNEL_THREAD","PARENT_MESSAGE_TIME","replyCountText","REPLY_COUNT","threadInfo","replyCount","createMessagePressActions","useCreateMessagePressActions","currentUserId","onDeleteMessage","onPressMediaMessage","onEditMessage","onPress","onLongPress","bottomSheetItem","message","renderMessageInfoAndMenu","_parentMessage$sender2","createElement","style","styles","infoAndMenuContainer","size","uri","profileUrl","userNickAndTimeContainer","h2","color","onBackground01","numberOfLines","userNickname","caption2","onBackground03","messageTime","activeOpacity","undefined","icon","onBackground02","renderReplyCount","replyContainer","caption3","replyText","renderReactionAddons","configs","uikitWithAppInfo","groupChannel","isSuper","enableReactionsSupergroup","enableReactions","reactionButtonContainer","Message","reactionAddonType","messageProps","container","messageContainer","flexDirection","height","padding","paddingBottom","flex","marginLeft","marginBottom","marginTop","contextMenuButton","width","justifyContent","paddingHorizontal","paddingVertical","paddingLeft","_ref","handlers","toast","openSheet","alert","clipboardService","fileService","onDeleteFailure","error","show","TOAST","DELETE_MSG_ERROR","onCopyText","isUserMessage","setString","COPY_OK","onDownloadFile","isFileMessage","DOWNLOAD_START","save","fileUrl","url","fileName","name","fileType","type","then","response","DOWNLOAD_OK","log","catch","err","DOWNLOAD_ERROR","onOpenFile","includes","_handlers$onOpenFileU","onOpenFileURL","call","openFile","openURL","alertForMessageDelete","title","CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE","buttons","text","CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL","CHANNEL_MESSAGE_DELETE_CONFIRM_OK","_ref2","sheetItems","menu","copy","CHANNEL_MESSAGE_COPY","edit","CHANNEL_MESSAGE_EDIT","delete","disabled","CHANNEL_MESSAGE_DELETE","download","CHANNEL_MESSAGE_SAVE","push","isEphemeral","sendingStatus","HeaderComponent","isGroupChannel","_ref3","onClose","BottomSheet","memo"],"sources":["GroupChannelThreadParentMessageInfo.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { TouchableOpacity, View } from 'react-native';\n\nimport {\n Avatar,\n BottomSheetItem,\n Divider,\n Icon,\n Text,\n createStyleSheet,\n useAlert,\n useBottomSheet,\n useToast,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport {\n Logger,\n SendbirdFileMessage,\n SendbirdMessage,\n SendbirdUserMessage,\n getAvailableUriFromFileMessage,\n getFileExtension,\n getFileType,\n isMyMessage,\n isVoiceMessage,\n shouldRenderReaction,\n toMegabyte,\n} from '@sendbird/uikit-utils';\n\nimport ThreadParentMessageRenderer, {\n ThreadParentMessageRendererProps,\n} from '../../../components/ThreadParentMessageRenderer';\nimport { useLocalization, usePlatformService, useSBUHandlers, useSendbirdChat } from '../../../hooks/useContext';\nimport SBUUtils from '../../../libs/SBUUtils';\nimport { GroupChannelThreadContexts } from '../module/moduleContext';\nimport type { GroupChannelThreadProps } from '../types';\nimport { ReactionAddons } from './../../../components/ReactionAddons';\n\ntype PressActions = { onPress?: () => void; onLongPress?: () => void; bottomSheetItem?: BottomSheetItem };\ntype HandleableMessage = SendbirdUserMessage | SendbirdFileMessage;\ntype CreateMessagePressActions = (params: { message: SendbirdMessage }) => PressActions;\n\nconst GroupChannelThreadParentMessageInfo = (props: GroupChannelThreadProps['ParentMessageInfo']) => {\n const { channel, parentMessage, setMessageToEdit } = useContext(GroupChannelThreadContexts.Fragment);\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n const { sbOptions } = useSendbirdChat();\n\n const nickName = parentMessage.sender?.nickname || STRINGS.LABELS.USER_NO_NAME;\n const messageTimestamp = STRINGS.GROUP_CHANNEL_THREAD.PARENT_MESSAGE_TIME(parentMessage);\n const replyCountText = STRINGS.GROUP_CHANNEL_THREAD.REPLY_COUNT(parentMessage.threadInfo?.replyCount || 0);\n const createMessagePressActions = useCreateMessagePressActions({\n channel: props.channel,\n currentUserId: props.currentUserId,\n onDeleteMessage: props.onDeleteMessage,\n onPressMediaMessage: props.onPressMediaMessage,\n onEditMessage: setMessageToEdit,\n });\n const { onPress, onLongPress, bottomSheetItem } = createMessagePressActions({ message: parentMessage });\n\n const renderMessageInfoAndMenu = () => {\n return (\n <View style={styles.infoAndMenuContainer}>\n <Avatar size={34} uri={parentMessage.sender?.profileUrl} />\n <View style={styles.userNickAndTimeContainer}>\n <Text h2 color={colors.onBackground01} numberOfLines={1} style={styles.userNickname}>\n {nickName}\n </Text>\n <Text caption2 color={colors.onBackground03} style={styles.messageTime}>\n {messageTimestamp}\n </Text>\n </View>\n <TouchableOpacity activeOpacity={0.7} onPress={bottomSheetItem ? onLongPress : undefined}>\n <Icon icon={'more'} color={colors.onBackground02} />\n </TouchableOpacity>\n </View>\n );\n };\n\n const renderReplyCount = (replyCountText: string) => {\n if (replyCountText) {\n return (\n <View style={styles.replyContainer}>\n <Text caption3 color={colors.onBackground03} style={styles.replyText}>\n {replyCountText}\n </Text>\n <Divider />\n </View>\n );\n } else {\n return null;\n }\n };\n\n const renderReactionAddons = () => {\n const configs = sbOptions.uikitWithAppInfo.groupChannel.channel;\n if (shouldRenderReaction(channel, channel.isSuper ? configs.enableReactionsSupergroup : configs.enableReactions)) {\n return (\n <View style={styles.reactionButtonContainer}>\n <ReactionAddons.Message\n channel={props.channel}\n message={parentMessage}\n reactionAddonType={'thread_parent_message'}\n />\n </View>\n );\n } else {\n return null;\n }\n };\n\n const messageProps: ThreadParentMessageRendererProps = {\n parentMessage,\n onPress,\n onLongPress,\n };\n\n return (\n <View>\n <View style={styles.container}>{renderMessageInfoAndMenu()}</View>\n <View style={styles.messageContainer}>\n <ThreadParentMessageRenderer {...messageProps}></ThreadParentMessageRenderer>\n </View>\n {renderReactionAddons()}\n <Divider />\n {renderReplyCount(replyCountText)}\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n flexDirection: 'column',\n },\n infoAndMenuContainer: {\n flexDirection: 'row',\n height: 50,\n padding: 16,\n paddingBottom: 0,\n },\n userNickAndTimeContainer: {\n flexDirection: 'column',\n flex: 1,\n marginLeft: 8,\n },\n userNickname: {\n marginBottom: 2,\n },\n messageTime: {\n marginTop: 2,\n },\n contextMenuButton: {\n width: 34,\n height: 34,\n justifyContent: 'flex-end',\n },\n messageContainer: {\n paddingHorizontal: 16,\n paddingVertical: 8,\n },\n reactionButtonContainer: {\n paddingLeft: 16,\n marginBottom: 16,\n },\n replyContainer: {\n flexDirection: 'column',\n },\n replyText: {\n justifyContent: 'center',\n paddingHorizontal: 16,\n paddingVertical: 12,\n },\n});\n\nconst useCreateMessagePressActions = ({\n channel,\n currentUserId,\n onDeleteMessage,\n onPressMediaMessage,\n onEditMessage,\n}: Pick<\n GroupChannelThreadProps['ParentMessageInfo'],\n 'channel' | 'currentUserId' | 'onDeleteMessage' | 'onPressMediaMessage'\n> & { onEditMessage: (message: HandleableMessage) => void }): CreateMessagePressActions => {\n const handlers = useSBUHandlers();\n const { STRINGS } = useLocalization();\n const toast = useToast();\n const { openSheet } = useBottomSheet();\n const { alert } = useAlert();\n const { clipboardService, fileService } = usePlatformService();\n const { sbOptions } = useSendbirdChat();\n\n const onDeleteFailure = (error: Error) => {\n toast.show(STRINGS.TOAST.DELETE_MSG_ERROR, 'error');\n Logger.error(STRINGS.TOAST.DELETE_MSG_ERROR, error);\n };\n\n const onCopyText = (message: HandleableMessage) => {\n if (message.isUserMessage()) {\n clipboardService.setString(message.message || '');\n toast.show(STRINGS.TOAST.COPY_OK, 'success');\n }\n };\n\n const onDownloadFile = (message: HandleableMessage) => {\n if (message.isFileMessage()) {\n if (toMegabyte(message.size) > 4) {\n toast.show(STRINGS.TOAST.DOWNLOAD_START, 'success');\n }\n\n fileService\n .save({ fileUrl: message.url, fileName: message.name, fileType: message.type })\n .then((response) => {\n toast.show(STRINGS.TOAST.DOWNLOAD_OK, 'success');\n Logger.log('File saved to', response);\n })\n .catch((err) => {\n toast.show(STRINGS.TOAST.DOWNLOAD_ERROR, 'error');\n Logger.log('File save failure', err);\n });\n }\n };\n\n const onOpenFile = (message: HandleableMessage) => {\n if (message.isFileMessage()) {\n const fileType = getFileType(message.type || getFileExtension(message.name));\n if (['image', 'video', 'audio'].includes(fileType)) {\n onPressMediaMessage?.(message, () => onDeleteMessage(message), getAvailableUriFromFileMessage(message));\n handlers.onOpenFileURL?.(message.url);\n } else {\n const openFile = handlers.onOpenFileURL ?? SBUUtils.openURL;\n openFile(message.url);\n }\n }\n };\n\n const alertForMessageDelete = (message: HandleableMessage) => {\n alert({\n title: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE_CONFIRM_TITLE,\n buttons: [\n { text: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE_CONFIRM_CANCEL },\n {\n text: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE_CONFIRM_OK,\n style: 'destructive',\n onPress: () => {\n onDeleteMessage(message).catch(onDeleteFailure);\n },\n },\n ],\n });\n };\n\n return ({ message }) => {\n if (!message.isUserMessage() && !message.isFileMessage()) return {};\n\n const sheetItems: BottomSheetItem['sheetItems'] = [];\n const menu = {\n copy: (message: HandleableMessage) => ({\n icon: 'copy' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_COPY,\n onPress: () => onCopyText(message),\n }),\n edit: (message: HandleableMessage) => ({\n icon: 'edit' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_EDIT,\n onPress: () => onEditMessage?.(message),\n }),\n delete: (message: HandleableMessage) => ({\n disabled: message.threadInfo ? message.threadInfo.replyCount > 0 : undefined,\n icon: 'delete' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_DELETE,\n onPress: () => alertForMessageDelete(message),\n }),\n download: (message: HandleableMessage) => ({\n icon: 'download' as const,\n title: STRINGS.LABELS.CHANNEL_MESSAGE_SAVE,\n onPress: () => onDownloadFile(message),\n }),\n };\n\n if (message.isUserMessage()) {\n sheetItems.push(menu.copy(message));\n if (!channel.isEphemeral) {\n if (isMyMessage(message, currentUserId) && message.sendingStatus === 'succeeded') {\n sheetItems.push(menu.edit(message));\n sheetItems.push(menu.delete(message));\n }\n }\n }\n\n if (message.isFileMessage()) {\n if (!isVoiceMessage(message)) {\n sheetItems.push(menu.download(message));\n }\n if (!channel.isEphemeral) {\n if (isMyMessage(message, currentUserId) && message.sendingStatus === 'succeeded') {\n sheetItems.push(menu.delete(message));\n }\n }\n }\n\n const configs = sbOptions.uikitWithAppInfo.groupChannel.channel;\n const bottomSheetItem: BottomSheetItem = {\n sheetItems,\n HeaderComponent: shouldRenderReaction(\n channel,\n channel.isGroupChannel() && (channel.isSuper ? configs.enableReactionsSupergroup : configs.enableReactions),\n )\n ? ({ onClose }) => <ReactionAddons.BottomSheet message={message} channel={channel} onClose={onClose} />\n : undefined,\n };\n\n if (message.isFileMessage()) {\n return {\n onPress: () => onOpenFile(message),\n onLongPress: () => openSheet(bottomSheetItem),\n bottomSheetItem,\n };\n } else {\n return {\n onPress: undefined,\n onLongPress: () => openSheet(bottomSheetItem),\n bottomSheetItem,\n };\n }\n };\n};\n\nexport default React.memo(GroupChannelThreadParentMessageInfo);\n"],"mappings":"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"}
@@ -105,8 +105,9 @@ const createGroupChannelFragment = initModule => {
105
105
  replyType,
106
106
  startingPoint: internalSearchItem === null || internalSearchItem === void 0 ? void 0 : internalSearchItem.startingPoint
107
107
  });
108
- const onBlurFragment = () => {
109
- return Promise.allSettled([playerService.reset(), recorderService.reset()]);
108
+ const onBlurFragment = async () => {
109
+ await playerService.reset().catch(() => {});
110
+ await recorderService.reset().catch(() => {});
110
111
  };
111
112
  const _onPressHeaderLeft = useFreshCallback(async () => {
112
113
  voiceMessageStatusManager.clear();
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useMemo","useState","MessageFilter","ReplyType","Box","useToast","useGroupChannelMessages","getReadableFileSize","NOOP","PASS","confirmAndMarkAsRead","messageComparator","useFreshCallback","useIIFE","useRefTracker","GroupChannelMessageRenderer","GroupChannelTypingIndicatorBubble","NewMessagesButton","ScrollToBottomButton","StatusComposition","createGroupChannelModule","useLocalization","usePlatformService","useSendbirdChat","pubsub","createGroupChannelFragment","initModule","GroupChannelModule","_ref","searchItem","renderNewMessagesButton","props","createElement","renderScrollToBottomButton","renderMessage","enableMessageGrouping","enableTypingIndicator","onPressHeaderLeft","onPressHeaderRight","onPressMediaMessage","onChannelDeleted","onPressReplyMessageInThread","onBeforeSendUserMessage","onBeforeSendFileMessage","onBeforeUpdateUserMessage","onBeforeUpdateFileMessage","channel","keyboardAvoidOffset","sortComparator","flatListProps","messageListQueryParams","collectionCreator","playerService","recorderService","sdk","currentUser","sbOptions","voiceMessageStatusManager","toast","STRINGS","internalSearchItem","setInternalSearchItem","navigateFromMessageSearch","Boolean","groupChannelPubSub","scrolledAwayFromBottom","setScrolledAwayFromBottom","scrolledAwayFromBottomRef","replyType","uikit","groupChannel","NONE","ONLY_REPLY_TO_CHANNEL","loading","messages","newMessages","resetNewMessages","loadNext","loadPrevious","hasNext","sendFileMessage","sendUserMessage","updateFileMessage","updateUserMessage","resendMessage","deleteMessage","resetWithStartingPoint","shouldCountNewMessages","current","onMessagesReceived","publish","type","data","onMessagesUpdated","onCurrentUserBanned","getCollectionCreator","markAsRead","startingPoint","onBlurFragment","Promise","allSettled","reset","_onPressHeaderLeft","clear","_onPressHeaderRight","_onPressMediaMessage","message","uri","_onPressReplyMessageInThread","renderItem","content","isFirstItem","memoizedFlatListProps","ListEmptyComponent","StatusEmpty","contentContainerStyle","flexGrow","onResetMessageList","Number","MAX_SAFE_INTEGER","onResetMessageListWithStartingPoint","onUpdateSearchItem","undefined","onPending","onSent","onPressSendUserMessage","params","processedParams","onPressSendFileMessage","_processedParams$file","fileSize","file","size","uploadSizeLimit","appInfo","sizeLimitString","show","TOAST","FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR","onPressUpdateUserMessage","messageId","onPressUpdateFileMessage","onScrolledAwayFromBottom","value","Provider","Header","shouldHideRight","LoadingComponent","StatusLoading","MessageList","currentUserId","userId","onTopReached","onBottomReached","onResendFailedMessage","onDeleteMessage","Input","SuggestedMentionList","shouldRenderInput","isBroadcast","myRole","deprecatedCreatorProp","defaultParams","createMessageCollection","filter"],"sources":["createGroupChannelFragment.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { MessageCollection, MessageFilter } from '@sendbird/chat/groupChannel';\nimport { ReplyType } from '@sendbird/chat/message';\nimport { Box, useToast } from '@sendbird/uikit-react-native-foundation';\nimport { useGroupChannelMessages } from '@sendbird/uikit-tools';\nimport {\n SendbirdFileMessage,\n SendbirdGroupChannel,\n SendbirdSendableMessage,\n SendbirdUserMessage,\n getReadableFileSize,\n} from '@sendbird/uikit-utils';\nimport {\n NOOP,\n PASS,\n confirmAndMarkAsRead,\n messageComparator,\n useFreshCallback,\n useIIFE,\n useRefTracker,\n} from '@sendbird/uikit-utils';\n\nimport GroupChannelMessageRenderer, {\n GroupChannelTypingIndicatorBubble,\n} from '../components/GroupChannelMessageRenderer';\nimport NewMessagesButton from '../components/NewMessagesButton';\nimport ScrollToBottomButton from '../components/ScrollToBottomButton';\nimport StatusComposition from '../components/StatusComposition';\nimport createGroupChannelModule from '../domain/groupChannel/module/createGroupChannelModule';\nimport type {\n GroupChannelFragment,\n GroupChannelModule,\n GroupChannelProps,\n GroupChannelPubSubContextPayload,\n} from '../domain/groupChannel/types';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../hooks/useContext';\nimport { FileType } from '../platform/types';\nimport pubsub from '../utils/pubsub';\n\nconst createGroupChannelFragment = (initModule?: Partial<GroupChannelModule>): GroupChannelFragment => {\n const GroupChannelModule = createGroupChannelModule(initModule);\n\n return ({\n searchItem,\n renderNewMessagesButton = (props) => <NewMessagesButton {...props} />,\n renderScrollToBottomButton = (props) => <ScrollToBottomButton {...props} />,\n renderMessage,\n enableMessageGrouping = true,\n enableTypingIndicator,\n onPressHeaderLeft = NOOP,\n onPressHeaderRight = NOOP,\n onPressMediaMessage = NOOP,\n onChannelDeleted = NOOP,\n onPressReplyMessageInThread = NOOP,\n onBeforeSendUserMessage = PASS,\n onBeforeSendFileMessage = PASS,\n onBeforeUpdateUserMessage = PASS,\n onBeforeUpdateFileMessage = PASS,\n channel,\n keyboardAvoidOffset,\n sortComparator = messageComparator,\n flatListProps,\n messageListQueryParams,\n collectionCreator,\n }) => {\n const { playerService, recorderService } = usePlatformService();\n const { sdk, currentUser, sbOptions, voiceMessageStatusManager } = useSendbirdChat();\n const toast = useToast();\n const { STRINGS } = useLocalization();\n\n const [internalSearchItem, setInternalSearchItem] = useState(searchItem);\n const navigateFromMessageSearch = useCallback(() => Boolean(searchItem), []);\n\n const [groupChannelPubSub] = useState(() => pubsub<GroupChannelPubSubContextPayload>());\n const [scrolledAwayFromBottom, setScrolledAwayFromBottom] = useState(false);\n const scrolledAwayFromBottomRef = useRefTracker(scrolledAwayFromBottom);\n\n const replyType = useIIFE(() => {\n if (sbOptions.uikit.groupChannel.channel.replyType === 'none') {\n return ReplyType.NONE;\n } else {\n return ReplyType.ONLY_REPLY_TO_CHANNEL;\n }\n });\n\n const {\n loading,\n messages,\n newMessages,\n resetNewMessages,\n loadNext,\n loadPrevious,\n hasNext,\n sendFileMessage,\n sendUserMessage,\n updateFileMessage,\n updateUserMessage,\n resendMessage,\n deleteMessage,\n resetWithStartingPoint,\n } = useGroupChannelMessages(sdk, channel, {\n shouldCountNewMessages: () => scrolledAwayFromBottomRef.current,\n onMessagesReceived(messages) {\n groupChannelPubSub.publish({ type: 'MESSAGES_RECEIVED', data: { messages } });\n },\n onMessagesUpdated(messages) {\n groupChannelPubSub.publish({ type: 'MESSAGES_UPDATED', data: { messages } });\n },\n onChannelDeleted,\n onCurrentUserBanned: onChannelDeleted,\n collectionCreator: getCollectionCreator(channel, messageListQueryParams, collectionCreator),\n sortComparator,\n markAsRead: confirmAndMarkAsRead,\n replyType,\n startingPoint: internalSearchItem?.startingPoint,\n });\n\n const onBlurFragment = () => {\n return Promise.allSettled([playerService.reset(), recorderService.reset()]);\n };\n const _onPressHeaderLeft = useFreshCallback(async () => {\n voiceMessageStatusManager.clear();\n await onBlurFragment();\n onPressHeaderLeft();\n });\n const _onPressHeaderRight = useFreshCallback(async () => {\n await onBlurFragment();\n onPressHeaderRight();\n });\n const _onPressMediaMessage: NonNullable<GroupChannelProps['MessageList']['onPressMediaMessage']> = useFreshCallback(\n async (message, deleteMessage, uri) => {\n await onBlurFragment();\n onPressMediaMessage(message, deleteMessage, uri);\n },\n );\n const _onPressReplyMessageInThread = useFreshCallback(\n async (message: SendbirdSendableMessage, startingPoint?: number) => {\n await onBlurFragment();\n onPressReplyMessageInThread(message, startingPoint);\n },\n );\n\n useEffect(() => {\n return () => {\n onBlurFragment();\n };\n }, []);\n\n const renderItem: GroupChannelProps['MessageList']['renderMessage'] = useFreshCallback((props) => {\n const content = renderMessage ? renderMessage(props) : <GroupChannelMessageRenderer {...props} />;\n return (\n <Box>\n {content}\n {props.isFirstItem && !hasNext() && <GroupChannelTypingIndicatorBubble />}\n </Box>\n );\n });\n\n const memoizedFlatListProps = useMemo(\n () => ({\n ListEmptyComponent: <GroupChannelModule.StatusEmpty />,\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }),\n [flatListProps],\n );\n\n const onResetMessageList = useCallback(async () => {\n return await resetWithStartingPoint(Number.MAX_SAFE_INTEGER);\n }, []);\n\n const onResetMessageListWithStartingPoint = useCallback(async (startingPoint: number) => {\n return await resetWithStartingPoint(startingPoint);\n }, []);\n\n // Changing the search item will trigger the focus animation on messages.\n const onUpdateSearchItem: GroupChannelProps['MessageList']['onUpdateSearchItem'] = useCallback((searchItem) => {\n // Clean up for animation trigger with useEffect\n setInternalSearchItem(undefined);\n setInternalSearchItem(searchItem);\n }, []);\n\n const onPending = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n groupChannelPubSub.publish({ type: 'MESSAGE_SENT_PENDING', data: { message } });\n };\n\n const onSent = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n groupChannelPubSub.publish({ type: 'MESSAGE_SENT_SUCCESS', data: { message } });\n };\n\n const onPressSendUserMessage: GroupChannelProps['Input']['onPressSendUserMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendUserMessage(params);\n const message = await sendUserMessage(processedParams, onPending);\n onSent(message);\n },\n );\n const onPressSendFileMessage: GroupChannelProps['Input']['onPressSendFileMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendFileMessage(params);\n const fileSize = (processedParams.file as FileType)?.size ?? processedParams.fileSize;\n const uploadSizeLimit = sbOptions.appInfo.uploadSizeLimit;\n\n if (fileSize && uploadSizeLimit && fileSize > uploadSizeLimit) {\n const sizeLimitString = `${getReadableFileSize(uploadSizeLimit)} MB`;\n toast.show(STRINGS.TOAST.FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR(sizeLimitString), 'error');\n return;\n } else {\n const message = await sendFileMessage(processedParams, onPending);\n onSent(message);\n }\n },\n );\n const onPressUpdateUserMessage: GroupChannelProps['Input']['onPressUpdateUserMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateUserMessage(params);\n await updateUserMessage(message.messageId, processedParams);\n },\n );\n const onPressUpdateFileMessage: GroupChannelProps['Input']['onPressUpdateFileMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateFileMessage(params);\n await updateFileMessage(message.messageId, processedParams);\n },\n );\n const onScrolledAwayFromBottom = useFreshCallback((value: boolean) => {\n if (!value) resetNewMessages();\n setScrolledAwayFromBottom(value);\n });\n\n return (\n <GroupChannelModule.Provider\n channel={channel}\n groupChannelPubSub={groupChannelPubSub}\n enableTypingIndicator={enableTypingIndicator ?? sbOptions.uikit.groupChannel.channel.enableTypingIndicator}\n keyboardAvoidOffset={keyboardAvoidOffset}\n messages={messages}\n onUpdateSearchItem={onUpdateSearchItem}\n onPressReplyMessageInThread={_onPressReplyMessageInThread}\n >\n <GroupChannelModule.Header\n shouldHideRight={navigateFromMessageSearch}\n onPressHeaderLeft={_onPressHeaderLeft}\n onPressHeaderRight={_onPressHeaderRight}\n />\n <StatusComposition loading={loading} LoadingComponent={<GroupChannelModule.StatusLoading />}>\n <GroupChannelModule.MessageList\n channel={channel}\n searchItem={internalSearchItem}\n onResetMessageList={onResetMessageList}\n onResetMessageListWithStartingPoint={onResetMessageListWithStartingPoint}\n onUpdateSearchItem={onUpdateSearchItem}\n enableMessageGrouping={enableMessageGrouping}\n currentUserId={currentUser?.userId}\n renderMessage={renderItem}\n messages={messages}\n newMessages={newMessages}\n onTopReached={loadPrevious}\n onBottomReached={loadNext}\n hasNext={hasNext}\n scrolledAwayFromBottom={scrolledAwayFromBottom}\n onScrolledAwayFromBottom={onScrolledAwayFromBottom}\n renderNewMessagesButton={renderNewMessagesButton}\n renderScrollToBottomButton={renderScrollToBottomButton}\n onResendFailedMessage={resendMessage}\n onDeleteMessage={deleteMessage}\n onPressMediaMessage={_onPressMediaMessage}\n flatListProps={memoizedFlatListProps}\n />\n <GroupChannelModule.Input\n SuggestedMentionList={GroupChannelModule.SuggestedMentionList}\n shouldRenderInput={shouldRenderInput(channel)}\n onPressSendUserMessage={onPressSendUserMessage}\n onPressSendFileMessage={onPressSendFileMessage}\n onPressUpdateUserMessage={onPressUpdateUserMessage}\n onPressUpdateFileMessage={onPressUpdateFileMessage}\n />\n </StatusComposition>\n </GroupChannelModule.Provider>\n );\n };\n};\n\nfunction shouldRenderInput(channel: SendbirdGroupChannel) {\n if (channel.isBroadcast) {\n return channel.myRole === 'operator';\n }\n\n return true;\n}\n\nfunction getCollectionCreator(\n channel: SendbirdGroupChannel,\n messageListQueryParams?: GroupChannelProps['Fragment']['messageListQueryParams'],\n deprecatedCreatorProp?: () => MessageCollection,\n) {\n if (!messageListQueryParams && deprecatedCreatorProp) return deprecatedCreatorProp;\n\n return (defaultParams: GroupChannelProps['Fragment']['messageListQueryParams']) => {\n const params = { ...defaultParams, ...messageListQueryParams };\n return channel.createMessageCollection({\n ...params,\n filter: new MessageFilter(params),\n });\n };\n}\n\nexport default createGroupChannelFragment;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useCallback","useEffect","useMemo","useState","MessageFilter","ReplyType","Box","useToast","useGroupChannelMessages","getReadableFileSize","NOOP","PASS","confirmAndMarkAsRead","messageComparator","useFreshCallback","useIIFE","useRefTracker","GroupChannelMessageRenderer","GroupChannelTypingIndicatorBubble","NewMessagesButton","ScrollToBottomButton","StatusComposition","createGroupChannelModule","useLocalization","usePlatformService","useSendbirdChat","pubsub","createGroupChannelFragment","initModule","GroupChannelModule","_ref","searchItem","renderNewMessagesButton","props","createElement","renderScrollToBottomButton","renderMessage","enableMessageGrouping","enableTypingIndicator","onPressHeaderLeft","onPressHeaderRight","onPressMediaMessage","onChannelDeleted","onPressReplyMessageInThread","onBeforeSendUserMessage","onBeforeSendFileMessage","onBeforeUpdateUserMessage","onBeforeUpdateFileMessage","channel","keyboardAvoidOffset","sortComparator","flatListProps","messageListQueryParams","collectionCreator","playerService","recorderService","sdk","currentUser","sbOptions","voiceMessageStatusManager","toast","STRINGS","internalSearchItem","setInternalSearchItem","navigateFromMessageSearch","Boolean","groupChannelPubSub","scrolledAwayFromBottom","setScrolledAwayFromBottom","scrolledAwayFromBottomRef","replyType","uikit","groupChannel","NONE","ONLY_REPLY_TO_CHANNEL","loading","messages","newMessages","resetNewMessages","loadNext","loadPrevious","hasNext","sendFileMessage","sendUserMessage","updateFileMessage","updateUserMessage","resendMessage","deleteMessage","resetWithStartingPoint","shouldCountNewMessages","current","onMessagesReceived","publish","type","data","onMessagesUpdated","onCurrentUserBanned","getCollectionCreator","markAsRead","startingPoint","onBlurFragment","reset","catch","_onPressHeaderLeft","clear","_onPressHeaderRight","_onPressMediaMessage","message","uri","_onPressReplyMessageInThread","renderItem","content","isFirstItem","memoizedFlatListProps","ListEmptyComponent","StatusEmpty","contentContainerStyle","flexGrow","onResetMessageList","Number","MAX_SAFE_INTEGER","onResetMessageListWithStartingPoint","onUpdateSearchItem","undefined","onPending","onSent","onPressSendUserMessage","params","processedParams","onPressSendFileMessage","_processedParams$file","fileSize","file","size","uploadSizeLimit","appInfo","sizeLimitString","show","TOAST","FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR","onPressUpdateUserMessage","messageId","onPressUpdateFileMessage","onScrolledAwayFromBottom","value","Provider","Header","shouldHideRight","LoadingComponent","StatusLoading","MessageList","currentUserId","userId","onTopReached","onBottomReached","onResendFailedMessage","onDeleteMessage","Input","SuggestedMentionList","shouldRenderInput","isBroadcast","myRole","deprecatedCreatorProp","defaultParams","createMessageCollection","filter"],"sources":["createGroupChannelFragment.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { MessageCollection, MessageFilter } from '@sendbird/chat/groupChannel';\nimport { ReplyType } from '@sendbird/chat/message';\nimport { Box, useToast } from '@sendbird/uikit-react-native-foundation';\nimport { useGroupChannelMessages } from '@sendbird/uikit-tools';\nimport {\n SendbirdFileMessage,\n SendbirdGroupChannel,\n SendbirdSendableMessage,\n SendbirdUserMessage,\n getReadableFileSize,\n} from '@sendbird/uikit-utils';\nimport {\n NOOP,\n PASS,\n confirmAndMarkAsRead,\n messageComparator,\n useFreshCallback,\n useIIFE,\n useRefTracker,\n} from '@sendbird/uikit-utils';\n\nimport GroupChannelMessageRenderer, {\n GroupChannelTypingIndicatorBubble,\n} from '../components/GroupChannelMessageRenderer';\nimport NewMessagesButton from '../components/NewMessagesButton';\nimport ScrollToBottomButton from '../components/ScrollToBottomButton';\nimport StatusComposition from '../components/StatusComposition';\nimport createGroupChannelModule from '../domain/groupChannel/module/createGroupChannelModule';\nimport type {\n GroupChannelFragment,\n GroupChannelModule,\n GroupChannelProps,\n GroupChannelPubSubContextPayload,\n} from '../domain/groupChannel/types';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../hooks/useContext';\nimport { FileType } from '../platform/types';\nimport pubsub from '../utils/pubsub';\n\nconst createGroupChannelFragment = (initModule?: Partial<GroupChannelModule>): GroupChannelFragment => {\n const GroupChannelModule = createGroupChannelModule(initModule);\n\n return ({\n searchItem,\n renderNewMessagesButton = (props) => <NewMessagesButton {...props} />,\n renderScrollToBottomButton = (props) => <ScrollToBottomButton {...props} />,\n renderMessage,\n enableMessageGrouping = true,\n enableTypingIndicator,\n onPressHeaderLeft = NOOP,\n onPressHeaderRight = NOOP,\n onPressMediaMessage = NOOP,\n onChannelDeleted = NOOP,\n onPressReplyMessageInThread = NOOP,\n onBeforeSendUserMessage = PASS,\n onBeforeSendFileMessage = PASS,\n onBeforeUpdateUserMessage = PASS,\n onBeforeUpdateFileMessage = PASS,\n channel,\n keyboardAvoidOffset,\n sortComparator = messageComparator,\n flatListProps,\n messageListQueryParams,\n collectionCreator,\n }) => {\n const { playerService, recorderService } = usePlatformService();\n const { sdk, currentUser, sbOptions, voiceMessageStatusManager } = useSendbirdChat();\n const toast = useToast();\n const { STRINGS } = useLocalization();\n\n const [internalSearchItem, setInternalSearchItem] = useState(searchItem);\n const navigateFromMessageSearch = useCallback(() => Boolean(searchItem), []);\n\n const [groupChannelPubSub] = useState(() => pubsub<GroupChannelPubSubContextPayload>());\n const [scrolledAwayFromBottom, setScrolledAwayFromBottom] = useState(false);\n const scrolledAwayFromBottomRef = useRefTracker(scrolledAwayFromBottom);\n\n const replyType = useIIFE(() => {\n if (sbOptions.uikit.groupChannel.channel.replyType === 'none') {\n return ReplyType.NONE;\n } else {\n return ReplyType.ONLY_REPLY_TO_CHANNEL;\n }\n });\n\n const {\n loading,\n messages,\n newMessages,\n resetNewMessages,\n loadNext,\n loadPrevious,\n hasNext,\n sendFileMessage,\n sendUserMessage,\n updateFileMessage,\n updateUserMessage,\n resendMessage,\n deleteMessage,\n resetWithStartingPoint,\n } = useGroupChannelMessages(sdk, channel, {\n shouldCountNewMessages: () => scrolledAwayFromBottomRef.current,\n onMessagesReceived(messages) {\n groupChannelPubSub.publish({ type: 'MESSAGES_RECEIVED', data: { messages } });\n },\n onMessagesUpdated(messages) {\n groupChannelPubSub.publish({ type: 'MESSAGES_UPDATED', data: { messages } });\n },\n onChannelDeleted,\n onCurrentUserBanned: onChannelDeleted,\n collectionCreator: getCollectionCreator(channel, messageListQueryParams, collectionCreator),\n sortComparator,\n markAsRead: confirmAndMarkAsRead,\n replyType,\n startingPoint: internalSearchItem?.startingPoint,\n });\n\n const onBlurFragment = async () => {\n await playerService.reset().catch(() => {});\n await recorderService.reset().catch(() => {});\n };\n const _onPressHeaderLeft = useFreshCallback(async () => {\n voiceMessageStatusManager.clear();\n await onBlurFragment();\n onPressHeaderLeft();\n });\n const _onPressHeaderRight = useFreshCallback(async () => {\n await onBlurFragment();\n onPressHeaderRight();\n });\n const _onPressMediaMessage: NonNullable<GroupChannelProps['MessageList']['onPressMediaMessage']> = useFreshCallback(\n async (message, deleteMessage, uri) => {\n await onBlurFragment();\n onPressMediaMessage(message, deleteMessage, uri);\n },\n );\n const _onPressReplyMessageInThread = useFreshCallback(\n async (message: SendbirdSendableMessage, startingPoint?: number) => {\n await onBlurFragment();\n onPressReplyMessageInThread(message, startingPoint);\n },\n );\n\n useEffect(() => {\n return () => {\n onBlurFragment();\n };\n }, []);\n\n const renderItem: GroupChannelProps['MessageList']['renderMessage'] = useFreshCallback((props) => {\n const content = renderMessage ? renderMessage(props) : <GroupChannelMessageRenderer {...props} />;\n return (\n <Box>\n {content}\n {props.isFirstItem && !hasNext() && <GroupChannelTypingIndicatorBubble />}\n </Box>\n );\n });\n\n const memoizedFlatListProps = useMemo(\n () => ({\n ListEmptyComponent: <GroupChannelModule.StatusEmpty />,\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }),\n [flatListProps],\n );\n\n const onResetMessageList = useCallback(async () => {\n return await resetWithStartingPoint(Number.MAX_SAFE_INTEGER);\n }, []);\n\n const onResetMessageListWithStartingPoint = useCallback(async (startingPoint: number) => {\n return await resetWithStartingPoint(startingPoint);\n }, []);\n\n // Changing the search item will trigger the focus animation on messages.\n const onUpdateSearchItem: GroupChannelProps['MessageList']['onUpdateSearchItem'] = useCallback((searchItem) => {\n // Clean up for animation trigger with useEffect\n setInternalSearchItem(undefined);\n setInternalSearchItem(searchItem);\n }, []);\n\n const onPending = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n groupChannelPubSub.publish({ type: 'MESSAGE_SENT_PENDING', data: { message } });\n };\n\n const onSent = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n groupChannelPubSub.publish({ type: 'MESSAGE_SENT_SUCCESS', data: { message } });\n };\n\n const onPressSendUserMessage: GroupChannelProps['Input']['onPressSendUserMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendUserMessage(params);\n const message = await sendUserMessage(processedParams, onPending);\n onSent(message);\n },\n );\n const onPressSendFileMessage: GroupChannelProps['Input']['onPressSendFileMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendFileMessage(params);\n const fileSize = (processedParams.file as FileType)?.size ?? processedParams.fileSize;\n const uploadSizeLimit = sbOptions.appInfo.uploadSizeLimit;\n\n if (fileSize && uploadSizeLimit && fileSize > uploadSizeLimit) {\n const sizeLimitString = `${getReadableFileSize(uploadSizeLimit)} MB`;\n toast.show(STRINGS.TOAST.FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR(sizeLimitString), 'error');\n return;\n } else {\n const message = await sendFileMessage(processedParams, onPending);\n onSent(message);\n }\n },\n );\n const onPressUpdateUserMessage: GroupChannelProps['Input']['onPressUpdateUserMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateUserMessage(params);\n await updateUserMessage(message.messageId, processedParams);\n },\n );\n const onPressUpdateFileMessage: GroupChannelProps['Input']['onPressUpdateFileMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateFileMessage(params);\n await updateFileMessage(message.messageId, processedParams);\n },\n );\n const onScrolledAwayFromBottom = useFreshCallback((value: boolean) => {\n if (!value) resetNewMessages();\n setScrolledAwayFromBottom(value);\n });\n\n return (\n <GroupChannelModule.Provider\n channel={channel}\n groupChannelPubSub={groupChannelPubSub}\n enableTypingIndicator={enableTypingIndicator ?? sbOptions.uikit.groupChannel.channel.enableTypingIndicator}\n keyboardAvoidOffset={keyboardAvoidOffset}\n messages={messages}\n onUpdateSearchItem={onUpdateSearchItem}\n onPressReplyMessageInThread={_onPressReplyMessageInThread}\n >\n <GroupChannelModule.Header\n shouldHideRight={navigateFromMessageSearch}\n onPressHeaderLeft={_onPressHeaderLeft}\n onPressHeaderRight={_onPressHeaderRight}\n />\n <StatusComposition loading={loading} LoadingComponent={<GroupChannelModule.StatusLoading />}>\n <GroupChannelModule.MessageList\n channel={channel}\n searchItem={internalSearchItem}\n onResetMessageList={onResetMessageList}\n onResetMessageListWithStartingPoint={onResetMessageListWithStartingPoint}\n onUpdateSearchItem={onUpdateSearchItem}\n enableMessageGrouping={enableMessageGrouping}\n currentUserId={currentUser?.userId}\n renderMessage={renderItem}\n messages={messages}\n newMessages={newMessages}\n onTopReached={loadPrevious}\n onBottomReached={loadNext}\n hasNext={hasNext}\n scrolledAwayFromBottom={scrolledAwayFromBottom}\n onScrolledAwayFromBottom={onScrolledAwayFromBottom}\n renderNewMessagesButton={renderNewMessagesButton}\n renderScrollToBottomButton={renderScrollToBottomButton}\n onResendFailedMessage={resendMessage}\n onDeleteMessage={deleteMessage}\n onPressMediaMessage={_onPressMediaMessage}\n flatListProps={memoizedFlatListProps}\n />\n <GroupChannelModule.Input\n SuggestedMentionList={GroupChannelModule.SuggestedMentionList}\n shouldRenderInput={shouldRenderInput(channel)}\n onPressSendUserMessage={onPressSendUserMessage}\n onPressSendFileMessage={onPressSendFileMessage}\n onPressUpdateUserMessage={onPressUpdateUserMessage}\n onPressUpdateFileMessage={onPressUpdateFileMessage}\n />\n </StatusComposition>\n </GroupChannelModule.Provider>\n );\n };\n};\n\nfunction shouldRenderInput(channel: SendbirdGroupChannel) {\n if (channel.isBroadcast) {\n return channel.myRole === 'operator';\n }\n\n return true;\n}\n\nfunction getCollectionCreator(\n channel: SendbirdGroupChannel,\n messageListQueryParams?: GroupChannelProps['Fragment']['messageListQueryParams'],\n deprecatedCreatorProp?: () => MessageCollection,\n) {\n if (!messageListQueryParams && deprecatedCreatorProp) return deprecatedCreatorProp;\n\n return (defaultParams: GroupChannelProps['Fragment']['messageListQueryParams']) => {\n const params = { ...defaultParams, ...messageListQueryParams };\n return channel.createMessageCollection({\n ...params,\n filter: new MessageFilter(params),\n });\n };\n}\n\nexport default createGroupChannelFragment;\n"],"mappings":"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"}
@@ -97,8 +97,9 @@ const createGroupChannelThreadFragment = initModule => {
97
97
  isReactionEnabled: sbOptions.uikit.groupChannel.channel.enableReactions,
98
98
  startingPoint
99
99
  });
100
- const onBlurFragment = () => {
101
- return Promise.allSettled([playerService.reset(), recorderService.reset()]);
100
+ const onBlurFragment = async () => {
101
+ await playerService.reset().catch(() => {});
102
+ await recorderService.reset().catch(() => {});
102
103
  };
103
104
  const _onPressHeaderLeft = useFreshCallback(async () => {
104
105
  await onBlurFragment();
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useMemo","useState","Box","useToast","useGroupChannelThreadMessages","getReadableFileSize","NOOP","PASS","confirmAndMarkAsRead","messageComparator","useFreshCallback","useRefTracker","GroupChannelMessageRenderer","StatusComposition","createGroupChannelThreadModule","useLocalization","usePlatformService","useSendbirdChat","pubsub","createGroupChannelThreadFragment","initModule","GroupChannelThreadModule","_ref","renderMessage","enableMessageGrouping","onPressHeaderLeft","onPressHeaderSubtitle","onPressMediaMessage","onParentMessageDeleted","onChannelDeleted","onBeforeSendUserMessage","onBeforeSendFileMessage","onBeforeUpdateUserMessage","onBeforeUpdateFileMessage","channel","parentMessage","startingPoint","keyboardAvoidOffset","sortComparator","threadMessageComparator","flatListProps","playerService","recorderService","sdk","currentUser","sbOptions","voiceMessageStatusManager","groupChannelFragmentOptions","groupChannelThreadPubSub","scrolledAwayFromBottom","setScrolledAwayFromBottom","scrolledAwayFromBottomRef","toast","STRINGS","_parentMessage","setParentMessage","loading","messages","newMessages","resetNewMessages","loadNext","loadPrevious","hasNext","sendFileMessage","sendUserMessage","updateFileMessage","updateUserMessage","resendMessage","deleteMessage","resetWithStartingPoint","shouldCountNewMessages","current","onMessagesReceived","publish","type","data","onMessagesUpdated","onParentMessageUpdated","show","TOAST","THREAD_PARENT_MESSAGE_DELETED_ERROR","onCurrentUserBanned","markAsRead","isReactionEnabled","uikit","groupChannel","enableReactions","onBlurFragment","Promise","allSettled","reset","_onPressHeaderLeft","publishAll","_onPressHeaderSubtitle","createdAt","_onPressMediaMessage","message","uri","renderItem","props","content","createElement","_extends","hideParentMessage","memoizedFlatListProps","ListHeaderComponent","ParentMessageInfo","currentUserId","userId","onDeleteMessage","contentContainerStyle","flexGrow","onResetMessageList","Number","MAX_SAFE_INTEGER","onResetMessageListWithStartingPoint","onPending","onSent","updateIfParentMessage","messageId","parentMessageId","onPressSendUserMessage","params","processedParams","onPressSendFileMessage","_processedParams$file","fileSize","file","size","uploadSizeLimit","appInfo","sizeLimitString","FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR","onPressUpdateUserMessage","updatedMessage","onPressUpdateFileMessage","onScrolledAwayFromBottom","value","Provider","threadedMessages","Header","onPressLeft","onPressSubtitle","LoadingComponent","StatusLoading","MessageList","onTopReached","onBottomReached","onResendFailedMessage","Input","SuggestedMentionList","shouldRenderInput","isBroadcast","myRole","a","b"],"sources":["createGroupChannelThreadFragment.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { Box, useToast } from '@sendbird/uikit-react-native-foundation';\nimport { useGroupChannelThreadMessages } from '@sendbird/uikit-tools';\nimport {\n SendbirdFileMessage,\n SendbirdGroupChannel,\n type SendbirdMessage,\n SendbirdUserMessage,\n getReadableFileSize,\n} from '@sendbird/uikit-utils';\nimport {\n NOOP,\n PASS,\n confirmAndMarkAsRead,\n messageComparator,\n useFreshCallback,\n useRefTracker,\n} from '@sendbird/uikit-utils';\n\nimport GroupChannelMessageRenderer from '../components/GroupChannelMessageRenderer';\nimport StatusComposition from '../components/StatusComposition';\nimport createGroupChannelThreadModule from '../domain/groupChannelThread/module/createGroupChannelThreadModule';\nimport type {\n GroupChannelThreadFragment,\n GroupChannelThreadModule,\n GroupChannelThreadProps,\n GroupChannelThreadPubSubContextPayload,\n} from '../domain/groupChannelThread/types';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../hooks/useContext';\nimport pubsub from '../utils/pubsub';\n\nconst createGroupChannelThreadFragment = (\n initModule?: Partial<GroupChannelThreadModule>,\n): GroupChannelThreadFragment => {\n const GroupChannelThreadModule = createGroupChannelThreadModule(initModule);\n\n return ({\n renderMessage,\n enableMessageGrouping = true,\n onPressHeaderLeft = NOOP,\n onPressHeaderSubtitle = NOOP,\n onPressMediaMessage = NOOP,\n onParentMessageDeleted = NOOP,\n onChannelDeleted = NOOP,\n onBeforeSendUserMessage = PASS,\n onBeforeSendFileMessage = PASS,\n onBeforeUpdateUserMessage = PASS,\n onBeforeUpdateFileMessage = PASS,\n channel,\n parentMessage,\n startingPoint,\n keyboardAvoidOffset,\n sortComparator = threadMessageComparator,\n flatListProps,\n }) => {\n const { playerService, recorderService } = usePlatformService();\n const { sdk, currentUser, sbOptions, voiceMessageStatusManager, groupChannelFragmentOptions } = useSendbirdChat();\n\n const [groupChannelThreadPubSub] = useState(() => pubsub<GroupChannelThreadPubSubContextPayload>());\n const [scrolledAwayFromBottom, setScrolledAwayFromBottom] = useState(false);\n const scrolledAwayFromBottomRef = useRefTracker(scrolledAwayFromBottom);\n\n const toast = useToast();\n const { STRINGS } = useLocalization();\n const [_parentMessage, setParentMessage] = useState(parentMessage);\n\n const {\n loading,\n messages,\n newMessages,\n resetNewMessages,\n loadNext,\n loadPrevious,\n hasNext,\n sendFileMessage,\n sendUserMessage,\n updateFileMessage,\n updateUserMessage,\n resendMessage,\n deleteMessage,\n resetWithStartingPoint,\n } = useGroupChannelThreadMessages(sdk, channel, _parentMessage, {\n shouldCountNewMessages: () => scrolledAwayFromBottomRef.current,\n onMessagesReceived(messages) {\n groupChannelThreadPubSub.publish({ type: 'MESSAGES_RECEIVED', data: { messages } });\n },\n onMessagesUpdated(messages) {\n groupChannelThreadPubSub.publish({ type: 'MESSAGES_UPDATED', data: { messages } });\n },\n onParentMessageUpdated(parentMessage) {\n setParentMessage(parentMessage);\n },\n onParentMessageDeleted: () => {\n toast.show(STRINGS.TOAST.THREAD_PARENT_MESSAGE_DELETED_ERROR, 'error');\n onParentMessageDeleted?.();\n },\n onChannelDeleted,\n onCurrentUserBanned: onChannelDeleted,\n sortComparator,\n markAsRead: confirmAndMarkAsRead,\n isReactionEnabled: sbOptions.uikit.groupChannel.channel.enableReactions,\n startingPoint,\n });\n\n const onBlurFragment = () => {\n return Promise.allSettled([playerService.reset(), recorderService.reset()]);\n };\n const _onPressHeaderLeft = useFreshCallback(async () => {\n await onBlurFragment();\n voiceMessageStatusManager.publishAll();\n onPressHeaderLeft();\n });\n const _onPressHeaderSubtitle = useFreshCallback(async () => {\n await onBlurFragment();\n voiceMessageStatusManager.publishAll();\n groupChannelFragmentOptions.pubsub.publish({\n type: 'OVERRIDE_SEARCH_ITEM_STARTING_POINT',\n data: { startingPoint: parentMessage.createdAt },\n });\n onPressHeaderSubtitle();\n });\n const _onPressMediaMessage: NonNullable<GroupChannelThreadProps['MessageList']['onPressMediaMessage']> =\n useFreshCallback(async (message, deleteMessage, uri) => {\n await onBlurFragment();\n onPressMediaMessage(message, deleteMessage, uri);\n });\n\n useEffect(() => {\n return () => {\n onBlurFragment();\n };\n }, []);\n\n const renderItem: GroupChannelThreadProps['MessageList']['renderMessage'] = useFreshCallback((props) => {\n const content = renderMessage ? (\n renderMessage(props)\n ) : (\n <GroupChannelMessageRenderer hideParentMessage {...props} />\n );\n return <Box>{content}</Box>;\n });\n\n const memoizedFlatListProps = useMemo(\n () => ({\n ListHeaderComponent: (\n <GroupChannelThreadModule.ParentMessageInfo\n channel={channel}\n currentUserId={currentUser?.userId}\n onDeleteMessage={deleteMessage}\n onPressMediaMessage={_onPressMediaMessage}\n />\n ),\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }),\n [flatListProps],\n );\n\n const onResetMessageList = useCallback(async () => {\n return await resetWithStartingPoint(Number.MAX_SAFE_INTEGER);\n }, []);\n\n const onResetMessageListWithStartingPoint = useCallback(async (startingPoint: number) => {\n return await resetWithStartingPoint(startingPoint);\n }, []);\n\n const onPending = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n groupChannelThreadPubSub.publish({ type: 'MESSAGE_SENT_PENDING', data: { message } });\n };\n\n const onSent = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n groupChannelThreadPubSub.publish({ type: 'MESSAGE_SENT_SUCCESS', data: { message } });\n };\n\n const updateIfParentMessage = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n if (message.messageId === parentMessage.parentMessageId) {\n setParentMessage(message);\n }\n };\n\n const onPressSendUserMessage: GroupChannelThreadProps['Input']['onPressSendUserMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendUserMessage(params);\n const message = await sendUserMessage(processedParams, onPending);\n onSent(message);\n },\n );\n const onPressSendFileMessage: GroupChannelThreadProps['Input']['onPressSendFileMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendFileMessage(params);\n const fileSize = (processedParams.file as File)?.size ?? processedParams.fileSize;\n const uploadSizeLimit = sbOptions.appInfo.uploadSizeLimit;\n\n if (fileSize && uploadSizeLimit && fileSize > uploadSizeLimit) {\n const sizeLimitString = `${getReadableFileSize(uploadSizeLimit)} MB`;\n toast.show(STRINGS.TOAST.FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR(sizeLimitString), 'error');\n return;\n } else {\n const message = await sendFileMessage(processedParams, onPending);\n onSent(message);\n }\n },\n );\n const onPressUpdateUserMessage: GroupChannelThreadProps['Input']['onPressUpdateUserMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateUserMessage(params);\n const updatedMessage = await updateUserMessage(message.messageId, processedParams);\n updateIfParentMessage(updatedMessage);\n },\n );\n const onPressUpdateFileMessage: GroupChannelThreadProps['Input']['onPressUpdateFileMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateFileMessage(params);\n const updatedMessage = await updateFileMessage(message.messageId, processedParams);\n updateIfParentMessage(updatedMessage);\n },\n );\n const onScrolledAwayFromBottom = useFreshCallback((value: boolean) => {\n if (!value) resetNewMessages();\n setScrolledAwayFromBottom(value);\n });\n\n return (\n <GroupChannelThreadModule.Provider\n channel={channel}\n parentMessage={_parentMessage}\n groupChannelThreadPubSub={groupChannelThreadPubSub}\n keyboardAvoidOffset={keyboardAvoidOffset}\n threadedMessages={messages}\n >\n <GroupChannelThreadModule.Header onPressLeft={_onPressHeaderLeft} onPressSubtitle={_onPressHeaderSubtitle} />\n <StatusComposition loading={loading} LoadingComponent={<GroupChannelThreadModule.StatusLoading />}>\n <GroupChannelThreadModule.MessageList\n channel={channel}\n onResetMessageList={onResetMessageList}\n onResetMessageListWithStartingPoint={onResetMessageListWithStartingPoint}\n enableMessageGrouping={enableMessageGrouping}\n currentUserId={currentUser?.userId}\n renderMessage={renderItem}\n messages={messages}\n newMessages={newMessages}\n onTopReached={loadPrevious}\n onBottomReached={loadNext}\n hasNext={hasNext}\n scrolledAwayFromBottom={scrolledAwayFromBottom}\n onScrolledAwayFromBottom={onScrolledAwayFromBottom}\n onResendFailedMessage={resendMessage}\n onDeleteMessage={deleteMessage}\n onPressMediaMessage={_onPressMediaMessage}\n flatListProps={memoizedFlatListProps}\n startingPoint={startingPoint}\n />\n <GroupChannelThreadModule.Input\n SuggestedMentionList={GroupChannelThreadModule.SuggestedMentionList}\n shouldRenderInput={shouldRenderInput(channel)}\n onPressSendUserMessage={onPressSendUserMessage}\n onPressSendFileMessage={onPressSendFileMessage}\n onPressUpdateUserMessage={onPressUpdateUserMessage}\n onPressUpdateFileMessage={onPressUpdateFileMessage}\n />\n </StatusComposition>\n </GroupChannelThreadModule.Provider>\n );\n };\n};\n\nfunction shouldRenderInput(channel: SendbirdGroupChannel) {\n if (channel.isBroadcast) {\n return channel.myRole === 'operator';\n }\n\n return true;\n}\n\nexport function threadMessageComparator(a: SendbirdMessage, b: SendbirdMessage) {\n return messageComparator(a, b) * -1;\n}\n\nexport default createGroupChannelThreadFragment;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useCallback","useEffect","useMemo","useState","Box","useToast","useGroupChannelThreadMessages","getReadableFileSize","NOOP","PASS","confirmAndMarkAsRead","messageComparator","useFreshCallback","useRefTracker","GroupChannelMessageRenderer","StatusComposition","createGroupChannelThreadModule","useLocalization","usePlatformService","useSendbirdChat","pubsub","createGroupChannelThreadFragment","initModule","GroupChannelThreadModule","_ref","renderMessage","enableMessageGrouping","onPressHeaderLeft","onPressHeaderSubtitle","onPressMediaMessage","onParentMessageDeleted","onChannelDeleted","onBeforeSendUserMessage","onBeforeSendFileMessage","onBeforeUpdateUserMessage","onBeforeUpdateFileMessage","channel","parentMessage","startingPoint","keyboardAvoidOffset","sortComparator","threadMessageComparator","flatListProps","playerService","recorderService","sdk","currentUser","sbOptions","voiceMessageStatusManager","groupChannelFragmentOptions","groupChannelThreadPubSub","scrolledAwayFromBottom","setScrolledAwayFromBottom","scrolledAwayFromBottomRef","toast","STRINGS","_parentMessage","setParentMessage","loading","messages","newMessages","resetNewMessages","loadNext","loadPrevious","hasNext","sendFileMessage","sendUserMessage","updateFileMessage","updateUserMessage","resendMessage","deleteMessage","resetWithStartingPoint","shouldCountNewMessages","current","onMessagesReceived","publish","type","data","onMessagesUpdated","onParentMessageUpdated","show","TOAST","THREAD_PARENT_MESSAGE_DELETED_ERROR","onCurrentUserBanned","markAsRead","isReactionEnabled","uikit","groupChannel","enableReactions","onBlurFragment","reset","catch","_onPressHeaderLeft","publishAll","_onPressHeaderSubtitle","createdAt","_onPressMediaMessage","message","uri","renderItem","props","content","createElement","_extends","hideParentMessage","memoizedFlatListProps","ListHeaderComponent","ParentMessageInfo","currentUserId","userId","onDeleteMessage","contentContainerStyle","flexGrow","onResetMessageList","Number","MAX_SAFE_INTEGER","onResetMessageListWithStartingPoint","onPending","onSent","updateIfParentMessage","messageId","parentMessageId","onPressSendUserMessage","params","processedParams","onPressSendFileMessage","_processedParams$file","fileSize","file","size","uploadSizeLimit","appInfo","sizeLimitString","FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR","onPressUpdateUserMessage","updatedMessage","onPressUpdateFileMessage","onScrolledAwayFromBottom","value","Provider","threadedMessages","Header","onPressLeft","onPressSubtitle","LoadingComponent","StatusLoading","MessageList","onTopReached","onBottomReached","onResendFailedMessage","Input","SuggestedMentionList","shouldRenderInput","isBroadcast","myRole","a","b"],"sources":["createGroupChannelThreadFragment.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { Box, useToast } from '@sendbird/uikit-react-native-foundation';\nimport { useGroupChannelThreadMessages } from '@sendbird/uikit-tools';\nimport {\n SendbirdFileMessage,\n SendbirdGroupChannel,\n type SendbirdMessage,\n SendbirdUserMessage,\n getReadableFileSize,\n} from '@sendbird/uikit-utils';\nimport {\n NOOP,\n PASS,\n confirmAndMarkAsRead,\n messageComparator,\n useFreshCallback,\n useRefTracker,\n} from '@sendbird/uikit-utils';\n\nimport GroupChannelMessageRenderer from '../components/GroupChannelMessageRenderer';\nimport StatusComposition from '../components/StatusComposition';\nimport createGroupChannelThreadModule from '../domain/groupChannelThread/module/createGroupChannelThreadModule';\nimport type {\n GroupChannelThreadFragment,\n GroupChannelThreadModule,\n GroupChannelThreadProps,\n GroupChannelThreadPubSubContextPayload,\n} from '../domain/groupChannelThread/types';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../hooks/useContext';\nimport pubsub from '../utils/pubsub';\n\nconst createGroupChannelThreadFragment = (\n initModule?: Partial<GroupChannelThreadModule>,\n): GroupChannelThreadFragment => {\n const GroupChannelThreadModule = createGroupChannelThreadModule(initModule);\n\n return ({\n renderMessage,\n enableMessageGrouping = true,\n onPressHeaderLeft = NOOP,\n onPressHeaderSubtitle = NOOP,\n onPressMediaMessage = NOOP,\n onParentMessageDeleted = NOOP,\n onChannelDeleted = NOOP,\n onBeforeSendUserMessage = PASS,\n onBeforeSendFileMessage = PASS,\n onBeforeUpdateUserMessage = PASS,\n onBeforeUpdateFileMessage = PASS,\n channel,\n parentMessage,\n startingPoint,\n keyboardAvoidOffset,\n sortComparator = threadMessageComparator,\n flatListProps,\n }) => {\n const { playerService, recorderService } = usePlatformService();\n const { sdk, currentUser, sbOptions, voiceMessageStatusManager, groupChannelFragmentOptions } = useSendbirdChat();\n\n const [groupChannelThreadPubSub] = useState(() => pubsub<GroupChannelThreadPubSubContextPayload>());\n const [scrolledAwayFromBottom, setScrolledAwayFromBottom] = useState(false);\n const scrolledAwayFromBottomRef = useRefTracker(scrolledAwayFromBottom);\n\n const toast = useToast();\n const { STRINGS } = useLocalization();\n const [_parentMessage, setParentMessage] = useState(parentMessage);\n\n const {\n loading,\n messages,\n newMessages,\n resetNewMessages,\n loadNext,\n loadPrevious,\n hasNext,\n sendFileMessage,\n sendUserMessage,\n updateFileMessage,\n updateUserMessage,\n resendMessage,\n deleteMessage,\n resetWithStartingPoint,\n } = useGroupChannelThreadMessages(sdk, channel, _parentMessage, {\n shouldCountNewMessages: () => scrolledAwayFromBottomRef.current,\n onMessagesReceived(messages) {\n groupChannelThreadPubSub.publish({ type: 'MESSAGES_RECEIVED', data: { messages } });\n },\n onMessagesUpdated(messages) {\n groupChannelThreadPubSub.publish({ type: 'MESSAGES_UPDATED', data: { messages } });\n },\n onParentMessageUpdated(parentMessage) {\n setParentMessage(parentMessage);\n },\n onParentMessageDeleted: () => {\n toast.show(STRINGS.TOAST.THREAD_PARENT_MESSAGE_DELETED_ERROR, 'error');\n onParentMessageDeleted?.();\n },\n onChannelDeleted,\n onCurrentUserBanned: onChannelDeleted,\n sortComparator,\n markAsRead: confirmAndMarkAsRead,\n isReactionEnabled: sbOptions.uikit.groupChannel.channel.enableReactions,\n startingPoint,\n });\n\n const onBlurFragment = async () => {\n await playerService.reset().catch(() => {});\n await recorderService.reset().catch(() => {});\n };\n const _onPressHeaderLeft = useFreshCallback(async () => {\n await onBlurFragment();\n voiceMessageStatusManager.publishAll();\n onPressHeaderLeft();\n });\n const _onPressHeaderSubtitle = useFreshCallback(async () => {\n await onBlurFragment();\n voiceMessageStatusManager.publishAll();\n groupChannelFragmentOptions.pubsub.publish({\n type: 'OVERRIDE_SEARCH_ITEM_STARTING_POINT',\n data: { startingPoint: parentMessage.createdAt },\n });\n onPressHeaderSubtitle();\n });\n const _onPressMediaMessage: NonNullable<GroupChannelThreadProps['MessageList']['onPressMediaMessage']> =\n useFreshCallback(async (message, deleteMessage, uri) => {\n await onBlurFragment();\n onPressMediaMessage(message, deleteMessage, uri);\n });\n\n useEffect(() => {\n return () => {\n onBlurFragment();\n };\n }, []);\n\n const renderItem: GroupChannelThreadProps['MessageList']['renderMessage'] = useFreshCallback((props) => {\n const content = renderMessage ? (\n renderMessage(props)\n ) : (\n <GroupChannelMessageRenderer hideParentMessage {...props} />\n );\n return <Box>{content}</Box>;\n });\n\n const memoizedFlatListProps = useMemo(\n () => ({\n ListHeaderComponent: (\n <GroupChannelThreadModule.ParentMessageInfo\n channel={channel}\n currentUserId={currentUser?.userId}\n onDeleteMessage={deleteMessage}\n onPressMediaMessage={_onPressMediaMessage}\n />\n ),\n contentContainerStyle: { flexGrow: 1 },\n ...flatListProps,\n }),\n [flatListProps],\n );\n\n const onResetMessageList = useCallback(async () => {\n return await resetWithStartingPoint(Number.MAX_SAFE_INTEGER);\n }, []);\n\n const onResetMessageListWithStartingPoint = useCallback(async (startingPoint: number) => {\n return await resetWithStartingPoint(startingPoint);\n }, []);\n\n const onPending = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n groupChannelThreadPubSub.publish({ type: 'MESSAGE_SENT_PENDING', data: { message } });\n };\n\n const onSent = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n groupChannelThreadPubSub.publish({ type: 'MESSAGE_SENT_SUCCESS', data: { message } });\n };\n\n const updateIfParentMessage = (message: SendbirdFileMessage | SendbirdUserMessage) => {\n if (message.messageId === parentMessage.parentMessageId) {\n setParentMessage(message);\n }\n };\n\n const onPressSendUserMessage: GroupChannelThreadProps['Input']['onPressSendUserMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendUserMessage(params);\n const message = await sendUserMessage(processedParams, onPending);\n onSent(message);\n },\n );\n const onPressSendFileMessage: GroupChannelThreadProps['Input']['onPressSendFileMessage'] = useFreshCallback(\n async (params) => {\n const processedParams = await onBeforeSendFileMessage(params);\n const fileSize = (processedParams.file as File)?.size ?? processedParams.fileSize;\n const uploadSizeLimit = sbOptions.appInfo.uploadSizeLimit;\n\n if (fileSize && uploadSizeLimit && fileSize > uploadSizeLimit) {\n const sizeLimitString = `${getReadableFileSize(uploadSizeLimit)} MB`;\n toast.show(STRINGS.TOAST.FILE_UPLOAD_SIZE_LIMIT_EXCEEDED_ERROR(sizeLimitString), 'error');\n return;\n } else {\n const message = await sendFileMessage(processedParams, onPending);\n onSent(message);\n }\n },\n );\n const onPressUpdateUserMessage: GroupChannelThreadProps['Input']['onPressUpdateUserMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateUserMessage(params);\n const updatedMessage = await updateUserMessage(message.messageId, processedParams);\n updateIfParentMessage(updatedMessage);\n },\n );\n const onPressUpdateFileMessage: GroupChannelThreadProps['Input']['onPressUpdateFileMessage'] = useFreshCallback(\n async (message, params) => {\n const processedParams = await onBeforeUpdateFileMessage(params);\n const updatedMessage = await updateFileMessage(message.messageId, processedParams);\n updateIfParentMessage(updatedMessage);\n },\n );\n const onScrolledAwayFromBottom = useFreshCallback((value: boolean) => {\n if (!value) resetNewMessages();\n setScrolledAwayFromBottom(value);\n });\n\n return (\n <GroupChannelThreadModule.Provider\n channel={channel}\n parentMessage={_parentMessage}\n groupChannelThreadPubSub={groupChannelThreadPubSub}\n keyboardAvoidOffset={keyboardAvoidOffset}\n threadedMessages={messages}\n >\n <GroupChannelThreadModule.Header onPressLeft={_onPressHeaderLeft} onPressSubtitle={_onPressHeaderSubtitle} />\n <StatusComposition loading={loading} LoadingComponent={<GroupChannelThreadModule.StatusLoading />}>\n <GroupChannelThreadModule.MessageList\n channel={channel}\n onResetMessageList={onResetMessageList}\n onResetMessageListWithStartingPoint={onResetMessageListWithStartingPoint}\n enableMessageGrouping={enableMessageGrouping}\n currentUserId={currentUser?.userId}\n renderMessage={renderItem}\n messages={messages}\n newMessages={newMessages}\n onTopReached={loadPrevious}\n onBottomReached={loadNext}\n hasNext={hasNext}\n scrolledAwayFromBottom={scrolledAwayFromBottom}\n onScrolledAwayFromBottom={onScrolledAwayFromBottom}\n onResendFailedMessage={resendMessage}\n onDeleteMessage={deleteMessage}\n onPressMediaMessage={_onPressMediaMessage}\n flatListProps={memoizedFlatListProps}\n startingPoint={startingPoint}\n />\n <GroupChannelThreadModule.Input\n SuggestedMentionList={GroupChannelThreadModule.SuggestedMentionList}\n shouldRenderInput={shouldRenderInput(channel)}\n onPressSendUserMessage={onPressSendUserMessage}\n onPressSendFileMessage={onPressSendFileMessage}\n onPressUpdateUserMessage={onPressUpdateUserMessage}\n onPressUpdateFileMessage={onPressUpdateFileMessage}\n />\n </StatusComposition>\n </GroupChannelThreadModule.Provider>\n );\n };\n};\n\nfunction shouldRenderInput(channel: SendbirdGroupChannel) {\n if (channel.isBroadcast) {\n return channel.myRole === 'operator';\n }\n\n return true;\n}\n\nexport function threadMessageComparator(a: SendbirdMessage, b: SendbirdMessage) {\n return messageComparator(a, b) * -1;\n}\n\nexport default createGroupChannelThreadFragment;\n"],"mappings":"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"}
@@ -51,7 +51,7 @@ const useConnection = () => {
51
51
  Logger.warn('[useConnection]', 'autoPushToken Registration failure', e);
52
52
  });
53
53
  }
54
- await Promise.allSettled([initEmoji(sdk, emojiManager), initDashboardConfigs(sdk)]);
54
+ await Promise.all([initEmoji(sdk, emojiManager).catch(() => Logger.info('[useConnection]', 'initEmoji failure')), initDashboardConfigs(sdk).catch(() => Logger.info('[useConnection]', 'initDashboardConfigs failure'))]);
55
55
  Logger.debug('[useConnection]', 'connected! (online)');
56
56
  setCurrentUser(user);
57
57
  return user;
@@ -63,7 +63,7 @@ const useConnection = () => {
63
63
  Logger.warn('[useConnection]', 'clear cached-data');
64
64
  await sdk.clearCachedData().catch(e => Logger.warn('[useConnection]', 'clear cached-data failure', e));
65
65
  } else if (sdk.currentUser) {
66
- await Promise.allSettled([initEmoji(sdk, emojiManager), initDashboardConfigs(sdk)]);
66
+ await Promise.all([initEmoji(sdk, emojiManager).catch(() => Logger.info('[useConnection]', 'initEmoji failure')), initDashboardConfigs(sdk).catch(() => Logger.info('[useConnection]', 'initDashboardConfigs failure'))]);
67
67
  Logger.debug('[useConnection]', 'connected! (offline)');
68
68
  setCurrentUser(sdk.currentUser);
69
69
  return sdk.currentUser;