@sendbird/uikit-react-native 3.7.3 → 3.7.5

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 (143) hide show
  1. package/README.md +5 -4
  2. package/lib/commonjs/components/ChannelInput/SendInput.js +2 -1
  3. package/lib/commonjs/components/ChannelInput/SendInput.js.map +1 -1
  4. package/lib/commonjs/components/ChannelInput/VoiceMessageInput.js +33 -23
  5. package/lib/commonjs/components/ChannelInput/VoiceMessageInput.js.map +1 -1
  6. package/lib/commonjs/components/ChannelInput/index.js +11 -5
  7. package/lib/commonjs/components/ChannelInput/index.js.map +1 -1
  8. package/lib/commonjs/components/ChannelMessageList/index.js +6 -1
  9. package/lib/commonjs/components/ChannelMessageList/index.js.map +1 -1
  10. package/lib/commonjs/components/ChannelThreadMessageList/index.js +6 -1
  11. package/lib/commonjs/components/ChannelThreadMessageList/index.js.map +1 -1
  12. package/lib/commonjs/components/FileViewer/FileViewerContent.js +1 -1
  13. package/lib/commonjs/components/FileViewer/FileViewerContent.js.map +1 -1
  14. package/lib/commonjs/components/FileViewer/FileViewerFooter.js +1 -0
  15. package/lib/commonjs/components/FileViewer/FileViewerFooter.js.map +1 -1
  16. package/lib/commonjs/components/FileViewer/FileViewerHeader.js +1 -0
  17. package/lib/commonjs/components/FileViewer/FileViewerHeader.js.map +1 -1
  18. package/lib/commonjs/components/GroupChannelMessageRenderer/index.js +1 -1
  19. package/lib/commonjs/components/GroupChannelMessageRenderer/index.js.map +1 -1
  20. package/lib/commonjs/components/ReactionAddons/BottomSheetReactionAddon.js +9 -3
  21. package/lib/commonjs/components/ReactionAddons/BottomSheetReactionAddon.js.map +1 -1
  22. package/lib/commonjs/components/ReactionBottomSheets/ReactionListBottomSheet.js +9 -3
  23. package/lib/commonjs/components/ReactionBottomSheets/ReactionListBottomSheet.js.map +1 -1
  24. package/lib/commonjs/components/ThreadParentMessageRenderer/index.js +1 -1
  25. package/lib/commonjs/components/ThreadParentMessageRenderer/index.js.map +1 -1
  26. package/lib/commonjs/containers/SendbirdUIKitContainer.js +0 -1
  27. package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
  28. package/lib/commonjs/contexts/PlatformServiceCtx.js +2 -1
  29. package/lib/commonjs/contexts/PlatformServiceCtx.js.map +1 -1
  30. package/lib/commonjs/contexts/SBUHandlersCtx.js.map +1 -1
  31. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +17 -3
  32. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  33. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +8 -4
  34. package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  35. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadMessageList.js +16 -2
  36. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadMessageList.js.map +1 -1
  37. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js +8 -3
  38. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js.map +1 -1
  39. package/lib/commonjs/fragments/createGroupChannelFragment.js +3 -2
  40. package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
  41. package/lib/commonjs/fragments/createGroupChannelThreadFragment.js +3 -2
  42. package/lib/commonjs/fragments/createGroupChannelThreadFragment.js.map +1 -1
  43. package/lib/commonjs/hooks/useConnection.js +2 -2
  44. package/lib/commonjs/hooks/useConnection.js.map +1 -1
  45. package/lib/commonjs/hooks/usePushTokenRegistration.js +24 -6
  46. package/lib/commonjs/hooks/usePushTokenRegistration.js.map +1 -1
  47. package/lib/commonjs/platform/createFileService.native.js +2 -2
  48. package/lib/commonjs/platform/createFileService.native.js.map +1 -1
  49. package/lib/commonjs/platform/createPlayerService.expo.js +8 -2
  50. package/lib/commonjs/platform/createPlayerService.expo.js.map +1 -1
  51. package/lib/commonjs/platform/createPlayerService.native.js +12 -7
  52. package/lib/commonjs/platform/createPlayerService.native.js.map +1 -1
  53. package/lib/commonjs/platform/createRecorderService.native.js +8 -2
  54. package/lib/commonjs/platform/createRecorderService.native.js.map +1 -1
  55. package/lib/commonjs/version.js +1 -1
  56. package/lib/commonjs/version.js.map +1 -1
  57. package/lib/module/components/ChannelInput/SendInput.js +2 -1
  58. package/lib/module/components/ChannelInput/SendInput.js.map +1 -1
  59. package/lib/module/components/ChannelInput/VoiceMessageInput.js +34 -24
  60. package/lib/module/components/ChannelInput/VoiceMessageInput.js.map +1 -1
  61. package/lib/module/components/ChannelInput/index.js +12 -6
  62. package/lib/module/components/ChannelInput/index.js.map +1 -1
  63. package/lib/module/components/ChannelMessageList/index.js +6 -1
  64. package/lib/module/components/ChannelMessageList/index.js.map +1 -1
  65. package/lib/module/components/ChannelThreadMessageList/index.js +6 -1
  66. package/lib/module/components/ChannelThreadMessageList/index.js.map +1 -1
  67. package/lib/module/components/FileViewer/FileViewerContent.js +1 -1
  68. package/lib/module/components/FileViewer/FileViewerContent.js.map +1 -1
  69. package/lib/module/components/FileViewer/FileViewerFooter.js +1 -0
  70. package/lib/module/components/FileViewer/FileViewerFooter.js.map +1 -1
  71. package/lib/module/components/FileViewer/FileViewerHeader.js +1 -0
  72. package/lib/module/components/FileViewer/FileViewerHeader.js.map +1 -1
  73. package/lib/module/components/GroupChannelMessageRenderer/index.js +1 -1
  74. package/lib/module/components/GroupChannelMessageRenderer/index.js.map +1 -1
  75. package/lib/module/components/ReactionAddons/BottomSheetReactionAddon.js +10 -4
  76. package/lib/module/components/ReactionAddons/BottomSheetReactionAddon.js.map +1 -1
  77. package/lib/module/components/ReactionBottomSheets/ReactionListBottomSheet.js +9 -3
  78. package/lib/module/components/ReactionBottomSheets/ReactionListBottomSheet.js.map +1 -1
  79. package/lib/module/components/ThreadParentMessageRenderer/index.js +1 -1
  80. package/lib/module/components/ThreadParentMessageRenderer/index.js.map +1 -1
  81. package/lib/module/containers/SendbirdUIKitContainer.js +0 -1
  82. package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
  83. package/lib/module/contexts/PlatformServiceCtx.js +2 -1
  84. package/lib/module/contexts/PlatformServiceCtx.js.map +1 -1
  85. package/lib/module/contexts/SBUHandlersCtx.js.map +1 -1
  86. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +17 -3
  87. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  88. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +8 -4
  89. package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -1
  90. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadMessageList.js +16 -2
  91. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadMessageList.js.map +1 -1
  92. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js +8 -3
  93. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js.map +1 -1
  94. package/lib/module/fragments/createGroupChannelFragment.js +3 -2
  95. package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
  96. package/lib/module/fragments/createGroupChannelThreadFragment.js +3 -2
  97. package/lib/module/fragments/createGroupChannelThreadFragment.js.map +1 -1
  98. package/lib/module/hooks/useConnection.js +2 -2
  99. package/lib/module/hooks/useConnection.js.map +1 -1
  100. package/lib/module/hooks/usePushTokenRegistration.js +24 -6
  101. package/lib/module/hooks/usePushTokenRegistration.js.map +1 -1
  102. package/lib/module/platform/createFileService.native.js +2 -2
  103. package/lib/module/platform/createFileService.native.js.map +1 -1
  104. package/lib/module/platform/createPlayerService.expo.js +9 -3
  105. package/lib/module/platform/createPlayerService.expo.js.map +1 -1
  106. package/lib/module/platform/createPlayerService.native.js +13 -8
  107. package/lib/module/platform/createPlayerService.native.js.map +1 -1
  108. package/lib/module/platform/createRecorderService.native.js +9 -3
  109. package/lib/module/platform/createRecorderService.native.js.map +1 -1
  110. package/lib/module/version.js +1 -1
  111. package/lib/module/version.js.map +1 -1
  112. package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +1 -1
  113. package/lib/typescript/src/contexts/SBUHandlersCtx.d.ts +1 -1
  114. package/lib/typescript/src/version.d.ts +1 -1
  115. package/package.json +6 -6
  116. package/src/components/ChannelInput/SendInput.tsx +2 -1
  117. package/src/components/ChannelInput/VoiceMessageInput.tsx +40 -24
  118. package/src/components/ChannelInput/index.tsx +16 -6
  119. package/src/components/ChannelMessageList/index.tsx +5 -1
  120. package/src/components/ChannelThreadMessageList/index.tsx +5 -1
  121. package/src/components/FileViewer/FileViewerContent.tsx +1 -1
  122. package/src/components/FileViewer/FileViewerFooter.tsx +1 -0
  123. package/src/components/FileViewer/FileViewerHeader.tsx +1 -0
  124. package/src/components/GroupChannelMessageRenderer/index.tsx +1 -1
  125. package/src/components/ReactionAddons/BottomSheetReactionAddon.tsx +13 -5
  126. package/src/components/ReactionBottomSheets/ReactionListBottomSheet.tsx +11 -4
  127. package/src/components/ThreadParentMessageRenderer/index.tsx +1 -1
  128. package/src/containers/SendbirdUIKitContainer.tsx +0 -1
  129. package/src/contexts/PlatformServiceCtx.tsx +2 -1
  130. package/src/contexts/SBUHandlersCtx.tsx +1 -1
  131. package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +19 -3
  132. package/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.tsx +8 -4
  133. package/src/domain/groupChannelThread/component/GroupChannelThreadMessageList.tsx +17 -2
  134. package/src/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.tsx +7 -3
  135. package/src/fragments/createGroupChannelFragment.tsx +3 -2
  136. package/src/fragments/createGroupChannelThreadFragment.tsx +3 -2
  137. package/src/hooks/useConnection.ts +8 -2
  138. package/src/hooks/usePushTokenRegistration.ts +24 -6
  139. package/src/platform/createFileService.native.ts +2 -6
  140. package/src/platform/createPlayerService.expo.tsx +9 -3
  141. package/src/platform/createPlayerService.native.tsx +15 -8
  142. package/src/platform/createRecorderService.native.tsx +9 -3
  143. package/src/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_uikitReactNativeFoundation","_uikitUtils","_ThreadParentMessageRenderer","_interopRequireDefault","_useContext","_moduleContext","_ReactionAddons","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","GroupChannelThreadParentMessageInfo","props","_parentMessage$sender","_parentMessage$thread","channel","parentMessage","setMessageToEdit","useContext","GroupChannelThreadContexts","Fragment","STRINGS","useLocalization","colors","useUIKitTheme","sbOptions","useSendbirdChat","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","View","style","styles","infoAndMenuContainer","Avatar","size","uri","profileUrl","userNickAndTimeContainer","Text","h2","color","onBackground01","numberOfLines","userNickname","caption2","onBackground03","messageTime","TouchableOpacity","activeOpacity","undefined","Icon","icon","onBackground02","renderReplyCount","replyContainer","caption3","replyText","Divider","renderReactionAddons","configs","uikitWithAppInfo","groupChannel","shouldRenderReaction","isSuper","enableReactionsSupergroup","enableReactions","reactionButtonContainer","ReactionAddons","Message","reactionAddonType","messageProps","container","messageContainer","createStyleSheet","flexDirection","height","padding","paddingBottom","flex","marginLeft","marginBottom","marginTop","contextMenuButton","width","justifyContent","paddingHorizontal","paddingVertical","paddingLeft","_ref","handlers","useSBUHandlers","toast","useToast","openSheet","useBottomSheet","alert","useAlert","clipboardService","fileService","usePlatformService","onDeleteFailure","error","show","TOAST","DELETE_MSG_ERROR","Logger","onCopyText","isUserMessage","setString","COPY_OK","onDownloadFile","isFileMessage","toMegabyte","DOWNLOAD_START","save","fileUrl","url","fileName","name","fileType","type","then","response","DOWNLOAD_OK","log","catch","err","DOWNLOAD_ERROR","onOpenFile","getFileType","getFileExtension","includes","getAvailableUriFromFileMessage","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","isMyMessage","sendingStatus","isVoiceMessage","HeaderComponent","isGroupChannel","_ref3","onClose","BottomSheet","_default","React","memo","exports"],"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","_interopRequireWildcard","require","_reactNative","_uikitReactNativeFoundation","_uikitUtils","_ThreadParentMessageRenderer","_interopRequireDefault","_useContext","_SBUUtils","_moduleContext","_ReactionAddons","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","GroupChannelThreadParentMessageInfo","props","_parentMessage$sender","_parentMessage$thread","channel","parentMessage","setMessageToEdit","useContext","GroupChannelThreadContexts","Fragment","STRINGS","useLocalization","colors","useUIKitTheme","sbOptions","useSendbirdChat","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","View","style","styles","infoAndMenuContainer","Avatar","size","uri","profileUrl","userNickAndTimeContainer","Text","h2","color","onBackground01","numberOfLines","userNickname","caption2","onBackground03","messageTime","TouchableOpacity","activeOpacity","undefined","Icon","icon","onBackground02","renderReplyCount","replyContainer","caption3","replyText","Divider","renderReactionAddons","configs","uikitWithAppInfo","groupChannel","shouldRenderReaction","isSuper","enableReactionsSupergroup","enableReactions","reactionButtonContainer","ReactionAddons","Message","reactionAddonType","messageProps","container","messageContainer","createStyleSheet","flexDirection","height","padding","paddingBottom","flex","marginLeft","marginBottom","marginTop","contextMenuButton","width","justifyContent","paddingHorizontal","paddingVertical","paddingLeft","_ref","handlers","useSBUHandlers","toast","useToast","openSheet","useBottomSheet","alert","useAlert","clipboardService","fileService","usePlatformService","onDeleteFailure","error","show","TOAST","DELETE_MSG_ERROR","Logger","onCopyText","isUserMessage","setString","COPY_OK","onDownloadFile","isFileMessage","toMegabyte","DOWNLOAD_START","save","fileUrl","url","fileName","name","fileType","type","then","response","DOWNLOAD_OK","log","catch","err","DOWNLOAD_ERROR","onOpenFile","getFileType","getFileExtension","includes","_handlers$onOpenFileU","getAvailableUriFromFileMessage","onOpenFileURL","openFile","SBUUtils","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","isMyMessage","sendingStatus","isVoiceMessage","HeaderComponent","isGroupChannel","_ref3","onClose","BottomSheet","_default","React","memo","exports"],"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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"}
