@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","_uikitReactNativeFoundation","_uikitUtils","_constants","_moduleContext","_useContext","_types","_ReactionAddons","_GroupChannelMessageDateSeparator","_interopRequireDefault","_GroupChannelMessageFocusAnimation","_GroupChannelMessageOutgoingStatus","_GroupChannelMessageParentMessage","_GroupChannelMessageReplyInfo","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","GroupChannelMessageRenderer","_ref","channel","message","onPress","onLongPress","onPressParentMessage","onShowUserProfile","onReplyInThreadMessage","enableMessageGrouping","focused","prevMessage","nextMessage","hideParentMessage","handlers","useSBUHandlers","playerUnsubscribes","useRef","palette","useUIKitTheme","sbOptions","currentUser","mentionManager","voiceMessageStatusManager","useSendbirdChat","STRINGS","useLocalization","mediaService","playerService","usePlatformService","groupWithPrev","groupWithNext","calcMessageGrouping","Boolean","uikit","groupChannel","replyType","shouldRenderParentMessage","variant","isMyMessage","userId","reactionChildren","useIIFE","configs","uikitWithAppInfo","shouldRenderReaction","isSuper","enableReactionsSupergroup","enableReactions","reactions","createElement","ReactionAddons","Message","replyInfo","threadInfo","replyCount","resetPlayer","current","forEach","unsubscribe","reset","messageProps","onPressURL","url","onOpenURL","onPressAvatar","sender","onPressMentionedUser","mentionedUser","onToggleVoiceMessage","state","setState","isVoiceMessage","sendingStatus","uri","pause","play","shouldSeekToTime","duration","currentTime","seekFinished","forPlayback","addPlaybackListener","_ref2","stopped","setCurrentTime","channelUrl","messageId","prevState","forState","addStateListener","status","push","seek","groupedWithPrev","groupedWithNext","children","parentMessage","childMessage","strings","edited","GROUP_CHANNEL","MESSAGE_BUBBLE_EDITED_POSTFIX","senderName","nickname","LABELS","USER_NO_NAME","sentDate","MESSAGE_BUBBLE_TIME","fileName","isFileMessage","MESSAGE_BUBBLE_FILE_TITLE","unknownTitle","MESSAGE_BUBBLE_UNKNOWN_TITLE","unknownDescription","MESSAGE_BUBBLE_UNKNOWN_DESC","userMessageProps","renderRegexTextChildren","shouldUseMentionedMessageTemplate","enableMention","mentionedMessageTemplate","regexTextPatterns","regex","templateRegex","replacer","_ref3","_message$mentionedUse","match","groups","parentProps","index","keyPrefix","user","mentionedUsers","find","it","mentionColor","onBackgroundLight01","color","Text","_messageProps$onPress","style","fontWeight","backgroundColor","highlight","asMentionedMessageText","renderMessage","getMessageType","GroupChannelMessage","Admin","ogMetaData","enableOgtag","OpenGraphUser","User","File","ImageFile","VideoFile","fetchThumbnailFromVideoSource","getVideoThumbnail","timeMills","VoiceFile","durationMetaArrayKey","VOICE_MESSAGE_META_ARRAY_DURATION_KEY","initialCurrentTime","getCurrentTime","onSubscribeStatus","subscribe","onUnsubscribeStatus","onUnmount","Unknown","messageGap","isAdminMessage","Box","paddingHorizontal","marginBottom","GroupChannelTypingIndicatorBubble","publish","useContext","GroupChannelContexts","PubSub","typingUsers","TypingIndicator","shouldRenderBubble","enableTypingIndicator","typingIndicatorTypes","TypingIndicatorType","Bubble","useEffect","type","marginTop","TypingIndicatorBubble","exports","_default","React","memo"],"sources":["index.tsx"],"sourcesContent":["import React, { useContext, useEffect, useRef } from 'react';\n\nimport type { GroupChannelMessageProps, RegexTextPattern } from '@sendbird/uikit-react-native-foundation';\nimport {\n Box,\n GroupChannelMessage,\n Text,\n TypingIndicatorBubble,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdAdminMessage,\n SendbirdFileMessage,\n SendbirdMessage,\n SendbirdUserMessage,\n calcMessageGrouping,\n getMessageType,\n isMyMessage,\n isVoiceMessage,\n shouldRenderParentMessage,\n shouldRenderReaction,\n useIIFE,\n} from '@sendbird/uikit-utils';\n\nimport { VOICE_MESSAGE_META_ARRAY_DURATION_KEY } from '../../constants';\nimport { GroupChannelContexts } from '../../domain/groupChannel/module/moduleContext';\nimport type { GroupChannelProps } from '../../domain/groupChannel/types';\nimport { useLocalization, usePlatformService, useSBUHandlers, useSendbirdChat } from '../../hooks/useContext';\nimport { TypingIndicatorType } from '../../types';\nimport { ReactionAddons } from '../ReactionAddons';\nimport GroupChannelMessageDateSeparator from './GroupChannelMessageDateSeparator';\nimport GroupChannelMessageFocusAnimation from './GroupChannelMessageFocusAnimation';\nimport GroupChannelMessageOutgoingStatus from './GroupChannelMessageOutgoingStatus';\nimport GroupChannelMessageParentMessage from './GroupChannelMessageParentMessage';\nimport GroupChannelMessageReplyInfo from './GroupChannelMessageReplyInfo';\n\nconst GroupChannelMessageRenderer: GroupChannelProps['Fragment']['renderMessage'] = ({\n channel,\n message,\n onPress,\n onLongPress,\n onPressParentMessage,\n onShowUserProfile,\n onReplyInThreadMessage,\n enableMessageGrouping,\n focused,\n prevMessage,\n nextMessage,\n hideParentMessage,\n}) => {\n const handlers = useSBUHandlers();\n const playerUnsubscribes = useRef<(() => void)[]>([]);\n const { palette } = useUIKitTheme();\n const { sbOptions, currentUser, mentionManager, voiceMessageStatusManager } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { mediaService, playerService } = usePlatformService();\n const { groupWithPrev, groupWithNext } = calcMessageGrouping(\n Boolean(enableMessageGrouping),\n message,\n prevMessage,\n nextMessage,\n sbOptions.uikit.groupChannel.channel.replyType === 'thread',\n shouldRenderParentMessage(message, hideParentMessage),\n );\n\n const variant = isMyMessage(message, currentUser?.userId) ? 'outgoing' : 'incoming';\n\n const reactionChildren = useIIFE(() => {\n const configs = sbOptions.uikitWithAppInfo.groupChannel.channel;\n if (\n shouldRenderReaction(channel, channel.isSuper ? configs.enableReactionsSupergroup : configs.enableReactions) &&\n message.reactions &&\n message.reactions.length > 0\n ) {\n return <ReactionAddons.Message channel={channel} message={message} />;\n }\n return null;\n });\n\n const replyInfo = useIIFE(() => {\n if (sbOptions.uikit.groupChannel.channel.replyType !== 'thread') return null;\n if (!channel || !message.threadInfo || !message.threadInfo.replyCount) return null;\n return <GroupChannelMessageReplyInfo channel={channel} message={message} onPress={onReplyInThreadMessage} />;\n });\n\n const resetPlayer = async () => {\n playerUnsubscribes.current.forEach((unsubscribe) => {\n try {\n unsubscribe();\n } catch {}\n });\n playerUnsubscribes.current.length = 0;\n await playerService.reset();\n };\n\n const messageProps: Omit<GroupChannelMessageProps<SendbirdMessage>, 'message'> = {\n channel,\n variant,\n onPress,\n onLongPress,\n onPressURL: (url) => handlers.onOpenURL(url),\n onPressAvatar: () => {\n if ('sender' in message) onShowUserProfile?.(message.sender);\n },\n onPressMentionedUser: (mentionedUser) => {\n if (mentionedUser) onShowUserProfile?.(mentionedUser);\n },\n onToggleVoiceMessage: async (state, setState) => {\n if (isVoiceMessage(message) && message.sendingStatus === 'succeeded') {\n if (playerService.uri === message.url) {\n if (playerService.state === 'playing') {\n await playerService.pause();\n } else {\n await playerService.play(message.url);\n }\n } else {\n if (playerService.state !== 'idle') {\n await resetPlayer();\n }\n\n const shouldSeekToTime = state.duration > state.currentTime && state.currentTime > 0;\n let seekFinished = !shouldSeekToTime;\n\n const forPlayback = playerService.addPlaybackListener(({ stopped, currentTime, duration }) => {\n voiceMessageStatusManager.setCurrentTime(message.channelUrl, message.messageId, currentTime);\n if (seekFinished) {\n setState((prevState) => ({ ...prevState, currentTime: stopped ? 0 : currentTime, duration }));\n }\n });\n const forState = playerService.addStateListener((state) => {\n switch (state) {\n case 'preparing':\n setState((prevState) => ({ ...prevState, status: 'preparing' }));\n break;\n case 'playing':\n setState((prevState) => ({ ...prevState, status: 'playing' }));\n break;\n case 'idle':\n case 'paused': {\n setState((prevState) => ({ ...prevState, status: 'paused' }));\n break;\n }\n case 'stopped':\n setState((prevState) => ({ ...prevState, status: 'paused' }));\n break;\n }\n });\n playerUnsubscribes.current.push(forPlayback, forState);\n\n await playerService.play(message.url);\n if (shouldSeekToTime) {\n await playerService.seek(state.currentTime);\n seekFinished = true;\n }\n }\n }\n },\n groupedWithPrev: groupWithPrev,\n groupedWithNext: groupWithNext,\n children: reactionChildren,\n replyInfo: replyInfo,\n sendingStatus: isMyMessage(message, currentUser?.userId) ? (\n <GroupChannelMessageOutgoingStatus channel={channel} message={message} />\n ) : null,\n parentMessage: shouldRenderParentMessage(message, hideParentMessage) ? (\n <GroupChannelMessageParentMessage\n channel={channel}\n message={message.parentMessage}\n variant={variant}\n childMessage={message}\n onPress={onPressParentMessage}\n />\n ) : null,\n strings: {\n edited: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_EDITED_POSTFIX,\n senderName: ('sender' in message && message.sender.nickname) || STRINGS.LABELS.USER_NO_NAME,\n sentDate: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_TIME(message),\n fileName: message.isFileMessage() ? STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_FILE_TITLE(message) : '',\n unknownTitle: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_TITLE(message),\n unknownDescription: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_DESC(message),\n },\n };\n\n const userMessageProps: {\n renderRegexTextChildren: (message: SendbirdUserMessage) => string;\n regexTextPatterns: RegexTextPattern[];\n } = {\n renderRegexTextChildren: (message) => {\n if (\n mentionManager.shouldUseMentionedMessageTemplate(message, sbOptions.uikit.groupChannel.channel.enableMention)\n ) {\n return message.mentionedMessageTemplate;\n } else {\n return message.message;\n }\n },\n regexTextPatterns: [\n {\n regex: mentionManager.templateRegex,\n replacer({ match, groups, parentProps, index, keyPrefix }) {\n const user = message.mentionedUsers?.find((it) => it.userId === groups[2]);\n if (user) {\n const mentionColor =\n !isMyMessage(message, currentUser?.userId) && user.userId === currentUser?.userId\n ? palette.onBackgroundLight01\n : parentProps?.color;\n\n return (\n <Text\n {...parentProps}\n key={`${keyPrefix}-${index}`}\n color={mentionColor}\n onPress={() => messageProps.onPressMentionedUser?.(user)}\n onLongPress={messageProps.onLongPress}\n style={[\n parentProps?.style,\n { fontWeight: '700' },\n user.userId === currentUser?.userId && { backgroundColor: palette.highlight },\n ]}\n >\n {`${mentionManager.asMentionedMessageText(user)}`}\n </Text>\n );\n }\n return match;\n },\n },\n ],\n };\n\n const renderMessage = () => {\n switch (getMessageType(message)) {\n case 'admin': {\n return <GroupChannelMessage.Admin message={message as SendbirdAdminMessage} {...messageProps} />;\n }\n case 'user':\n case 'user.opengraph': {\n if (message.ogMetaData && sbOptions.uikitWithAppInfo.groupChannel.channel.enableOgtag) {\n return (\n <GroupChannelMessage.OpenGraphUser\n message={message as SendbirdUserMessage}\n {...userMessageProps}\n {...messageProps}\n />\n );\n } else {\n return (\n <GroupChannelMessage.User\n message={message as SendbirdUserMessage}\n {...userMessageProps}\n {...messageProps}\n />\n );\n }\n }\n case 'file':\n case 'file.audio': {\n return <GroupChannelMessage.File message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.image': {\n return <GroupChannelMessage.ImageFile message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.video': {\n return (\n <GroupChannelMessage.VideoFile\n message={message as SendbirdFileMessage}\n fetchThumbnailFromVideoSource={(uri) => mediaService.getVideoThumbnail({ url: uri, timeMills: 1000 })}\n {...messageProps}\n />\n );\n }\n case 'file.voice': {\n return (\n <GroupChannelMessage.VoiceFile\n message={message as SendbirdFileMessage}\n durationMetaArrayKey={VOICE_MESSAGE_META_ARRAY_DURATION_KEY}\n initialCurrentTime={voiceMessageStatusManager.getCurrentTime(message.channelUrl, message.messageId)}\n onSubscribeStatus={voiceMessageStatusManager.subscribe}\n onUnsubscribeStatus={voiceMessageStatusManager.unsubscribe}\n onUnmount={() => {\n if (isVoiceMessage(message) && playerService.uri === message.url) {\n resetPlayer();\n }\n }}\n {...messageProps}\n />\n );\n }\n case 'unknown':\n default: {\n return <GroupChannelMessage.Unknown message={message} {...messageProps} />;\n }\n }\n };\n\n const messageGap = useIIFE(() => {\n if (message.isAdminMessage()) {\n if (nextMessage?.isAdminMessage()) {\n return 8;\n } else {\n return 16;\n }\n } else if (nextMessage && shouldRenderParentMessage(nextMessage, hideParentMessage)) {\n return 16;\n } else if (groupWithNext) {\n return 2;\n } else {\n return 16;\n }\n });\n\n return (\n <Box paddingHorizontal={16} marginBottom={messageGap}>\n <GroupChannelMessageDateSeparator message={message} prevMessage={prevMessage} />\n <GroupChannelMessageFocusAnimation focused={focused}>{renderMessage()}</GroupChannelMessageFocusAnimation>\n </Box>\n );\n};\n\nexport const GroupChannelTypingIndicatorBubble = () => {\n const { sbOptions } = useSendbirdChat();\n const { publish } = useContext(GroupChannelContexts.PubSub);\n const { typingUsers } = useContext(GroupChannelContexts.TypingIndicator);\n\n const shouldRenderBubble = useIIFE(() => {\n if (typingUsers.length === 0) return false;\n if (!sbOptions.uikit.groupChannel.channel.enableTypingIndicator) return false;\n if (!sbOptions.uikit.groupChannel.channel.typingIndicatorTypes.has(TypingIndicatorType.Bubble)) return false;\n return true;\n });\n\n useEffect(() => {\n if (shouldRenderBubble) publish({ type: 'TYPING_BUBBLE_RENDERED' });\n }, [shouldRenderBubble]);\n\n if (!shouldRenderBubble) return null;\n return (\n <Box paddingHorizontal={16} marginTop={4} marginBottom={16}>\n <TypingIndicatorBubble typingUsers={typingUsers} />\n </Box>\n );\n};\n\nexport default React.memo(GroupChannelMessageRenderer);\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_uikitReactNativeFoundation","_uikitUtils","_constants","_moduleContext","_useContext","_types","_ReactionAddons","_GroupChannelMessageDateSeparator","_interopRequireDefault","_GroupChannelMessageFocusAnimation","_GroupChannelMessageOutgoingStatus","_GroupChannelMessageParentMessage","_GroupChannelMessageReplyInfo","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","GroupChannelMessageRenderer","_ref","channel","message","onPress","onLongPress","onPressParentMessage","onShowUserProfile","onReplyInThreadMessage","enableMessageGrouping","focused","prevMessage","nextMessage","hideParentMessage","handlers","useSBUHandlers","playerUnsubscribes","useRef","palette","useUIKitTheme","sbOptions","currentUser","mentionManager","voiceMessageStatusManager","useSendbirdChat","STRINGS","useLocalization","mediaService","playerService","usePlatformService","groupWithPrev","groupWithNext","calcMessageGrouping","Boolean","uikit","groupChannel","replyType","shouldRenderParentMessage","variant","isMyMessage","userId","reactionChildren","useIIFE","configs","uikitWithAppInfo","shouldRenderReaction","isSuper","enableReactionsSupergroup","enableReactions","reactions","createElement","ReactionAddons","Message","replyInfo","threadInfo","replyCount","resetPlayer","current","forEach","unsubscribe","reset","messageProps","onPressURL","url","onOpenURL","onPressAvatar","sender","onPressMentionedUser","mentionedUser","onToggleVoiceMessage","state","setState","isVoiceMessage","sendingStatus","uri","pause","play","shouldSeekToTime","duration","currentTime","seekFinished","forPlayback","addPlaybackListener","_ref2","stopped","setCurrentTime","channelUrl","messageId","prevState","forState","addStateListener","status","push","seek","groupedWithPrev","groupedWithNext","children","parentMessage","childMessage","strings","edited","GROUP_CHANNEL","MESSAGE_BUBBLE_EDITED_POSTFIX","senderName","nickname","LABELS","USER_NO_NAME","sentDate","MESSAGE_BUBBLE_TIME","fileName","isFileMessage","MESSAGE_BUBBLE_FILE_TITLE","unknownTitle","MESSAGE_BUBBLE_UNKNOWN_TITLE","unknownDescription","MESSAGE_BUBBLE_UNKNOWN_DESC","userMessageProps","renderRegexTextChildren","shouldUseMentionedMessageTemplate","enableMention","mentionedMessageTemplate","regexTextPatterns","regex","templateRegex","replacer","_ref3","_message$mentionedUse","match","groups","parentProps","index","keyPrefix","user","mentionedUsers","find","it","mentionColor","onBackgroundLight01","color","Text","_messageProps$onPress","style","fontWeight","backgroundColor","highlight","asMentionedMessageText","renderMessage","getMessageType","GroupChannelMessage","Admin","ogMetaData","enableOgtag","OpenGraphUser","User","File","ImageFile","VideoFile","fetchThumbnailFromVideoSource","getVideoThumbnail","timeMills","VoiceFile","durationMetaArrayKey","VOICE_MESSAGE_META_ARRAY_DURATION_KEY","initialCurrentTime","getCurrentTime","onSubscribeStatus","subscribe","onUnsubscribeStatus","onUnmount","catch","_","Unknown","messageGap","isAdminMessage","Box","paddingHorizontal","marginBottom","GroupChannelTypingIndicatorBubble","publish","useContext","GroupChannelContexts","PubSub","typingUsers","TypingIndicator","shouldRenderBubble","enableTypingIndicator","typingIndicatorTypes","TypingIndicatorType","Bubble","useEffect","type","marginTop","TypingIndicatorBubble","exports","_default","React","memo"],"sources":["index.tsx"],"sourcesContent":["import React, { useContext, useEffect, useRef } from 'react';\n\nimport type { GroupChannelMessageProps, RegexTextPattern } from '@sendbird/uikit-react-native-foundation';\nimport {\n Box,\n GroupChannelMessage,\n Text,\n TypingIndicatorBubble,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdAdminMessage,\n SendbirdFileMessage,\n SendbirdMessage,\n SendbirdUserMessage,\n calcMessageGrouping,\n getMessageType,\n isMyMessage,\n isVoiceMessage,\n shouldRenderParentMessage,\n shouldRenderReaction,\n useIIFE,\n} from '@sendbird/uikit-utils';\n\nimport { VOICE_MESSAGE_META_ARRAY_DURATION_KEY } from '../../constants';\nimport { GroupChannelContexts } from '../../domain/groupChannel/module/moduleContext';\nimport type { GroupChannelProps } from '../../domain/groupChannel/types';\nimport { useLocalization, usePlatformService, useSBUHandlers, useSendbirdChat } from '../../hooks/useContext';\nimport { TypingIndicatorType } from '../../types';\nimport { ReactionAddons } from '../ReactionAddons';\nimport GroupChannelMessageDateSeparator from './GroupChannelMessageDateSeparator';\nimport GroupChannelMessageFocusAnimation from './GroupChannelMessageFocusAnimation';\nimport GroupChannelMessageOutgoingStatus from './GroupChannelMessageOutgoingStatus';\nimport GroupChannelMessageParentMessage from './GroupChannelMessageParentMessage';\nimport GroupChannelMessageReplyInfo from './GroupChannelMessageReplyInfo';\n\nconst GroupChannelMessageRenderer: GroupChannelProps['Fragment']['renderMessage'] = ({\n channel,\n message,\n onPress,\n onLongPress,\n onPressParentMessage,\n onShowUserProfile,\n onReplyInThreadMessage,\n enableMessageGrouping,\n focused,\n prevMessage,\n nextMessage,\n hideParentMessage,\n}) => {\n const handlers = useSBUHandlers();\n const playerUnsubscribes = useRef<(() => void)[]>([]);\n const { palette } = useUIKitTheme();\n const { sbOptions, currentUser, mentionManager, voiceMessageStatusManager } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { mediaService, playerService } = usePlatformService();\n const { groupWithPrev, groupWithNext } = calcMessageGrouping(\n Boolean(enableMessageGrouping),\n message,\n prevMessage,\n nextMessage,\n sbOptions.uikit.groupChannel.channel.replyType === 'thread',\n shouldRenderParentMessage(message, hideParentMessage),\n );\n\n const variant = isMyMessage(message, currentUser?.userId) ? 'outgoing' : 'incoming';\n\n const reactionChildren = useIIFE(() => {\n const configs = sbOptions.uikitWithAppInfo.groupChannel.channel;\n if (\n shouldRenderReaction(channel, channel.isSuper ? configs.enableReactionsSupergroup : configs.enableReactions) &&\n message.reactions &&\n message.reactions.length > 0\n ) {\n return <ReactionAddons.Message channel={channel} message={message} />;\n }\n return null;\n });\n\n const replyInfo = useIIFE(() => {\n if (sbOptions.uikit.groupChannel.channel.replyType !== 'thread') return null;\n if (!channel || !message.threadInfo || !message.threadInfo.replyCount) return null;\n return <GroupChannelMessageReplyInfo channel={channel} message={message} onPress={onReplyInThreadMessage} />;\n });\n\n const resetPlayer = async () => {\n playerUnsubscribes.current.forEach((unsubscribe) => {\n try {\n unsubscribe();\n } catch {}\n });\n playerUnsubscribes.current.length = 0;\n await playerService.reset();\n };\n\n const messageProps: Omit<GroupChannelMessageProps<SendbirdMessage>, 'message'> = {\n channel,\n variant,\n onPress,\n onLongPress,\n onPressURL: (url) => handlers.onOpenURL(url),\n onPressAvatar: () => {\n if ('sender' in message) onShowUserProfile?.(message.sender);\n },\n onPressMentionedUser: (mentionedUser) => {\n if (mentionedUser) onShowUserProfile?.(mentionedUser);\n },\n onToggleVoiceMessage: async (state, setState) => {\n if (isVoiceMessage(message) && message.sendingStatus === 'succeeded') {\n if (playerService.uri === message.url) {\n if (playerService.state === 'playing') {\n await playerService.pause();\n } else {\n await playerService.play(message.url);\n }\n } else {\n if (playerService.state !== 'idle') {\n await resetPlayer();\n }\n\n const shouldSeekToTime = state.duration > state.currentTime && state.currentTime > 0;\n let seekFinished = !shouldSeekToTime;\n\n const forPlayback = playerService.addPlaybackListener(({ stopped, currentTime, duration }) => {\n voiceMessageStatusManager.setCurrentTime(message.channelUrl, message.messageId, currentTime);\n if (seekFinished) {\n setState((prevState) => ({ ...prevState, currentTime: stopped ? 0 : currentTime, duration }));\n }\n });\n const forState = playerService.addStateListener((state) => {\n switch (state) {\n case 'preparing':\n setState((prevState) => ({ ...prevState, status: 'preparing' }));\n break;\n case 'playing':\n setState((prevState) => ({ ...prevState, status: 'playing' }));\n break;\n case 'idle':\n case 'paused': {\n setState((prevState) => ({ ...prevState, status: 'paused' }));\n break;\n }\n case 'stopped':\n setState((prevState) => ({ ...prevState, status: 'paused' }));\n break;\n }\n });\n playerUnsubscribes.current.push(forPlayback, forState);\n\n await playerService.play(message.url);\n if (shouldSeekToTime) {\n await playerService.seek(state.currentTime);\n seekFinished = true;\n }\n }\n }\n },\n groupedWithPrev: groupWithPrev,\n groupedWithNext: groupWithNext,\n children: reactionChildren,\n replyInfo: replyInfo,\n sendingStatus: isMyMessage(message, currentUser?.userId) ? (\n <GroupChannelMessageOutgoingStatus channel={channel} message={message} />\n ) : null,\n parentMessage: shouldRenderParentMessage(message, hideParentMessage) ? (\n <GroupChannelMessageParentMessage\n channel={channel}\n message={message.parentMessage}\n variant={variant}\n childMessage={message}\n onPress={onPressParentMessage}\n />\n ) : null,\n strings: {\n edited: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_EDITED_POSTFIX,\n senderName: ('sender' in message && message.sender.nickname) || STRINGS.LABELS.USER_NO_NAME,\n sentDate: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_TIME(message),\n fileName: message.isFileMessage() ? STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_FILE_TITLE(message) : '',\n unknownTitle: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_TITLE(message),\n unknownDescription: STRINGS.GROUP_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_DESC(message),\n },\n };\n\n const userMessageProps: {\n renderRegexTextChildren: (message: SendbirdUserMessage) => string;\n regexTextPatterns: RegexTextPattern[];\n } = {\n renderRegexTextChildren: (message) => {\n if (\n mentionManager.shouldUseMentionedMessageTemplate(message, sbOptions.uikit.groupChannel.channel.enableMention)\n ) {\n return message.mentionedMessageTemplate;\n } else {\n return message.message;\n }\n },\n regexTextPatterns: [\n {\n regex: mentionManager.templateRegex,\n replacer({ match, groups, parentProps, index, keyPrefix }) {\n const user = message.mentionedUsers?.find((it) => it.userId === groups[2]);\n if (user) {\n const mentionColor =\n !isMyMessage(message, currentUser?.userId) && user.userId === currentUser?.userId\n ? palette.onBackgroundLight01\n : parentProps?.color;\n\n return (\n <Text\n {...parentProps}\n key={`${keyPrefix}-${index}`}\n color={mentionColor}\n onPress={() => messageProps.onPressMentionedUser?.(user)}\n onLongPress={messageProps.onLongPress}\n style={[\n parentProps?.style,\n { fontWeight: '700' },\n user.userId === currentUser?.userId && { backgroundColor: palette.highlight },\n ]}\n >\n {`${mentionManager.asMentionedMessageText(user)}`}\n </Text>\n );\n }\n return match;\n },\n },\n ],\n };\n\n const renderMessage = () => {\n switch (getMessageType(message)) {\n case 'admin': {\n return <GroupChannelMessage.Admin message={message as SendbirdAdminMessage} {...messageProps} />;\n }\n case 'user':\n case 'user.opengraph': {\n if (message.ogMetaData && sbOptions.uikitWithAppInfo.groupChannel.channel.enableOgtag) {\n return (\n <GroupChannelMessage.OpenGraphUser\n message={message as SendbirdUserMessage}\n {...userMessageProps}\n {...messageProps}\n />\n );\n } else {\n return (\n <GroupChannelMessage.User\n message={message as SendbirdUserMessage}\n {...userMessageProps}\n {...messageProps}\n />\n );\n }\n }\n case 'file':\n case 'file.audio': {\n return <GroupChannelMessage.File message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.image': {\n return <GroupChannelMessage.ImageFile message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.video': {\n return (\n <GroupChannelMessage.VideoFile\n message={message as SendbirdFileMessage}\n fetchThumbnailFromVideoSource={(uri) => mediaService.getVideoThumbnail({ url: uri, timeMills: 1000 })}\n {...messageProps}\n />\n );\n }\n case 'file.voice': {\n return (\n <GroupChannelMessage.VoiceFile\n message={message as SendbirdFileMessage}\n durationMetaArrayKey={VOICE_MESSAGE_META_ARRAY_DURATION_KEY}\n initialCurrentTime={voiceMessageStatusManager.getCurrentTime(message.channelUrl, message.messageId)}\n onSubscribeStatus={voiceMessageStatusManager.subscribe}\n onUnsubscribeStatus={voiceMessageStatusManager.unsubscribe}\n onUnmount={() => {\n if (isVoiceMessage(message) && playerService.uri === message.url) {\n resetPlayer().catch((_) => {});\n }\n }}\n {...messageProps}\n />\n );\n }\n case 'unknown':\n default: {\n return <GroupChannelMessage.Unknown message={message} {...messageProps} />;\n }\n }\n };\n\n const messageGap = useIIFE(() => {\n if (message.isAdminMessage()) {\n if (nextMessage?.isAdminMessage()) {\n return 8;\n } else {\n return 16;\n }\n } else if (nextMessage && shouldRenderParentMessage(nextMessage, hideParentMessage)) {\n return 16;\n } else if (groupWithNext) {\n return 2;\n } else {\n return 16;\n }\n });\n\n return (\n <Box paddingHorizontal={16} marginBottom={messageGap}>\n <GroupChannelMessageDateSeparator message={message} prevMessage={prevMessage} />\n <GroupChannelMessageFocusAnimation focused={focused}>{renderMessage()}</GroupChannelMessageFocusAnimation>\n </Box>\n );\n};\n\nexport const GroupChannelTypingIndicatorBubble = () => {\n const { sbOptions } = useSendbirdChat();\n const { publish } = useContext(GroupChannelContexts.PubSub);\n const { typingUsers } = useContext(GroupChannelContexts.TypingIndicator);\n\n const shouldRenderBubble = useIIFE(() => {\n if (typingUsers.length === 0) return false;\n if (!sbOptions.uikit.groupChannel.channel.enableTypingIndicator) return false;\n if (!sbOptions.uikit.groupChannel.channel.typingIndicatorTypes.has(TypingIndicatorType.Bubble)) return false;\n return true;\n });\n\n useEffect(() => {\n if (shouldRenderBubble) publish({ type: 'TYPING_BUBBLE_RENDERED' });\n }, [shouldRenderBubble]);\n\n if (!shouldRenderBubble) return null;\n return (\n <Box paddingHorizontal={16} marginTop={4} marginBottom={16}>\n <TypingIndicatorBubble typingUsers={typingUsers} />\n </Box>\n );\n};\n\nexport default React.memo(GroupChannelMessageRenderer);\n"],"mappings":"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"}
@@ -67,9 +67,15 @@ const BottomSheetReactionAddon = _ref => {
67
67
  const reactionUserIds = (message === null || message === void 0 ? void 0 : (_message$reactions = message.reactions) === null || _message$reactions === void 0 ? void 0 : (_message$reactions$fi = _message$reactions.find(it => it.key === key)) === null || _message$reactions$fi === void 0 ? void 0 : _message$reactions$fi.userIds) ?? [];
68
68
  const currentUserIdx = reactionUserIds.indexOf((currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId) ?? _constants.UNKNOWN_USER_ID);
69
69
  const reacted = currentUserIdx > -1;
70
- const onPress = () => {
71
- if (reacted) channel.deleteReaction(message, key);else channel.addReaction(message, key);
72
- onClose();
70
+ const onPress = async () => {
71
+ const action = (message, key) => {
72
+ return reacted ? channel.deleteReaction(message, key) : channel.addReaction(message, key);
73
+ };
74
+ await action(message, key).catch(error => {
75
+ _uikitUtils.Logger.warn('Failed to reaction', error);
76
+ }).finally(() => {
77
+ onClose();
78
+ });
73
79
  };
74
80
  return /*#__PURE__*/_react.default.createElement(_reactNative.Pressable, {
75
81
  key: key,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeSafeAreaContext","_uikitChatHooks","_uikitReactNativeFoundation","_uikitUtils","_constants","_useContext","obj","__esModule","default","BottomSheetReactionAddon","_ref","onClose","message","channel","emojiManager","currentUser","sdk","useSendbirdChat","updateReactionFocusedItem","openReactionList","useReaction","colors","useUIKitTheme","handlerId","useUniqHandlerId","left","right","useSafeAreaInsets","useChannelHandler","onReactionUpdated","eventChannel","event","url","messageId","msg","getMessage","includeReactions","channelUrl","channelType","emojiAll","allEmoji","slice","color","ui","reaction","createElement","View","style","styles","container","marginRight","marginLeft","map","_ref2","_message$reactions","_message$reactions$fi","key","reactionUserIds","reactions","find","it","userIds","currentUserIdx","indexOf","userId","UNKNOWN_USER_ID","reacted","onPress","deleteReaction","addReaction","Pressable","_ref3","pressed","button","backgroundColor","selected","background","enabled","Image","source","uri","emoji","_ref4","Icon","icon","onBackground03","createStyleSheet","paddingTop","paddingBottom","paddingHorizontal","flexDirection","justifyContent","width","height","padding","borderRadius","_default","exports"],"sources":["BottomSheetReactionAddon.tsx"],"sourcesContent":["import React from 'react';\nimport { Pressable, View } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport type { BaseMessage } from '@sendbird/chat/message';\nimport { useChannelHandler } from '@sendbird/uikit-chat-hooks';\nimport { Icon, Image, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { SendbirdBaseChannel, SendbirdBaseMessage, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { UNKNOWN_USER_ID } from '../../constants';\nimport { useReaction, useSendbirdChat } from '../../hooks/useContext';\n\ntype Props = {\n onClose: () => Promise<void>;\n channel: SendbirdBaseChannel;\n message: SendbirdBaseMessage;\n};\nconst BottomSheetReactionAddon = ({ onClose, message, channel }: Props) => {\n const { emojiManager, currentUser, sdk } = useSendbirdChat();\n const { updateReactionFocusedItem, openReactionList } = useReaction();\n const { colors } = useUIKitTheme();\n const handlerId = useUniqHandlerId('BottomSheetReactionAddon');\n const { left, right } = useSafeAreaInsets();\n\n useChannelHandler(sdk, handlerId, {\n async onReactionUpdated(eventChannel, event) {\n if (channel?.url === eventChannel.url && event.messageId === message?.messageId) {\n const msg = (await sdk.message.getMessage({\n includeReactions: true,\n messageId: message.messageId,\n channelUrl: message.channelUrl,\n channelType: message.channelType,\n })) as null | BaseMessage;\n if (msg) updateReactionFocusedItem({ message: msg });\n }\n },\n });\n\n const emojiAll = emojiManager.allEmoji.slice(0, 5);\n const color = colors.ui.reaction.default;\n\n return (\n <View style={[styles.container, { marginRight: right, marginLeft: left }]}>\n {emojiAll.map(({ key, url }) => {\n const reactionUserIds = message?.reactions?.find((it) => it.key === key)?.userIds ?? [];\n const currentUserIdx = reactionUserIds.indexOf(currentUser?.userId ?? UNKNOWN_USER_ID);\n const reacted = currentUserIdx > -1;\n\n const onPress = () => {\n if (reacted) channel.deleteReaction(message, key);\n else channel.addReaction(message, key);\n onClose();\n };\n\n return (\n <Pressable\n key={key}\n onPress={onPress}\n style={({ pressed }) => [\n styles.button,\n { backgroundColor: reacted || pressed ? color.selected.background : color.enabled.background },\n ]}\n >\n <Image source={{ uri: url }} style={styles.emoji} />\n </Pressable>\n );\n })}\n\n <Pressable\n onPress={async () => {\n await onClose();\n openReactionList({ channel, message });\n }}\n style={({ pressed }) => [\n styles.button,\n { backgroundColor: pressed ? color.selected.background : color.enabled.background },\n ]}\n >\n <Icon icon={'emoji-more'} style={styles.emoji} color={colors.onBackground03} />\n </Pressable>\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n paddingTop: 12,\n paddingBottom: 16,\n paddingHorizontal: 18,\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n button: {\n width: 44,\n height: 44,\n padding: 4,\n borderRadius: 8,\n },\n emoji: {\n width: '100%',\n height: '100%',\n },\n});\n\nexport default BottomSheetReactionAddon;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeSafeAreaContext","_uikitChatHooks","_uikitReactNativeFoundation","_uikitUtils","_constants","_useContext","obj","__esModule","default","BottomSheetReactionAddon","_ref","onClose","message","channel","emojiManager","currentUser","sdk","useSendbirdChat","updateReactionFocusedItem","openReactionList","useReaction","colors","useUIKitTheme","handlerId","useUniqHandlerId","left","right","useSafeAreaInsets","useChannelHandler","onReactionUpdated","eventChannel","event","url","messageId","msg","getMessage","includeReactions","channelUrl","channelType","emojiAll","allEmoji","slice","color","ui","reaction","createElement","View","style","styles","container","marginRight","marginLeft","map","_ref2","_message$reactions","_message$reactions$fi","key","reactionUserIds","reactions","find","it","userIds","currentUserIdx","indexOf","userId","UNKNOWN_USER_ID","reacted","onPress","action","deleteReaction","addReaction","catch","error","Logger","warn","finally","Pressable","_ref3","pressed","button","backgroundColor","selected","background","enabled","Image","source","uri","emoji","_ref4","Icon","icon","onBackground03","createStyleSheet","paddingTop","paddingBottom","paddingHorizontal","flexDirection","justifyContent","width","height","padding","borderRadius","_default","exports"],"sources":["BottomSheetReactionAddon.tsx"],"sourcesContent":["import React from 'react';\nimport { Pressable, View } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport type { BaseMessage } from '@sendbird/chat/message';\nimport { useChannelHandler } from '@sendbird/uikit-chat-hooks';\nimport { Icon, Image, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { Logger, SendbirdBaseChannel, SendbirdBaseMessage, useUniqHandlerId } from '@sendbird/uikit-utils';\n\nimport { UNKNOWN_USER_ID } from '../../constants';\nimport { useReaction, useSendbirdChat } from '../../hooks/useContext';\n\ntype Props = {\n onClose: () => Promise<void>;\n channel: SendbirdBaseChannel;\n message: SendbirdBaseMessage;\n};\nconst BottomSheetReactionAddon = ({ onClose, message, channel }: Props) => {\n const { emojiManager, currentUser, sdk } = useSendbirdChat();\n const { updateReactionFocusedItem, openReactionList } = useReaction();\n const { colors } = useUIKitTheme();\n const handlerId = useUniqHandlerId('BottomSheetReactionAddon');\n const { left, right } = useSafeAreaInsets();\n\n useChannelHandler(sdk, handlerId, {\n async onReactionUpdated(eventChannel, event) {\n if (channel?.url === eventChannel.url && event.messageId === message?.messageId) {\n const msg = (await sdk.message.getMessage({\n includeReactions: true,\n messageId: message.messageId,\n channelUrl: message.channelUrl,\n channelType: message.channelType,\n })) as null | BaseMessage;\n if (msg) updateReactionFocusedItem({ message: msg });\n }\n },\n });\n\n const emojiAll = emojiManager.allEmoji.slice(0, 5);\n const color = colors.ui.reaction.default;\n\n return (\n <View style={[styles.container, { marginRight: right, marginLeft: left }]}>\n {emojiAll.map(({ key, url }) => {\n const reactionUserIds = message?.reactions?.find((it) => it.key === key)?.userIds ?? [];\n const currentUserIdx = reactionUserIds.indexOf(currentUser?.userId ?? UNKNOWN_USER_ID);\n const reacted = currentUserIdx > -1;\n\n const onPress = async () => {\n const action = (message: BaseMessage, key: string) => {\n return reacted ? channel.deleteReaction(message, key) : channel.addReaction(message, key);\n };\n\n await action(message, key)\n .catch((error) => {\n Logger.warn('Failed to reaction', error);\n })\n .finally(() => {\n onClose();\n });\n };\n\n return (\n <Pressable\n key={key}\n onPress={onPress}\n style={({ pressed }) => [\n styles.button,\n { backgroundColor: reacted || pressed ? color.selected.background : color.enabled.background },\n ]}\n >\n <Image source={{ uri: url }} style={styles.emoji} />\n </Pressable>\n );\n })}\n\n <Pressable\n onPress={async () => {\n await onClose();\n openReactionList({ channel, message });\n }}\n style={({ pressed }) => [\n styles.button,\n { backgroundColor: pressed ? color.selected.background : color.enabled.background },\n ]}\n >\n <Icon icon={'emoji-more'} style={styles.emoji} color={colors.onBackground03} />\n </Pressable>\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n paddingTop: 12,\n paddingBottom: 16,\n paddingHorizontal: 18,\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n button: {\n width: 44,\n height: 44,\n padding: 4,\n borderRadius: 8,\n },\n emoji: {\n width: '100%',\n height: '100%',\n },\n});\n\nexport default BottomSheetReactionAddon;\n"],"mappings":"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"}
@@ -8,6 +8,7 @@ var _react = _interopRequireDefault(require("react"));
8
8
  var _reactNative = require("react-native");
9
9
  var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
10
10
  var _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundation");
11
+ var _uikitUtils = require("@sendbird/uikit-utils");
11
12
  var _constants = require("../../constants");
12
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
14
  const NUM_COLUMN = 6;
@@ -78,11 +79,16 @@ const ReactionListBottomSheet = _ref => {
78
79
  style: styles.emojiItem
79
80
  }, /*#__PURE__*/_react.default.createElement(_reactNative.Pressable, {
80
81
  key: key,
81
- onPress: () => {
82
+ onPress: async () => {
82
83
  if (message && channel) {
83
- if (reacted) channel.deleteReaction(message, key);else channel.addReaction(message, key);
84
+ const action = (message, key) => {
85
+ return reacted ? channel.deleteReaction(message, key) : channel.addReaction(message, key);
86
+ };
87
+ action(message, key).catch(error => {
88
+ _uikitUtils.Logger.warn('Failed to reaction', error);
89
+ });
84
90
  }
85
- onClose();
91
+ await onClose();
86
92
  },
87
93
  style: _ref3 => {
88
94
  let {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeSafeAreaContext","_uikitReactNativeFoundation","_constants","obj","__esModule","default","NUM_COLUMN","ReactionListBottomSheet","_ref","visible","onClose","onDismiss","reactionCtx","chatCtx","width","useWindowDimensions","bottom","left","right","useSafeAreaInsets","colors","useUIKitTheme","currentUser","emojiManager","channel","message","color","ui","reaction","createElement","Modal","type","Boolean","backgroundStyle","styles","modal","View","style","container","paddingBottom","backgroundColor","dialog","none","background","paddingLeft","paddingHorizontal","paddingRight","FlatList","data","allEmoji","numColumns","keyExtractor","item","key","contentContainerStyle","flatlist","ItemSeparatorComponent","height","renderItem","_ref2","_message$reactions","_message$reactions$fi","url","reactedUserIds","reactions","find","it","userIds","idx","indexOf","userId","UNKNOWN_USER_ID","reacted","emojiItem","Pressable","onPress","deleteReaction","addReaction","_ref3","pressed","button","selected","enabled","Image","source","uri","emoji","createStyleSheet","overflow","borderTopLeftRadius","borderTopRightRadius","paddingTop","flexDirection","alignItems","justifyContent","padding","borderRadius","_default","exports"],"sources":["ReactionListBottomSheet.tsx"],"sourcesContent":["import React from 'react';\nimport { FlatList, Pressable, View, useWindowDimensions } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { Image, Modal, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\n\nimport { UNKNOWN_USER_ID } from '../../constants';\nimport type { ReactionBottomSheetProps } from './index';\n\nconst NUM_COLUMN = 6;\nconst ReactionListBottomSheet = ({ visible, onClose, onDismiss, reactionCtx, chatCtx }: ReactionBottomSheetProps) => {\n const { width } = useWindowDimensions();\n const { bottom, left, right } = useSafeAreaInsets();\n const { colors } = useUIKitTheme();\n\n const { currentUser, emojiManager } = chatCtx;\n const { channel, message } = reactionCtx;\n const color = colors.ui.reaction.default;\n\n return (\n <Modal\n type={'slide'}\n visible={Boolean(visible && channel && message)}\n onClose={onClose}\n onDismiss={onDismiss}\n backgroundStyle={styles.modal}\n >\n <View\n style={[\n styles.container,\n {\n width,\n paddingBottom: bottom,\n backgroundColor: colors.ui.dialog.default.none.background,\n paddingLeft: left + styles.container.paddingHorizontal,\n paddingRight: right + styles.container.paddingHorizontal,\n },\n ]}\n >\n <FlatList\n data={emojiManager.allEmoji}\n numColumns={NUM_COLUMN}\n keyExtractor={(item) => item.key}\n contentContainerStyle={styles.flatlist}\n ItemSeparatorComponent={() => <View style={{ height: 16 }} />}\n renderItem={({ item: { key, url } }) => {\n const reactedUserIds = message?.reactions?.find((it) => it.key === key)?.userIds ?? [];\n\n const idx = reactedUserIds.indexOf(currentUser?.userId ?? UNKNOWN_USER_ID);\n const reacted = idx > -1;\n\n return (\n <View style={styles.emojiItem}>\n <Pressable\n key={key}\n onPress={() => {\n if (message && channel) {\n if (reacted) channel.deleteReaction(message, key);\n else channel.addReaction(message, key);\n }\n onClose();\n }}\n style={({ pressed }) => [\n styles.button,\n { backgroundColor: reacted || pressed ? color.selected.background : color.enabled.background },\n ]}\n >\n <Image source={{ uri: url }} style={styles.emoji} />\n </Pressable>\n </View>\n );\n }}\n />\n </View>\n </Modal>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n overflow: 'hidden',\n borderTopLeftRadius: 8,\n borderTopRightRadius: 8,\n paddingTop: 16,\n paddingHorizontal: 18,\n flexDirection: 'row',\n },\n modal: {\n alignItems: 'center',\n justifyContent: 'flex-end',\n },\n flatlist: {\n width: '100%',\n flexDirection: 'column',\n justifyContent: 'space-between',\n },\n emojiItem: {\n width: `${100 / NUM_COLUMN}%`,\n alignItems: 'center',\n },\n button: {\n width: 44,\n height: 44,\n padding: 4,\n borderRadius: 8,\n },\n emoji: {\n width: '100%',\n height: '100%',\n },\n});\n\nexport default ReactionListBottomSheet;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeSafeAreaContext","_uikitReactNativeFoundation","_uikitUtils","_constants","obj","__esModule","default","NUM_COLUMN","ReactionListBottomSheet","_ref","visible","onClose","onDismiss","reactionCtx","chatCtx","width","useWindowDimensions","bottom","left","right","useSafeAreaInsets","colors","useUIKitTheme","currentUser","emojiManager","channel","message","color","ui","reaction","createElement","Modal","type","Boolean","backgroundStyle","styles","modal","View","style","container","paddingBottom","backgroundColor","dialog","none","background","paddingLeft","paddingHorizontal","paddingRight","FlatList","data","allEmoji","numColumns","keyExtractor","item","key","contentContainerStyle","flatlist","ItemSeparatorComponent","height","renderItem","_ref2","_message$reactions","_message$reactions$fi","url","reactedUserIds","reactions","find","it","userIds","idx","indexOf","userId","UNKNOWN_USER_ID","reacted","emojiItem","Pressable","onPress","action","deleteReaction","addReaction","catch","error","Logger","warn","_ref3","pressed","button","selected","enabled","Image","source","uri","emoji","createStyleSheet","overflow","borderTopLeftRadius","borderTopRightRadius","paddingTop","flexDirection","alignItems","justifyContent","padding","borderRadius","_default","exports"],"sources":["ReactionListBottomSheet.tsx"],"sourcesContent":["import React from 'react';\nimport { FlatList, Pressable, View, useWindowDimensions } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport type { BaseMessage } from '@sendbird/chat/message';\nimport { Image, Modal, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { Logger } from '@sendbird/uikit-utils';\n\nimport { UNKNOWN_USER_ID } from '../../constants';\nimport type { ReactionBottomSheetProps } from './index';\n\nconst NUM_COLUMN = 6;\nconst ReactionListBottomSheet = ({ visible, onClose, onDismiss, reactionCtx, chatCtx }: ReactionBottomSheetProps) => {\n const { width } = useWindowDimensions();\n const { bottom, left, right } = useSafeAreaInsets();\n const { colors } = useUIKitTheme();\n\n const { currentUser, emojiManager } = chatCtx;\n const { channel, message } = reactionCtx;\n const color = colors.ui.reaction.default;\n\n return (\n <Modal\n type={'slide'}\n visible={Boolean(visible && channel && message)}\n onClose={onClose}\n onDismiss={onDismiss}\n backgroundStyle={styles.modal}\n >\n <View\n style={[\n styles.container,\n {\n width,\n paddingBottom: bottom,\n backgroundColor: colors.ui.dialog.default.none.background,\n paddingLeft: left + styles.container.paddingHorizontal,\n paddingRight: right + styles.container.paddingHorizontal,\n },\n ]}\n >\n <FlatList\n data={emojiManager.allEmoji}\n numColumns={NUM_COLUMN}\n keyExtractor={(item) => item.key}\n contentContainerStyle={styles.flatlist}\n ItemSeparatorComponent={() => <View style={{ height: 16 }} />}\n renderItem={({ item: { key, url } }) => {\n const reactedUserIds = message?.reactions?.find((it) => it.key === key)?.userIds ?? [];\n\n const idx = reactedUserIds.indexOf(currentUser?.userId ?? UNKNOWN_USER_ID);\n const reacted = idx > -1;\n\n return (\n <View style={styles.emojiItem}>\n <Pressable\n key={key}\n onPress={async () => {\n if (message && channel) {\n const action = (message: BaseMessage, key: string) => {\n return reacted ? channel.deleteReaction(message, key) : channel.addReaction(message, key);\n };\n\n action(message, key).catch((error) => {\n Logger.warn('Failed to reaction', error);\n });\n }\n await onClose();\n }}\n style={({ pressed }) => [\n styles.button,\n { backgroundColor: reacted || pressed ? color.selected.background : color.enabled.background },\n ]}\n >\n <Image source={{ uri: url }} style={styles.emoji} />\n </Pressable>\n </View>\n );\n }}\n />\n </View>\n </Modal>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n overflow: 'hidden',\n borderTopLeftRadius: 8,\n borderTopRightRadius: 8,\n paddingTop: 16,\n paddingHorizontal: 18,\n flexDirection: 'row',\n },\n modal: {\n alignItems: 'center',\n justifyContent: 'flex-end',\n },\n flatlist: {\n width: '100%',\n flexDirection: 'column',\n justifyContent: 'space-between',\n },\n emojiItem: {\n width: `${100 / NUM_COLUMN}%`,\n alignItems: 'center',\n },\n button: {\n width: 44,\n height: 44,\n padding: 4,\n borderRadius: 8,\n },\n emoji: {\n width: '100%',\n height: '100%',\n },\n});\n\nexport default ReactionListBottomSheet;\n"],"mappings":"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"}
@@ -190,7 +190,7 @@ const ThreadParentMessageRenderer = props => {
190
190
  durationMetaArrayKey: _constants.VOICE_MESSAGE_META_ARRAY_DURATION_KEY,
191
191
  onUnmount: () => {
192
192
  if ((0, _uikitUtils.isVoiceMessage)(parentMessage) && playerService.uri === parentMessage.url) {
193
- resetPlayer();
193
+ resetPlayer().catch(_ => {});
194
194
  }
195
195
  }
196
196
  }, messageProps));
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_uikitReactNativeFoundation","_uikitUtils","_constants","_useContext","_ThreadParentMessage","_interopRequireDefault","_ThreadParentMessageFile","_ThreadParentMessageFile2","_ThreadParentMessageFile3","_ThreadParentMessage2","_ThreadParentMessageUser","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","ThreadParentMessageRenderer","props","handlers","useSBUHandlers","playerUnsubscribes","useRef","sbOptions","currentUser","mentionManager","useSendbirdChat","palette","useUIKitTheme","mediaService","playerService","usePlatformService","parentMessage","resetPlayer","current","forEach","unsubscribe","reset","messageProps","onPressURL","url","onOpenURL","onToggleVoiceMessage","state","setState","isVoiceMessage","sendingStatus","uri","pause","play","shouldSeekToTime","duration","currentTime","seekFinished","forPlayback","addPlaybackListener","_ref","stopped","prevState","forState","addStateListener","status","push","seek","userMessageProps","renderRegexTextChildren","message","shouldUseMentionedMessageTemplate","uikit","groupChannel","channel","enableMention","mentionedMessageTemplate","regexTextPatterns","regex","templateRegex","replacer","_ref2","_parentMessage$mentio","match","groups","parentProps","index","keyPrefix","user","mentionedUsers","find","it","userId","mentionColor","isMyMessage","onBackgroundLight01","color","createElement","Text","onPress","_messageProps$onPress","onPressMentionedUser","onLongPress","style","fontWeight","backgroundColor","highlight","asMentionedMessageText","getMessageType","fetchThumbnailFromVideoSource","getVideoThumbnail","timeMills","durationMetaArrayKey","VOICE_MESSAGE_META_ARRAY_DURATION_KEY","onUnmount","_default","React","memo","exports"],"sources":["index.tsx"],"sourcesContent":["import React, { useRef } from 'react';\n\nimport { RegexTextPattern, Text, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdFileMessage,\n type SendbirdUser,\n SendbirdUserMessage,\n getMessageType,\n isMyMessage,\n isVoiceMessage,\n} from '@sendbird/uikit-utils';\n\nimport { VOICE_MESSAGE_META_ARRAY_DURATION_KEY } from '../../constants';\nimport { usePlatformService, useSBUHandlers, useSendbirdChat } from './../../hooks/useContext';\nimport ThreadParentMessageFile from './ThreadParentMessage.file';\nimport ThreadParentMessageFileImage from './ThreadParentMessage.file.image';\nimport ThreadParentMessageFileVideo from './ThreadParentMessage.file.video';\nimport ThreadParentMessageFileVoice, { VoiceFileMessageState } from './ThreadParentMessage.file.voice';\nimport ThreadParentMessageUser from './ThreadParentMessage.user';\nimport ThreadParentMessageUserOg from './ThreadParentMessage.user.og';\n\nexport type ThreadParentMessageRendererProps<AdditionalProps = unknown> = {\n parentMessage: SendbirdUserMessage | SendbirdFileMessage;\n onPress?: () => void;\n onLongPress?: () => void;\n onPressURL?: (url: string) => void;\n onPressMentionedUser?: (mentionedUser?: SendbirdUser) => void;\n onToggleVoiceMessage?: (\n state: VoiceFileMessageState,\n setState: React.Dispatch<React.SetStateAction<VoiceFileMessageState>>,\n ) => Promise<void>;\n} & AdditionalProps;\n\nconst ThreadParentMessageRenderer = (props: ThreadParentMessageRendererProps) => {\n const handlers = useSBUHandlers();\n const playerUnsubscribes = useRef<(() => void)[]>([]);\n const { sbOptions, currentUser, mentionManager } = useSendbirdChat();\n const { palette } = useUIKitTheme();\n const { mediaService, playerService } = usePlatformService();\n const parentMessage = props.parentMessage;\n\n const resetPlayer = async () => {\n playerUnsubscribes.current.forEach((unsubscribe) => {\n try {\n unsubscribe();\n } catch {}\n });\n playerUnsubscribes.current.length = 0;\n await playerService.reset();\n };\n\n const messageProps: ThreadParentMessageRendererProps = {\n onPressURL: (url) => handlers.onOpenURL(url),\n onToggleVoiceMessage: async (state, setState) => {\n if (isVoiceMessage(parentMessage) && parentMessage.sendingStatus === 'succeeded') {\n if (playerService.uri === parentMessage.url) {\n if (playerService.state === 'playing') {\n await playerService.pause();\n } else {\n await playerService.play(parentMessage.url);\n }\n } else {\n if (playerService.state !== 'idle') {\n await resetPlayer();\n }\n\n const shouldSeekToTime = state.duration > state.currentTime && state.currentTime > 0;\n let seekFinished = !shouldSeekToTime;\n\n const forPlayback = playerService.addPlaybackListener(({ stopped, currentTime, duration }) => {\n if (seekFinished) {\n setState((prevState) => ({ ...prevState, currentTime: stopped ? 0 : currentTime, duration }));\n }\n });\n const forState = playerService.addStateListener((state) => {\n switch (state) {\n case 'preparing':\n setState((prevState) => ({ ...prevState, status: 'preparing' }));\n break;\n case 'playing':\n setState((prevState) => ({ ...prevState, status: 'playing' }));\n break;\n case 'idle':\n case 'paused': {\n setState((prevState) => ({ ...prevState, status: 'paused' }));\n break;\n }\n case 'stopped':\n setState((prevState) => ({ ...prevState, status: 'paused' }));\n break;\n }\n });\n playerUnsubscribes.current.push(forPlayback, forState);\n\n await playerService.play(parentMessage.url);\n if (shouldSeekToTime) {\n await playerService.seek(state.currentTime);\n seekFinished = true;\n }\n }\n }\n },\n ...props,\n };\n\n const userMessageProps: {\n renderRegexTextChildren: (message: SendbirdUserMessage) => string;\n regexTextPatterns: RegexTextPattern[];\n } = {\n renderRegexTextChildren: (message) => {\n if (\n mentionManager.shouldUseMentionedMessageTemplate(message, sbOptions.uikit.groupChannel.channel.enableMention)\n ) {\n return message.mentionedMessageTemplate;\n } else {\n return message.message;\n }\n },\n regexTextPatterns: [\n {\n regex: mentionManager.templateRegex,\n replacer({ match, groups, parentProps, index, keyPrefix }) {\n const user = parentMessage.mentionedUsers?.find((it) => it.userId === groups[2]);\n if (user) {\n const mentionColor =\n !isMyMessage(parentMessage, currentUser?.userId) && user.userId === currentUser?.userId\n ? palette.onBackgroundLight01\n : parentProps?.color;\n\n return (\n <Text\n {...parentProps}\n key={`${keyPrefix}-${index}`}\n color={mentionColor}\n onPress={() => messageProps.onPressMentionedUser?.(user)}\n onLongPress={messageProps.onLongPress}\n style={[\n parentProps?.style,\n { fontWeight: '700' },\n user.userId === currentUser?.userId && { backgroundColor: palette.highlight },\n ]}\n >\n {`${mentionManager.asMentionedMessageText(user)}`}\n </Text>\n );\n }\n return match;\n },\n },\n ],\n };\n\n switch (getMessageType(props.parentMessage)) {\n case 'user': {\n return <ThreadParentMessageUser {...userMessageProps} {...messageProps} />;\n }\n case 'user.opengraph': {\n return <ThreadParentMessageUserOg {...userMessageProps} {...messageProps} />;\n }\n case 'file':\n case 'file.audio': {\n return <ThreadParentMessageFile {...messageProps} />;\n }\n case 'file.video': {\n return (\n <ThreadParentMessageFileVideo\n fetchThumbnailFromVideoSource={(uri) => mediaService.getVideoThumbnail({ url: uri, timeMills: 1000 })}\n {...messageProps}\n />\n );\n }\n case 'file.image': {\n return <ThreadParentMessageFileImage {...messageProps} />;\n }\n case 'file.voice': {\n return (\n <ThreadParentMessageFileVoice\n durationMetaArrayKey={VOICE_MESSAGE_META_ARRAY_DURATION_KEY}\n onUnmount={() => {\n if (isVoiceMessage(parentMessage) && playerService.uri === parentMessage.url) {\n resetPlayer();\n }\n }}\n {...messageProps}\n />\n );\n }\n default: {\n return null;\n }\n }\n};\n\nexport default React.memo(ThreadParentMessageRenderer);\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_uikitReactNativeFoundation","_uikitUtils","_constants","_useContext","_ThreadParentMessage","_interopRequireDefault","_ThreadParentMessageFile","_ThreadParentMessageFile2","_ThreadParentMessageFile3","_ThreadParentMessage2","_ThreadParentMessageUser","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","ThreadParentMessageRenderer","props","handlers","useSBUHandlers","playerUnsubscribes","useRef","sbOptions","currentUser","mentionManager","useSendbirdChat","palette","useUIKitTheme","mediaService","playerService","usePlatformService","parentMessage","resetPlayer","current","forEach","unsubscribe","reset","messageProps","onPressURL","url","onOpenURL","onToggleVoiceMessage","state","setState","isVoiceMessage","sendingStatus","uri","pause","play","shouldSeekToTime","duration","currentTime","seekFinished","forPlayback","addPlaybackListener","_ref","stopped","prevState","forState","addStateListener","status","push","seek","userMessageProps","renderRegexTextChildren","message","shouldUseMentionedMessageTemplate","uikit","groupChannel","channel","enableMention","mentionedMessageTemplate","regexTextPatterns","regex","templateRegex","replacer","_ref2","_parentMessage$mentio","match","groups","parentProps","index","keyPrefix","user","mentionedUsers","find","it","userId","mentionColor","isMyMessage","onBackgroundLight01","color","createElement","Text","onPress","_messageProps$onPress","onPressMentionedUser","onLongPress","style","fontWeight","backgroundColor","highlight","asMentionedMessageText","getMessageType","fetchThumbnailFromVideoSource","getVideoThumbnail","timeMills","durationMetaArrayKey","VOICE_MESSAGE_META_ARRAY_DURATION_KEY","onUnmount","catch","_","_default","React","memo","exports"],"sources":["index.tsx"],"sourcesContent":["import React, { useRef } from 'react';\n\nimport { RegexTextPattern, Text, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdFileMessage,\n type SendbirdUser,\n SendbirdUserMessage,\n getMessageType,\n isMyMessage,\n isVoiceMessage,\n} from '@sendbird/uikit-utils';\n\nimport { VOICE_MESSAGE_META_ARRAY_DURATION_KEY } from '../../constants';\nimport { usePlatformService, useSBUHandlers, useSendbirdChat } from './../../hooks/useContext';\nimport ThreadParentMessageFile from './ThreadParentMessage.file';\nimport ThreadParentMessageFileImage from './ThreadParentMessage.file.image';\nimport ThreadParentMessageFileVideo from './ThreadParentMessage.file.video';\nimport ThreadParentMessageFileVoice, { VoiceFileMessageState } from './ThreadParentMessage.file.voice';\nimport ThreadParentMessageUser from './ThreadParentMessage.user';\nimport ThreadParentMessageUserOg from './ThreadParentMessage.user.og';\n\nexport type ThreadParentMessageRendererProps<AdditionalProps = unknown> = {\n parentMessage: SendbirdUserMessage | SendbirdFileMessage;\n onPress?: () => void;\n onLongPress?: () => void;\n onPressURL?: (url: string) => void;\n onPressMentionedUser?: (mentionedUser?: SendbirdUser) => void;\n onToggleVoiceMessage?: (\n state: VoiceFileMessageState,\n setState: React.Dispatch<React.SetStateAction<VoiceFileMessageState>>,\n ) => Promise<void>;\n} & AdditionalProps;\n\nconst ThreadParentMessageRenderer = (props: ThreadParentMessageRendererProps) => {\n const handlers = useSBUHandlers();\n const playerUnsubscribes = useRef<(() => void)[]>([]);\n const { sbOptions, currentUser, mentionManager } = useSendbirdChat();\n const { palette } = useUIKitTheme();\n const { mediaService, playerService } = usePlatformService();\n const parentMessage = props.parentMessage;\n\n const resetPlayer = async () => {\n playerUnsubscribes.current.forEach((unsubscribe) => {\n try {\n unsubscribe();\n } catch {}\n });\n playerUnsubscribes.current.length = 0;\n await playerService.reset();\n };\n\n const messageProps: ThreadParentMessageRendererProps = {\n onPressURL: (url) => handlers.onOpenURL(url),\n onToggleVoiceMessage: async (state, setState) => {\n if (isVoiceMessage(parentMessage) && parentMessage.sendingStatus === 'succeeded') {\n if (playerService.uri === parentMessage.url) {\n if (playerService.state === 'playing') {\n await playerService.pause();\n } else {\n await playerService.play(parentMessage.url);\n }\n } else {\n if (playerService.state !== 'idle') {\n await resetPlayer();\n }\n\n const shouldSeekToTime = state.duration > state.currentTime && state.currentTime > 0;\n let seekFinished = !shouldSeekToTime;\n\n const forPlayback = playerService.addPlaybackListener(({ stopped, currentTime, duration }) => {\n if (seekFinished) {\n setState((prevState) => ({ ...prevState, currentTime: stopped ? 0 : currentTime, duration }));\n }\n });\n const forState = playerService.addStateListener((state) => {\n switch (state) {\n case 'preparing':\n setState((prevState) => ({ ...prevState, status: 'preparing' }));\n break;\n case 'playing':\n setState((prevState) => ({ ...prevState, status: 'playing' }));\n break;\n case 'idle':\n case 'paused': {\n setState((prevState) => ({ ...prevState, status: 'paused' }));\n break;\n }\n case 'stopped':\n setState((prevState) => ({ ...prevState, status: 'paused' }));\n break;\n }\n });\n playerUnsubscribes.current.push(forPlayback, forState);\n\n await playerService.play(parentMessage.url);\n if (shouldSeekToTime) {\n await playerService.seek(state.currentTime);\n seekFinished = true;\n }\n }\n }\n },\n ...props,\n };\n\n const userMessageProps: {\n renderRegexTextChildren: (message: SendbirdUserMessage) => string;\n regexTextPatterns: RegexTextPattern[];\n } = {\n renderRegexTextChildren: (message) => {\n if (\n mentionManager.shouldUseMentionedMessageTemplate(message, sbOptions.uikit.groupChannel.channel.enableMention)\n ) {\n return message.mentionedMessageTemplate;\n } else {\n return message.message;\n }\n },\n regexTextPatterns: [\n {\n regex: mentionManager.templateRegex,\n replacer({ match, groups, parentProps, index, keyPrefix }) {\n const user = parentMessage.mentionedUsers?.find((it) => it.userId === groups[2]);\n if (user) {\n const mentionColor =\n !isMyMessage(parentMessage, currentUser?.userId) && user.userId === currentUser?.userId\n ? palette.onBackgroundLight01\n : parentProps?.color;\n\n return (\n <Text\n {...parentProps}\n key={`${keyPrefix}-${index}`}\n color={mentionColor}\n onPress={() => messageProps.onPressMentionedUser?.(user)}\n onLongPress={messageProps.onLongPress}\n style={[\n parentProps?.style,\n { fontWeight: '700' },\n user.userId === currentUser?.userId && { backgroundColor: palette.highlight },\n ]}\n >\n {`${mentionManager.asMentionedMessageText(user)}`}\n </Text>\n );\n }\n return match;\n },\n },\n ],\n };\n\n switch (getMessageType(props.parentMessage)) {\n case 'user': {\n return <ThreadParentMessageUser {...userMessageProps} {...messageProps} />;\n }\n case 'user.opengraph': {\n return <ThreadParentMessageUserOg {...userMessageProps} {...messageProps} />;\n }\n case 'file':\n case 'file.audio': {\n return <ThreadParentMessageFile {...messageProps} />;\n }\n case 'file.video': {\n return (\n <ThreadParentMessageFileVideo\n fetchThumbnailFromVideoSource={(uri) => mediaService.getVideoThumbnail({ url: uri, timeMills: 1000 })}\n {...messageProps}\n />\n );\n }\n case 'file.image': {\n return <ThreadParentMessageFileImage {...messageProps} />;\n }\n case 'file.voice': {\n return (\n <ThreadParentMessageFileVoice\n durationMetaArrayKey={VOICE_MESSAGE_META_ARRAY_DURATION_KEY}\n onUnmount={() => {\n if (isVoiceMessage(parentMessage) && playerService.uri === parentMessage.url) {\n resetPlayer().catch((_) => {});\n }\n }}\n {...messageProps}\n />\n );\n }\n default: {\n return null;\n }\n }\n};\n\nexport default React.memo(ThreadParentMessageRenderer);\n"],"mappings":"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"}
@@ -114,7 +114,6 @@ const SendbirdUIKitContainer = props => {
114
114
  };
115
115
  const sbuHandlers = {
116
116
  onOpenURL: _SBUUtils.default.openURL,
117
- onOpenFileURL: _SBUUtils.default.openURL,
118
117
  ...handlers
119
118
  };
120
119
  return /*#__PURE__*/_react.default.createElement(_SBUHandlersCtx.SBUHandlersProvider, sbuHandlers, /*#__PURE__*/_react.default.createElement(_reactNativeSafeAreaContext.SafeAreaProvider, null, /*#__PURE__*/_react.default.createElement(_uikitTools.UIKitConfigProvider, {