@@ -113,8 +113,9 @@ const createGroupChannelFragment = initModule => {
113
113
  replyType,
114
114
  startingPoint: internalSearchItem === null || internalSearchItem === void 0 ? void 0 : internalSearchItem.startingPoint
115
115
  });
116
- const onBlurFragment = () => {
117
- return Promise.allSettled([playerService.reset(), recorderService.reset()]);
116
+ const onBlurFragment = async () => {
117
+ await playerService.reset().catch(() => {});
118
+ await recorderService.reset().catch(() => {});
118
119
  };
119
120
  const _onPressHeaderLeft = (0, _uikitUtils.useFreshCallback)(async () => {
120
121
  voiceMessageStatusManager.clear();
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_groupChannel","_message","_uikitReactNativeFoundation","_uikitTools","_uikitUtils","_GroupChannelMessageRenderer","_NewMessagesButton","_interopRequireDefault","_ScrollToBottomButton","_StatusComposition","_createGroupChannelModule","_useContext","_pubsub","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","createGroupChannelFragment","initModule","GroupChannelModule","createGroupChannelModule","_ref","searchItem","renderNewMessagesButton","props","createElement","renderScrollToBottomButton","renderMessage","enableMessageGrouping","enableTypingIndicator","onPressHeaderLeft","NOOP","onPressHeaderRight","onPressMediaMessage","onChannelDeleted","onPressReplyMessageInThread","onBeforeSendUserMessage","PASS","onBeforeSendFileMessage","onBeforeUpdateUserMessage","onBeforeUpdateFileMessage","channel","keyboardAvoidOffset","sortComparator","messageComparator","flatListProps","messageListQueryParams","collectionCreator","playerService","recorderService","usePlatformService","sdk","currentUser","sbOptions","voiceMessageStatusManager","useSendbirdChat","toast","useToast","STRINGS","useLocalization","internalSearchItem","setInternalSearchItem","useState","navigateFromMessageSearch","useCallback","Boolean","groupChannelPubSub","pubsub","scrolledAwayFromBottom","setScrolledAwayFromBottom","scrolledAwayFromBottomRef","useRefTracker","replyType","useIIFE","uikit","groupChannel","ReplyType","NONE","ONLY_REPLY_TO_CHANNEL","loading","messages","newMessages","resetNewMessages","loadNext","loadPrevious","hasNext","sendFileMessage","sendUserMessage","updateFileMessage","updateUserMessage","resendMessage","deleteMessage","resetWithStartingPoint","useGroupChannelMessages","shouldCountNewMessages","current","onMessagesReceived","publish","type","data","onMessagesUpdated","onCurrentUserBanned","getCollectionCreator","markAsRead","confirmAndMarkAsRead","startingPoint","onBlurFragment","Promise","allSettled","reset","_onPressHeaderLeft","useFreshCallback","clear","_onPressHeaderRight","_onPressMediaMessage","message","uri","_onPressReplyMessageInThread","useEffect","renderItem","content","Box","isFirstItem","GroupChannelTypingIndicatorBubble","memoizedFlatListProps","useMemo","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","getReadableFileSize","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","MessageFilter","_default","exports"],"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","_interopRequireWildcard","require","_groupChannel","_message","_uikitReactNativeFoundation","_uikitTools","_uikitUtils","_GroupChannelMessageRenderer","_NewMessagesButton","_interopRequireDefault","_ScrollToBottomButton","_StatusComposition","_createGroupChannelModule","_useContext","_pubsub","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","createGroupChannelFragment","initModule","GroupChannelModule","createGroupChannelModule","_ref","searchItem","renderNewMessagesButton","props","createElement","renderScrollToBottomButton","renderMessage","enableMessageGrouping","enableTypingIndicator","onPressHeaderLeft","NOOP","onPressHeaderRight","onPressMediaMessage","onChannelDeleted","onPressReplyMessageInThread","onBeforeSendUserMessage","PASS","onBeforeSendFileMessage","onBeforeUpdateUserMessage","onBeforeUpdateFileMessage","channel","keyboardAvoidOffset","sortComparator","messageComparator","flatListProps","messageListQueryParams","collectionCreator","playerService","recorderService","usePlatformService","sdk","currentUser","sbOptions","voiceMessageStatusManager","useSendbirdChat","toast","useToast","STRINGS","useLocalization","internalSearchItem","setInternalSearchItem","useState","navigateFromMessageSearch","useCallback","Boolean","groupChannelPubSub","pubsub","scrolledAwayFromBottom","setScrolledAwayFromBottom","scrolledAwayFromBottomRef","useRefTracker","replyType","useIIFE","uikit","groupChannel","ReplyType","NONE","ONLY_REPLY_TO_CHANNEL","loading","messages","newMessages","resetNewMessages","loadNext","loadPrevious","hasNext","sendFileMessage","sendUserMessage","updateFileMessage","updateUserMessage","resendMessage","deleteMessage","resetWithStartingPoint","useGroupChannelMessages","shouldCountNewMessages","current","onMessagesReceived","publish","type","data","onMessagesUpdated","onCurrentUserBanned","getCollectionCreator","markAsRead","confirmAndMarkAsRead","startingPoint","onBlurFragment","reset","catch","_onPressHeaderLeft","useFreshCallback","clear","_onPressHeaderRight","_onPressMediaMessage","message","uri","_onPressReplyMessageInThread","useEffect","renderItem","content","Box","isFirstItem","GroupChannelTypingIndicatorBubble","memoizedFlatListProps","useMemo","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","getReadableFileSize","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","MessageFilter","_default","exports"],"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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"}
@@ -106,8 +106,9 @@ const createGroupChannelThreadFragment = initModule => {
106
106
  isReactionEnabled: sbOptions.uikit.groupChannel.channel.enableReactions,
107
107
  startingPoint
108
108
  });
109
- const onBlurFragment = () => {
110
- return Promise.allSettled([playerService.reset(), recorderService.reset()]);
109
+ const onBlurFragment = async () => {
110
+ await playerService.reset().catch(() => {});
111
+ await recorderService.reset().catch(() => {});
111
112
  };
112
113
  const _onPressHeaderLeft = (0, _uikitUtils.useFreshCallback)(async () => {
113
114
  await onBlurFragment();
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_uikitReactNativeFoundation","_uikitTools","_uikitUtils","_GroupChannelMessageRenderer","_interopRequireDefault","_StatusComposition","_createGroupChannelThreadModule","_useContext","_pubsub","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","createGroupChannelThreadFragment","initModule","GroupChannelThreadModule","createGroupChannelThreadModule","_ref","renderMessage","enableMessageGrouping","onPressHeaderLeft","NOOP","onPressHeaderSubtitle","onPressMediaMessage","onParentMessageDeleted","onChannelDeleted","onBeforeSendUserMessage","PASS","onBeforeSendFileMessage","onBeforeUpdateUserMessage","onBeforeUpdateFileMessage","channel","parentMessage","startingPoint","keyboardAvoidOffset","sortComparator","threadMessageComparator","flatListProps","playerService","recorderService","usePlatformService","sdk","currentUser","sbOptions","voiceMessageStatusManager","groupChannelFragmentOptions","useSendbirdChat","groupChannelThreadPubSub","useState","pubsub","scrolledAwayFromBottom","setScrolledAwayFromBottom","scrolledAwayFromBottomRef","useRefTracker","toast","useToast","STRINGS","useLocalization","_parentMessage","setParentMessage","loading","messages","newMessages","resetNewMessages","loadNext","loadPrevious","hasNext","sendFileMessage","sendUserMessage","updateFileMessage","updateUserMessage","resendMessage","deleteMessage","resetWithStartingPoint","useGroupChannelThreadMessages","shouldCountNewMessages","current","onMessagesReceived","publish","type","data","onMessagesUpdated","onParentMessageUpdated","show","TOAST","THREAD_PARENT_MESSAGE_DELETED_ERROR","onCurrentUserBanned","markAsRead","confirmAndMarkAsRead","isReactionEnabled","uikit","groupChannel","enableReactions","onBlurFragment","Promise","allSettled","reset","_onPressHeaderLeft","useFreshCallback","publishAll","_onPressHeaderSubtitle","createdAt","_onPressMediaMessage","message","uri","useEffect","renderItem","props","content","createElement","hideParentMessage","Box","memoizedFlatListProps","useMemo","ListHeaderComponent","ParentMessageInfo","currentUserId","userId","onDeleteMessage","contentContainerStyle","flexGrow","onResetMessageList","useCallback","Number","MAX_SAFE_INTEGER","onResetMessageListWithStartingPoint","onPending","onSent","updateIfParentMessage","messageId","parentMessageId","onPressSendUserMessage","params","processedParams","onPressSendFileMessage","_processedParams$file","fileSize","file","size","uploadSizeLimit","appInfo","sizeLimitString","getReadableFileSize","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","messageComparator","_default","exports"],"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","_interopRequireWildcard","require","_uikitReactNativeFoundation","_uikitTools","_uikitUtils","_GroupChannelMessageRenderer","_interopRequireDefault","_StatusComposition","_createGroupChannelThreadModule","_useContext","_pubsub","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","createGroupChannelThreadFragment","initModule","GroupChannelThreadModule","createGroupChannelThreadModule","_ref","renderMessage","enableMessageGrouping","onPressHeaderLeft","NOOP","onPressHeaderSubtitle","onPressMediaMessage","onParentMessageDeleted","onChannelDeleted","onBeforeSendUserMessage","PASS","onBeforeSendFileMessage","onBeforeUpdateUserMessage","onBeforeUpdateFileMessage","channel","parentMessage","startingPoint","keyboardAvoidOffset","sortComparator","threadMessageComparator","flatListProps","playerService","recorderService","usePlatformService","sdk","currentUser","sbOptions","voiceMessageStatusManager","groupChannelFragmentOptions","useSendbirdChat","groupChannelThreadPubSub","useState","pubsub","scrolledAwayFromBottom","setScrolledAwayFromBottom","scrolledAwayFromBottomRef","useRefTracker","toast","useToast","STRINGS","useLocalization","_parentMessage","setParentMessage","loading","messages","newMessages","resetNewMessages","loadNext","loadPrevious","hasNext","sendFileMessage","sendUserMessage","updateFileMessage","updateUserMessage","resendMessage","deleteMessage","resetWithStartingPoint","useGroupChannelThreadMessages","shouldCountNewMessages","current","onMessagesReceived","publish","type","data","onMessagesUpdated","onParentMessageUpdated","show","TOAST","THREAD_PARENT_MESSAGE_DELETED_ERROR","onCurrentUserBanned","markAsRead","confirmAndMarkAsRead","isReactionEnabled","uikit","groupChannel","enableReactions","onBlurFragment","reset","catch","_onPressHeaderLeft","useFreshCallback","publishAll","_onPressHeaderSubtitle","createdAt","_onPressMediaMessage","message","uri","useEffect","renderItem","props","content","createElement","hideParentMessage","Box","memoizedFlatListProps","useMemo","ListHeaderComponent","ParentMessageInfo","currentUserId","userId","onDeleteMessage","contentContainerStyle","flexGrow","onResetMessageList","useCallback","Number","MAX_SAFE_INTEGER","onResetMessageListWithStartingPoint","onPending","onSent","updateIfParentMessage","messageId","parentMessageId","onPressSendUserMessage","params","processedParams","onPressSendFileMessage","_processedParams$file","fileSize","file","size","uploadSizeLimit","appInfo","sizeLimitString","getReadableFileSize","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","messageComparator","_default","exports"],"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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"}
@@ -58,7 +58,7 @@ const useConnection = () => {
58
58
  _uikitUtils.Logger.warn('[useConnection]', 'autoPushToken Registration failure', e);
59
59
  });
60
60
  }
61
- await Promise.allSettled([initEmoji(sdk, emojiManager), initDashboardConfigs(sdk)]);
61
+ await Promise.all([initEmoji(sdk, emojiManager).catch(() => _uikitUtils.Logger.info('[useConnection]', 'initEmoji failure')), initDashboardConfigs(sdk).catch(() => _uikitUtils.Logger.info('[useConnection]', 'initDashboardConfigs failure'))]);
62
62
  _uikitUtils.Logger.debug('[useConnection]', 'connected! (online)');
63
63
  setCurrentUser(user);
64
64
  return user;
@@ -70,7 +70,7 @@ const useConnection = () => {
70
70
  _uikitUtils.Logger.warn('[useConnection]', 'clear cached-data');
71
71
  await sdk.clearCachedData().catch(e => _uikitUtils.Logger.warn('[useConnection]', 'clear cached-data failure', e));
72
72
  } else if (sdk.currentUser) {
73
- await Promise.allSettled([initEmoji(sdk, emojiManager), initDashboardConfigs(sdk)]);
73
+ await Promise.all([initEmoji(sdk, emojiManager).catch(() => _uikitUtils.Logger.info('[useConnection]', 'initEmoji failure')), initDashboardConfigs(sdk).catch(() => _uikitUtils.Logger.info('[useConnection]', 'initDashboardConfigs failure'))]);
74
74
  _uikitUtils.Logger.debug('[useConnection]', 'connected! (offline)');
75
75
  setCurrentUser(sdk.currentUser);
76
76
  return sdk.currentUser;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_uikitTools","_uikitUtils","_useContext","_usePushTokenRegistration","_interopRequireDefault","obj","__esModule","default","cacheRestrictCodes","isCacheRestrictedError","error","some","code","initEmoji","sdk","emojiManager","_sdk$appInfo","init","appInfo","emojiHash","container","getAllEmoji","useConnection","initDashboardConfigs","useUIKitConfig","setCurrentUser","sbOptions","useSendbirdChat","registerPushTokenForCurrentUser","unregisterPushTokenForCurrentUser","usePushTokenRegistration","connect","useCallback","userId","opts","Logger","debug","user","accessToken","nickname","updateCurrentUserInfo","then","updatedUser","catch","e","warn","chat","useUserIdForNicknameEnabled","autoPushTokenRegistrationEnabled","Promise","allSettled","isCacheEnabled","message","clearCachedData","currentUser","disconnect","undefined","reconnect","_default","exports"],"sources":["useConnection.ts"],"sourcesContent":["import { useCallback } from 'react';\n\nimport { useUIKitConfig } from '@sendbird/uikit-tools';\nimport { Logger, SendbirdChatSDK, SendbirdError, SendbirdUser } from '@sendbird/uikit-utils';\n\nimport type EmojiManager from '../libs/EmojiManager';\nimport { useSendbirdChat } from './useContext';\nimport usePushTokenRegistration from './usePushTokenRegistration';\n\ntype ConnectOptions = { nickname?: string; accessToken?: string };\n\nconst cacheRestrictCodes = [400300, 400301, 400302, 400310];\nfunction isCacheRestrictedError(error: SendbirdError) {\n return cacheRestrictCodes.some((code) => error.code === code);\n}\n\nasync function initEmoji(sdk: SendbirdChatSDK, emojiManager: EmojiManager) {\n await emojiManager.init();\n if (sdk.appInfo?.emojiHash !== emojiManager.emojiHash) {\n try {\n const container = await sdk.getAllEmoji();\n await emojiManager.init(container);\n } catch {}\n }\n}\n\nconst useConnection = () => {\n const { initDashboardConfigs } = useUIKitConfig();\n const { sdk, emojiManager, setCurrentUser, sbOptions } = useSendbirdChat();\n const { registerPushTokenForCurrentUser, unregisterPushTokenForCurrentUser } = usePushTokenRegistration();\n\n const connect = useCallback(\n async (userId: string, opts?: ConnectOptions): Promise<SendbirdUser> => {\n try {\n Logger.debug('[useConnection]', 'connect start:', userId);\n let user = await sdk.connect(userId, opts?.accessToken);\n\n if (opts?.nickname) {\n Logger.debug('[useConnection]', 'nickname-sync start:', opts.nickname);\n await sdk\n .updateCurrentUserInfo({ nickname: opts.nickname })\n .then((updatedUser) => (user = updatedUser))\n .catch((e) => Logger.warn('[useConnection]', 'nickname-sync failure', e));\n } else if (sbOptions.chat.useUserIdForNicknameEnabled) {\n await sdk.updateCurrentUserInfo({ nickname: userId }).then((updatedUser) => (user = updatedUser));\n }\n\n if (sbOptions.chat.autoPushTokenRegistrationEnabled) {\n Logger.debug('[useConnection]', 'autoPushTokenRegistration enabled, register for current user');\n await registerPushTokenForCurrentUser().catch((e) => {\n Logger.warn('[useConnection]', 'autoPushToken Registration failure', e);\n });\n }\n\n await Promise.allSettled([initEmoji(sdk, emojiManager), initDashboardConfigs(sdk)]);\n\n Logger.debug('[useConnection]', 'connected! (online)');\n setCurrentUser(user);\n\n return user;\n } catch (e) {\n const error = e as unknown as SendbirdError;\n\n if (sdk.isCacheEnabled) {\n if (isCacheRestrictedError(error)) {\n Logger.warn('[useConnection]', 'offline connect restricted', error.message, error.code);\n Logger.warn('[useConnection]', 'clear cached-data');\n await sdk.clearCachedData().catch((e) => Logger.warn('[useConnection]', 'clear cached-data failure', e));\n } else if (sdk.currentUser) {\n await Promise.allSettled([initEmoji(sdk, emojiManager), initDashboardConfigs(sdk)]);\n\n Logger.debug('[useConnection]', 'connected! (offline)');\n setCurrentUser(sdk.currentUser);\n return sdk.currentUser;\n }\n }\n\n Logger.warn('[useConnection]', 'connect failure', error.message, error.code);\n throw error;\n }\n },\n [sdk, registerPushTokenForCurrentUser, sbOptions.chat.autoPushTokenRegistrationEnabled],\n );\n\n const disconnect = useCallback(async () => {\n Logger.debug('[useConnection]', 'disconnect start');\n\n if (sbOptions.chat.autoPushTokenRegistrationEnabled) {\n Logger.debug('[useConnection]', 'autoPushTokenRegistration enabled, unregister for current user');\n await unregisterPushTokenForCurrentUser().catch((e) => {\n Logger.warn('[useConnection]', 'autoPushToken unregister failure', e);\n });\n }\n\n await sdk.disconnect().then(() => setCurrentUser(undefined));\n Logger.debug('[useConnection]', 'disconnected!');\n }, [sdk, unregisterPushTokenForCurrentUser, sbOptions.chat.autoPushTokenRegistrationEnabled]);\n\n return { connect, disconnect, reconnect: () => sdk.reconnect() };\n};\n\nexport default useConnection;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_uikitTools","_uikitUtils","_useContext","_usePushTokenRegistration","_interopRequireDefault","obj","__esModule","default","cacheRestrictCodes","isCacheRestrictedError","error","some","code","initEmoji","sdk","emojiManager","_sdk$appInfo","init","appInfo","emojiHash","container","getAllEmoji","useConnection","initDashboardConfigs","useUIKitConfig","setCurrentUser","sbOptions","useSendbirdChat","registerPushTokenForCurrentUser","unregisterPushTokenForCurrentUser","usePushTokenRegistration","connect","useCallback","userId","opts","Logger","debug","user","accessToken","nickname","updateCurrentUserInfo","then","updatedUser","catch","e","warn","chat","useUserIdForNicknameEnabled","autoPushTokenRegistrationEnabled","Promise","all","info","isCacheEnabled","message","clearCachedData","currentUser","disconnect","undefined","reconnect","_default","exports"],"sources":["useConnection.ts"],"sourcesContent":["import { useCallback } from 'react';\n\nimport { useUIKitConfig } from '@sendbird/uikit-tools';\nimport { Logger, SendbirdChatSDK, SendbirdError, SendbirdUser } from '@sendbird/uikit-utils';\n\nimport type EmojiManager from '../libs/EmojiManager';\nimport { useSendbirdChat } from './useContext';\nimport usePushTokenRegistration from './usePushTokenRegistration';\n\ntype ConnectOptions = { nickname?: string; accessToken?: string };\n\nconst cacheRestrictCodes = [400300, 400301, 400302, 400310];\nfunction isCacheRestrictedError(error: SendbirdError) {\n return cacheRestrictCodes.some((code) => error.code === code);\n}\n\nasync function initEmoji(sdk: SendbirdChatSDK, emojiManager: EmojiManager) {\n await emojiManager.init();\n if (sdk.appInfo?.emojiHash !== emojiManager.emojiHash) {\n try {\n const container = await sdk.getAllEmoji();\n await emojiManager.init(container);\n } catch {}\n }\n}\n\nconst useConnection = () => {\n const { initDashboardConfigs } = useUIKitConfig();\n const { sdk, emojiManager, setCurrentUser, sbOptions } = useSendbirdChat();\n const { registerPushTokenForCurrentUser, unregisterPushTokenForCurrentUser } = usePushTokenRegistration();\n\n const connect = useCallback(\n async (userId: string, opts?: ConnectOptions): Promise<SendbirdUser> => {\n try {\n Logger.debug('[useConnection]', 'connect start:', userId);\n let user = await sdk.connect(userId, opts?.accessToken);\n\n if (opts?.nickname) {\n Logger.debug('[useConnection]', 'nickname-sync start:', opts.nickname);\n await sdk\n .updateCurrentUserInfo({ nickname: opts.nickname })\n .then((updatedUser) => (user = updatedUser))\n .catch((e) => Logger.warn('[useConnection]', 'nickname-sync failure', e));\n } else if (sbOptions.chat.useUserIdForNicknameEnabled) {\n await sdk.updateCurrentUserInfo({ nickname: userId }).then((updatedUser) => (user = updatedUser));\n }\n\n if (sbOptions.chat.autoPushTokenRegistrationEnabled) {\n Logger.debug('[useConnection]', 'autoPushTokenRegistration enabled, register for current user');\n await registerPushTokenForCurrentUser().catch((e) => {\n Logger.warn('[useConnection]', 'autoPushToken Registration failure', e);\n });\n }\n\n await Promise.all([\n initEmoji(sdk, emojiManager).catch(() => Logger.info('[useConnection]', 'initEmoji failure')),\n initDashboardConfigs(sdk).catch(() => Logger.info('[useConnection]', 'initDashboardConfigs failure')),\n ]);\n\n Logger.debug('[useConnection]', 'connected! (online)');\n setCurrentUser(user);\n\n return user;\n } catch (e) {\n const error = e as unknown as SendbirdError;\n\n if (sdk.isCacheEnabled) {\n if (isCacheRestrictedError(error)) {\n Logger.warn('[useConnection]', 'offline connect restricted', error.message, error.code);\n Logger.warn('[useConnection]', 'clear cached-data');\n await sdk.clearCachedData().catch((e) => Logger.warn('[useConnection]', 'clear cached-data failure', e));\n } else if (sdk.currentUser) {\n await Promise.all([\n initEmoji(sdk, emojiManager).catch(() => Logger.info('[useConnection]', 'initEmoji failure')),\n initDashboardConfigs(sdk).catch(() => Logger.info('[useConnection]', 'initDashboardConfigs failure')),\n ]);\n\n Logger.debug('[useConnection]', 'connected! (offline)');\n setCurrentUser(sdk.currentUser);\n return sdk.currentUser;\n }\n }\n\n Logger.warn('[useConnection]', 'connect failure', error.message, error.code);\n throw error;\n }\n },\n [sdk, registerPushTokenForCurrentUser, sbOptions.chat.autoPushTokenRegistrationEnabled],\n );\n\n const disconnect = useCallback(async () => {\n Logger.debug('[useConnection]', 'disconnect start');\n\n if (sbOptions.chat.autoPushTokenRegistrationEnabled) {\n Logger.debug('[useConnection]', 'autoPushTokenRegistration enabled, unregister for current user');\n await unregisterPushTokenForCurrentUser().catch((e) => {\n Logger.warn('[useConnection]', 'autoPushToken unregister failure', e);\n });\n }\n\n await sdk.disconnect().then(() => setCurrentUser(undefined));\n Logger.debug('[useConnection]', 'disconnected!');\n }, [sdk, unregisterPushTokenForCurrentUser, sbOptions.chat.autoPushTokenRegistrationEnabled]);\n\n return { connect, disconnect, reconnect: () => sdk.reconnect() };\n};\n\nexport default useConnection;\n"],"mappings":"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"}
@@ -24,8 +24,8 @@ const usePushTokenRegistration = () => {
24
24
  ios: token => sdk.unregisterAPNSPushTokenForCurrentUser(token),
25
25
  default: token => sdk.unregisterFCMPushTokenForCurrentUser(token)
26
26
  }), _reactNative.Platform.select({
27
- ios: notificationService.getAPNSToken,
28
- default: notificationService.getFCMToken
27
+ ios: () => notificationService.getAPNSToken(),
28
+ default: () => notificationService.getFCMToken()
29
29
  })];
30
30
  });
31
31
  const registerPushTokenForCurrentUser = (0, _uikitUtils.useFreshCallback)(async () => {
@@ -45,9 +45,23 @@ const usePushTokenRegistration = () => {
45
45
  // Register token
46
46
  const token = await getToken();
47
47
  if (token) {
48
- _uikitUtils.Logger.log('[usePushTokenRegistration]', 'registered token:', token);
49
- await registerToken(token);
48
+ try {
49
+ await registerToken(token);
50
+ _uikitUtils.Logger.log('[usePushTokenRegistration]', 'registered token:', token);
51
+ } catch (error) {
52
+ _uikitUtils.Logger.error('[usePushTokenRegistration]', 'failed to register token:', error);
53
+ }
50
54
  }
55
+
56
+ // Remove listener
57
+ refreshListener.current = notificationService.onTokenRefresh(async token => {
58
+ try {
59
+ await registerToken(token);
60
+ _uikitUtils.Logger.log('[usePushTokenRegistration]', 'registered token:', token);
61
+ } catch (error) {
62
+ _uikitUtils.Logger.error('[usePushTokenRegistration]', 'failed to register token:', error);
63
+ }
64
+ });
51
65
  });
52
66
  const unregisterPushTokenForCurrentUser = (0, _uikitUtils.useFreshCallback)(async () => {
53
67
  var _refreshListener$curr;
@@ -57,8 +71,12 @@ const usePushTokenRegistration = () => {
57
71
  // Unregister token
58
72
  const token = await getToken();
59
73
  if (token) {
60
- await unregisterToken(token);
61
- _uikitUtils.Logger.log('[usePushTokenRegistration]', 'unregistered token:', token);
74
+ try {
75
+ await unregisterToken(token);
76
+ _uikitUtils.Logger.log('[usePushTokenRegistration]', 'unregistered token:', token);
77
+ } catch (error) {
78
+ _uikitUtils.Logger.error('[usePushTokenRegistration]', 'failed to unregister token:', error);
79
+ }
62
80
  }
63
81
  });
64
82
  return {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_uikitUtils","_useContext","usePushTokenRegistration","sdk","useSendbirdChat","notificationService","usePlatformService","refreshListener","useRef","registerToken","unregisterToken","getToken","useIIFE","Platform","select","ios","token","registerAPNSPushTokenForCurrentUser","default","registerFCMPushTokenForCurrentUser","unregisterAPNSPushTokenForCurrentUser","unregisterFCMPushTokenForCurrentUser","getAPNSToken","getFCMToken","registerPushTokenForCurrentUser","useFreshCallback","hasPermission","hasPushPermission","pushPermission","requestPushPermission","Logger","warn","current","onTokenRefresh","log","unregisterPushTokenForCurrentUser","_refreshListener$curr","call","_default","exports"],"sources":["usePushTokenRegistration.ts"],"sourcesContent":["import { useRef } from 'react';\nimport { Platform } from 'react-native';\n\nimport { Logger, useFreshCallback, useIIFE } from '@sendbird/uikit-utils';\n\nimport { usePlatformService, useSendbirdChat } from './useContext';\n\nconst usePushTokenRegistration = () => {\n const { sdk } = useSendbirdChat();\n const { notificationService } = usePlatformService();\n\n const refreshListener = useRef<() => void>();\n const [registerToken, unregisterToken, getToken] = useIIFE(() => {\n return [\n Platform.select({\n ios: (token: string) => sdk.registerAPNSPushTokenForCurrentUser(token),\n default: (token: string) => sdk.registerFCMPushTokenForCurrentUser(token),\n }),\n Platform.select({\n ios: (token: string) => sdk.unregisterAPNSPushTokenForCurrentUser(token),\n default: (token: string) => sdk.unregisterFCMPushTokenForCurrentUser(token),\n }),\n Platform.select({\n ios: notificationService.getAPNSToken,\n default: notificationService.getFCMToken,\n }),\n ];\n });\n\n const registerPushTokenForCurrentUser = useFreshCallback(async () => {\n // Check and request push permission\n const hasPermission = await notificationService.hasPushPermission();\n if (!hasPermission) {\n const pushPermission = await notificationService.requestPushPermission();\n if (!pushPermission) {\n Logger.warn('[usePushTokenRegistration]', 'Not granted push permission');\n return;\n }\n }\n\n // Register token refresh listener\n refreshListener.current = notificationService.onTokenRefresh(registerToken);\n\n // Register token\n const token = await getToken();\n if (token) {\n Logger.log('[usePushTokenRegistration]', 'registered token:', token);\n await registerToken(token);\n }\n });\n\n const unregisterPushTokenForCurrentUser = useFreshCallback(async () => {\n // Unregister token refresh listener\n refreshListener.current?.();\n\n // Unregister token\n const token = await getToken();\n if (token) {\n await unregisterToken(token);\n Logger.log('[usePushTokenRegistration]', 'unregistered token:', token);\n }\n });\n\n return { registerPushTokenForCurrentUser, unregisterPushTokenForCurrentUser };\n};\n\nexport default usePushTokenRegistration;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AAEA,IAAAG,WAAA,GAAAH,OAAA;AAEA,MAAMI,wBAAwB,GAAGA,CAAA,KAAM;EACrC,MAAM;IAAEC;EAAI,CAAC,GAAG,IAAAC,2BAAe,GAAE;EACjC,MAAM;IAAEC;EAAoB,CAAC,GAAG,IAAAC,8BAAkB,GAAE;EAEpD,MAAMC,eAAe,GAAG,IAAAC,aAAM,GAAc;EAC5C,MAAM,CAACC,aAAa,EAAEC,eAAe,EAAEC,QAAQ,CAAC,GAAG,IAAAC,mBAAO,EAAC,MAAM;IAC/D,OAAO,CACLC,qBAAQ,CAACC,MAAM,CAAC;MACdC,GAAG,EAAGC,KAAa,IAAKb,GAAG,CAACc,mCAAmC,CAACD,KAAK,CAAC;MACtEE,OAAO,EAAGF,KAAa,IAAKb,GAAG,CAACgB,kCAAkC,CAACH,KAAK;IAC1E,CAAC,CAAC,EACFH,qBAAQ,CAACC,MAAM,CAAC;MACdC,GAAG,EAAGC,KAAa,IAAKb,GAAG,CAACiB,qCAAqC,CAACJ,KAAK,CAAC;MACxEE,OAAO,EAAGF,KAAa,IAAKb,GAAG,CAACkB,oCAAoC,CAACL,KAAK;IAC5E,CAAC,CAAC,EACFH,qBAAQ,CAACC,MAAM,CAAC;MACdC,GAAG,EAAEV,mBAAmB,CAACiB,YAAY;MACrCJ,OAAO,EAAEb,mBAAmB,CAACkB;IAC/B,CAAC,CAAC,CACH;EACH,CAAC,CAAC;EAEF,MAAMC,+BAA+B,GAAG,IAAAC,4BAAgB,EAAC,YAAY;IACnE;IACA,MAAMC,aAAa,GAAG,MAAMrB,mBAAmB,CAACsB,iBAAiB,EAAE;IACnE,IAAI,CAACD,aAAa,EAAE;MAClB,MAAME,cAAc,GAAG,MAAMvB,mBAAmB,CAACwB,qBAAqB,EAAE;MACxE,IAAI,CAACD,cAAc,EAAE;QACnBE,kBAAM,CAACC,IAAI,CAAC,4BAA4B,EAAE,6BAA6B,CAAC;QACxE;MACF;IACF;;IAEA;IACAxB,eAAe,CAACyB,OAAO,GAAG3B,mBAAmB,CAAC4B,cAAc,CAACxB,aAAa,CAAC;;IAE3E;IACA,MAAMO,KAAK,GAAG,MAAML,QAAQ,EAAE;IAC9B,IAAIK,KAAK,EAAE;MACTc,kBAAM,CAACI,GAAG,CAAC,4BAA4B,EAAE,mBAAmB,EAAElB,KAAK,CAAC;MACpE,MAAMP,aAAa,CAACO,KAAK,CAAC;IAC5B;EACF,CAAC,CAAC;EAEF,MAAMmB,iCAAiC,GAAG,IAAAV,4BAAgB,EAAC,YAAY;IAAA,IAAAW,qBAAA;IACrE;IACA,CAAAA,qBAAA,GAAA7B,eAAe,CAACyB,OAAO,cAAAI,qBAAA,uBAAvBA,qBAAA,CAAAC,IAAA,CAAA9B,eAAe,CAAY;;IAE3B;IACA,MAAMS,KAAK,GAAG,MAAML,QAAQ,EAAE;IAC9B,IAAIK,KAAK,EAAE;MACT,MAAMN,eAAe,CAACM,KAAK,CAAC;MAC5Bc,kBAAM,CAACI,GAAG,CAAC,4BAA4B,EAAE,qBAAqB,EAAElB,KAAK,CAAC;IACxE;EACF,CAAC,CAAC;EAEF,OAAO;IAAEQ,+BAA+B;IAAEW;EAAkC,CAAC;AAC/E,CAAC;AAAC,IAAAG,QAAA,GAEapC,wBAAwB;AAAAqC,OAAA,CAAArB,OAAA,GAAAoB,QAAA"}
1
+ {"version":3,"names":["_react","require","_reactNative","_uikitUtils","_useContext","usePushTokenRegistration","sdk","useSendbirdChat","notificationService","usePlatformService","refreshListener","useRef","registerToken","unregisterToken","getToken","useIIFE","Platform","select","ios","token","registerAPNSPushTokenForCurrentUser","default","registerFCMPushTokenForCurrentUser","unregisterAPNSPushTokenForCurrentUser","unregisterFCMPushTokenForCurrentUser","getAPNSToken","getFCMToken","registerPushTokenForCurrentUser","useFreshCallback","hasPermission","hasPushPermission","pushPermission","requestPushPermission","Logger","warn","current","onTokenRefresh","log","error","unregisterPushTokenForCurrentUser","_refreshListener$curr","call","_default","exports"],"sources":["usePushTokenRegistration.ts"],"sourcesContent":["import { useRef } from 'react';\nimport { Platform } from 'react-native';\n\nimport { Logger, useFreshCallback, useIIFE } from '@sendbird/uikit-utils';\n\nimport { usePlatformService, useSendbirdChat } from './useContext';\n\nconst usePushTokenRegistration = () => {\n const { sdk } = useSendbirdChat();\n const { notificationService } = usePlatformService();\n\n const refreshListener = useRef<() => void>();\n const [registerToken, unregisterToken, getToken] = useIIFE(() => {\n return [\n Platform.select({\n ios: (token: string) => sdk.registerAPNSPushTokenForCurrentUser(token),\n default: (token: string) => sdk.registerFCMPushTokenForCurrentUser(token),\n }),\n Platform.select({\n ios: (token: string) => sdk.unregisterAPNSPushTokenForCurrentUser(token),\n default: (token: string) => sdk.unregisterFCMPushTokenForCurrentUser(token),\n }),\n Platform.select({\n ios: () => notificationService.getAPNSToken(),\n default: () => notificationService.getFCMToken(),\n }),\n ];\n });\n\n const registerPushTokenForCurrentUser = useFreshCallback(async () => {\n // Check and request push permission\n const hasPermission = await notificationService.hasPushPermission();\n if (!hasPermission) {\n const pushPermission = await notificationService.requestPushPermission();\n if (!pushPermission) {\n Logger.warn('[usePushTokenRegistration]', 'Not granted push permission');\n return;\n }\n }\n\n // Register token refresh listener\n refreshListener.current = notificationService.onTokenRefresh(registerToken);\n\n // Register token\n const token = await getToken();\n if (token) {\n try {\n await registerToken(token);\n Logger.log('[usePushTokenRegistration]', 'registered token:', token);\n } catch (error) {\n Logger.error('[usePushTokenRegistration]', 'failed to register token:', error);\n }\n }\n\n // Remove listener\n refreshListener.current = notificationService.onTokenRefresh(async (token) => {\n try {\n await registerToken(token);\n Logger.log('[usePushTokenRegistration]', 'registered token:', token);\n } catch (error) {\n Logger.error('[usePushTokenRegistration]', 'failed to register token:', error);\n }\n });\n });\n\n const unregisterPushTokenForCurrentUser = useFreshCallback(async () => {\n // Unregister token refresh listener\n refreshListener.current?.();\n\n // Unregister token\n const token = await getToken();\n if (token) {\n try {\n await unregisterToken(token);\n Logger.log('[usePushTokenRegistration]', 'unregistered token:', token);\n } catch (error) {\n Logger.error('[usePushTokenRegistration]', 'failed to unregister token:', error);\n }\n }\n });\n\n return { registerPushTokenForCurrentUser, unregisterPushTokenForCurrentUser };\n};\n\nexport default usePushTokenRegistration;\n"],"mappings":"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"}
@@ -16,7 +16,7 @@ function _toPrimitive(input, hint) { if (typeof input !== "object" || input ===
16
16
  function getAndroidStoragePermissionsByAPILevel(permissionModule) {
17
17
  if (_reactNative.Platform.OS !== 'android') return [];
18
18
  if (_reactNative.Platform.Version > 32) {
19
- return [permissionModule.PERMISSIONS.ANDROID.READ_MEDIA_AUDIO, permissionModule.PERMISSIONS.ANDROID.READ_MEDIA_IMAGES, permissionModule.PERMISSIONS.ANDROID.READ_MEDIA_VIDEO];
19
+ return [];
20
20
  }
21
21
  if (_reactNative.Platform.Version > 28) {
22
22
  return [permissionModule.PERMISSIONS.ANDROID.READ_EXTERNAL_STORAGE];
@@ -33,7 +33,7 @@ const createNativeFileService = _ref => {
33
33
  } = _ref;
34
34
  const cameraPermissions = _reactNative.Platform.select({
35
35
  ios: [permissionModule.PERMISSIONS.IOS.CAMERA, permissionModule.PERMISSIONS.IOS.MICROPHONE],
36
- android: [permissionModule.PERMISSIONS.ANDROID.CAMERA],
36
+ android: [],
37
37
  default: []
38
38
  });
39
39
  const mediaLibraryPermissions = _reactNative.Platform.select({