@sendbird/uikit-react-native 3.7.1 → 3.7.2
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.
- package/lib/commonjs/components/ChannelMessageList/index.js +2 -3
- package/lib/commonjs/components/ChannelMessageList/index.js.map +1 -1
- package/lib/commonjs/components/ChannelThreadMessageList/index.js +2 -3
- package/lib/commonjs/components/ChannelThreadMessageList/index.js.map +1 -1
- package/lib/commonjs/components/GroupChannelMessageRenderer/index.js +2 -2
- package/lib/commonjs/components/GroupChannelMessageRenderer/index.js.map +1 -1
- package/lib/commonjs/components/OpenChannelMessageRenderer/index.js +2 -2
- package/lib/commonjs/components/OpenChannelMessageRenderer/index.js.map +1 -1
- package/lib/commonjs/components/ThreadParentMessageRenderer/index.js +2 -2
- package/lib/commonjs/components/ThreadParentMessageRenderer/index.js.map +1 -1
- package/lib/commonjs/containers/SendbirdUIKitContainer.js +10 -2
- package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/commonjs/contexts/SBUHandlersCtx.js +25 -0
- package/lib/commonjs/contexts/SBUHandlersCtx.js.map +1 -0
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js +2 -3
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js.map +1 -1
- package/lib/commonjs/hooks/useContext.js +8 -1
- package/lib/commonjs/hooks/useContext.js.map +1 -1
- package/lib/commonjs/version.js +1 -1
- package/lib/commonjs/version.js.map +1 -1
- package/lib/module/components/ChannelMessageList/index.js +3 -4
- package/lib/module/components/ChannelMessageList/index.js.map +1 -1
- package/lib/module/components/ChannelThreadMessageList/index.js +3 -4
- package/lib/module/components/ChannelThreadMessageList/index.js.map +1 -1
- package/lib/module/components/GroupChannelMessageRenderer/index.js +3 -3
- package/lib/module/components/GroupChannelMessageRenderer/index.js.map +1 -1
- package/lib/module/components/OpenChannelMessageRenderer/index.js +3 -3
- package/lib/module/components/OpenChannelMessageRenderer/index.js.map +1 -1
- package/lib/module/components/ThreadParentMessageRenderer/index.js +3 -3
- package/lib/module/components/ThreadParentMessageRenderer/index.js.map +1 -1
- package/lib/module/containers/SendbirdUIKitContainer.js +10 -2
- package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/module/contexts/SBUHandlersCtx.js +16 -0
- package/lib/module/contexts/SBUHandlersCtx.js.map +1 -0
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js +3 -4
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js.map +1 -1
- package/lib/module/hooks/useContext.js +6 -0
- package/lib/module/hooks/useContext.js.map +1 -1
- package/lib/module/version.js +1 -1
- package/lib/module/version.js.map +1 -1
- package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +3 -1
- package/lib/typescript/src/contexts/SBUHandlersCtx.d.ts +21 -0
- package/lib/typescript/src/hooks/useContext.d.ts +1 -0
- package/lib/typescript/src/version.d.ts +1 -1
- package/package.json +5 -5
- package/src/components/ChannelMessageList/index.tsx +9 -4
- package/src/components/ChannelThreadMessageList/index.tsx +9 -4
- package/src/components/GroupChannelMessageRenderer/index.tsx +3 -3
- package/src/components/OpenChannelMessageRenderer/index.tsx +3 -3
- package/src/components/ThreadParentMessageRenderer/index.tsx +3 -3
- package/src/containers/SendbirdUIKitContainer.tsx +89 -77
- package/src/contexts/SBUHandlersCtx.tsx +27 -0
- package/src/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.tsx +3 -4
- package/src/hooks/useContext.ts +7 -0
- package/src/version.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_uikitReactNativeFoundation","_uikitUtils","_useContext","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_uikitReactNativeFoundation","_uikitUtils","_useContext","_OpenChannelMessageDateSeparator","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","OpenChannelMessageRenderer","_ref","channel","message","onPress","onLongPress","onShowUserProfile","enableMessageGrouping","prevMessage","nextMessage","handlers","useSBUHandlers","sbOptions","useSendbirdChat","STRINGS","useLocalization","mediaService","usePlatformService","groupWithPrev","calcMessageGrouping","Boolean","messageProps","onPressURL","url","onOpenURL","onPressAvatar","sender","hideMessageButton","grouped","strings","edited","OPEN_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","renderMessage","getMessageType","createElement","OpenChannelMessage","Admin","User","uikitWithAppInfo","openChannel","enableOgtag","OpenGraphUser","File","ImageFile","VideoFile","fetchThumbnailFromVideoSource","uri","getVideoThumbnail","timeMills","Unknown","Box","_default","React","memo","exports"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { OpenChannelMessageProps } from '@sendbird/uikit-react-native-foundation';\nimport { Box, OpenChannelMessage } from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdAdminMessage,\n SendbirdFileMessage,\n SendbirdMessage,\n SendbirdUserMessage,\n calcMessageGrouping,\n getMessageType,\n} from '@sendbird/uikit-utils';\n\nimport type { OpenChannelProps } from '../../domain/openChannel/types';\nimport { useLocalization, usePlatformService, useSBUHandlers, useSendbirdChat } from '../../hooks/useContext';\nimport OpenChannelMessageDateSeparator from './OpenChannelMessageDateSeparator';\n\nconst OpenChannelMessageRenderer: OpenChannelProps['Fragment']['renderMessage'] = ({\n channel,\n message,\n onPress,\n onLongPress,\n onShowUserProfile,\n enableMessageGrouping,\n prevMessage,\n nextMessage,\n}) => {\n const handlers = useSBUHandlers();\n const { sbOptions } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { mediaService } = usePlatformService();\n const { groupWithPrev } = calcMessageGrouping(Boolean(enableMessageGrouping), message, prevMessage, nextMessage);\n\n const messageProps: Omit<OpenChannelMessageProps<SendbirdMessage>, 'message'> = {\n channel,\n onPress,\n onLongPress,\n onPressURL: (url) => handlers.onOpenURL(url),\n onPressAvatar: () => 'sender' in message && onShowUserProfile?.(message.sender, { hideMessageButton: true }),\n grouped: groupWithPrev,\n strings: {\n edited: STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_EDITED_POSTFIX,\n senderName: ('sender' in message && message.sender.nickname) || STRINGS.LABELS.USER_NO_NAME,\n sentDate: STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_TIME(message),\n fileName: message.isFileMessage() ? STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_FILE_TITLE(message) : '',\n unknownTitle: STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_TITLE(message),\n unknownDescription: STRINGS.OPEN_CHANNEL.MESSAGE_BUBBLE_UNKNOWN_DESC(message),\n },\n };\n const renderMessage = () => {\n switch (getMessageType(message)) {\n case 'admin': {\n return <OpenChannelMessage.Admin message={message as SendbirdAdminMessage} {...messageProps} />;\n }\n case 'user': {\n return <OpenChannelMessage.User message={message as SendbirdUserMessage} {...messageProps} />;\n }\n case 'user.opengraph': {\n if (sbOptions.uikitWithAppInfo.openChannel.channel.enableOgtag) {\n return <OpenChannelMessage.OpenGraphUser message={message as SendbirdUserMessage} {...messageProps} />;\n } else {\n return <OpenChannelMessage.User message={message as SendbirdUserMessage} {...messageProps} />;\n }\n }\n case 'file':\n case 'file.voice':\n case 'file.audio': {\n return <OpenChannelMessage.File message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.image': {\n return <OpenChannelMessage.ImageFile message={message as SendbirdFileMessage} {...messageProps} />;\n }\n case 'file.video': {\n return (\n <OpenChannelMessage.VideoFile\n message={message as SendbirdFileMessage}\n fetchThumbnailFromVideoSource={(uri) => mediaService.getVideoThumbnail({ url: uri, timeMills: 1000 })}\n {...messageProps}\n />\n );\n }\n case 'unknown':\n default: {\n return <OpenChannelMessage.Unknown message={message} {...messageProps} />;\n }\n }\n };\n\n return (\n <Box>\n <OpenChannelMessageDateSeparator message={message} prevMessage={prevMessage} />\n {renderMessage()}\n </Box>\n );\n};\n\nexport default React.memo(OpenChannelMessageRenderer);\n"],"mappings":"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"}
|
|
@@ -8,7 +8,6 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
8
8
|
var _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundation");
|
|
9
9
|
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
10
10
|
var _constants = require("../../constants");
|
|
11
|
-
var _SBUUtils = _interopRequireDefault(require("../../libs/SBUUtils"));
|
|
12
11
|
var _useContext = require("./../../hooks/useContext");
|
|
13
12
|
var _ThreadParentMessage = _interopRequireDefault(require("./ThreadParentMessage.file"));
|
|
14
13
|
var _ThreadParentMessageFile = _interopRequireDefault(require("./ThreadParentMessage.file.image"));
|
|
@@ -21,6 +20,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
21
20
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
22
21
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
23
22
|
const ThreadParentMessageRenderer = props => {
|
|
23
|
+
const handlers = (0, _useContext.useSBUHandlers)();
|
|
24
24
|
const playerUnsubscribes = (0, _react.useRef)([]);
|
|
25
25
|
const {
|
|
26
26
|
sbOptions,
|
|
@@ -45,7 +45,7 @@ const ThreadParentMessageRenderer = props => {
|
|
|
45
45
|
await playerService.reset();
|
|
46
46
|
};
|
|
47
47
|
const messageProps = {
|
|
48
|
-
onPressURL: url =>
|
|
48
|
+
onPressURL: url => handlers.onOpenURL(url),
|
|
49
49
|
onToggleVoiceMessage: async (state, setState) => {
|
|
50
50
|
if ((0, _uikitUtils.isVoiceMessage)(parentMessage) && parentMessage.sendingStatus === 'succeeded') {
|
|
51
51
|
if (playerService.uri === parentMessage.url) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_uikitReactNativeFoundation","_uikitUtils","_constants","_SBUUtils","_interopRequireDefault","_useContext","_ThreadParentMessage","_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","playerUnsubscribes","useRef","sbOptions","currentUser","mentionManager","useSendbirdChat","palette","useUIKitTheme","mediaService","playerService","usePlatformService","parentMessage","resetPlayer","current","forEach","unsubscribe","reset","messageProps","onPressURL","url","SBUUtils","openURL","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 SBUUtils from '../../libs/SBUUtils';\nimport { usePlatformService, 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 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) => SBUUtils.openURL(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","_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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"}
|
|
@@ -16,6 +16,7 @@ var _uikitUtils = require("@sendbird/uikit-utils");
|
|
|
16
16
|
var _LocalizationCtx = require("../contexts/LocalizationCtx");
|
|
17
17
|
var _PlatformServiceCtx = require("../contexts/PlatformServiceCtx");
|
|
18
18
|
var _ReactionCtx = require("../contexts/ReactionCtx");
|
|
19
|
+
var _SBUHandlersCtx = require("../contexts/SBUHandlersCtx");
|
|
19
20
|
var _SendbirdChatCtx = require("../contexts/SendbirdChatCtx");
|
|
20
21
|
var _UserProfileCtx = require("../contexts/UserProfileCtx");
|
|
21
22
|
var _EmojiManager = _interopRequireDefault(require("../libs/EmojiManager"));
|
|
@@ -23,6 +24,7 @@ var _ImageCompressionConfig = _interopRequireDefault(require("../libs/ImageCompr
|
|
|
23
24
|
var _InternalLocalCacheStorage = _interopRequireDefault(require("../libs/InternalLocalCacheStorage"));
|
|
24
25
|
var _MentionConfig = _interopRequireDefault(require("../libs/MentionConfig"));
|
|
25
26
|
var _MentionManager = _interopRequireDefault(require("../libs/MentionManager"));
|
|
27
|
+
var _SBUUtils = _interopRequireDefault(require("../libs/SBUUtils"));
|
|
26
28
|
var _VoiceMessageConfig = _interopRequireDefault(require("../libs/VoiceMessageConfig"));
|
|
27
29
|
var _VoiceMessageStatusManager = _interopRequireDefault(require("../libs/VoiceMessageStatusManager"));
|
|
28
30
|
var _StringSet = _interopRequireDefault(require("../localization/StringSet.en"));
|
|
@@ -62,6 +64,7 @@ const SendbirdUIKitContainer = props => {
|
|
|
62
64
|
localization,
|
|
63
65
|
styles,
|
|
64
66
|
errorBoundary,
|
|
67
|
+
handlers,
|
|
65
68
|
toast,
|
|
66
69
|
userProfile,
|
|
67
70
|
reaction
|
|
@@ -109,7 +112,12 @@ const SendbirdUIKitContainer = props => {
|
|
|
109
112
|
return /*#__PURE__*/_react.default.createElement(_InternalErrorBoundaryContainer.default, errorBoundary, children);
|
|
110
113
|
}
|
|
111
114
|
};
|
|
112
|
-
|
|
115
|
+
const sbuHandlers = {
|
|
116
|
+
onOpenURL: _SBUUtils.default.openURL,
|
|
117
|
+
onOpenFileURL: _SBUUtils.default.openURL,
|
|
118
|
+
...handlers
|
|
119
|
+
};
|
|
120
|
+
return /*#__PURE__*/_react.default.createElement(_SBUHandlersCtx.SBUHandlersProvider, sbuHandlers, /*#__PURE__*/_react.default.createElement(_reactNativeSafeAreaContext.SafeAreaProvider, null, /*#__PURE__*/_react.default.createElement(_uikitTools.UIKitConfigProvider, {
|
|
113
121
|
storage: internalStorage,
|
|
114
122
|
localConfigs: {
|
|
115
123
|
common: uikitOptions === null || uikitOptions === void 0 ? void 0 : uikitOptions.common,
|
|
@@ -169,7 +177,7 @@ const SendbirdUIKitContainer = props => {
|
|
|
169
177
|
}
|
|
170
178
|
}
|
|
171
179
|
}, renderChildren());
|
|
172
|
-
})))))))))));
|
|
180
|
+
}))))))))))));
|
|
173
181
|
};
|
|
174
182
|
const initializeSendbird = (appId, options) => {
|
|
175
183
|
let chatSDK;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeSafeAreaContext","_chat","_groupChannel","_openChannel","_uikitReactNativeFoundation","_uikitTools","_uikitUtils","_LocalizationCtx","_PlatformServiceCtx","_ReactionCtx","_SendbirdChatCtx","_UserProfileCtx","_EmojiManager","_interopRequireDefault","_ImageCompressionConfig","_InternalLocalCacheStorage","_MentionConfig","_MentionManager","_VoiceMessageConfig","_VoiceMessageStatusManager","_StringSet","_dynamicModule","_version","_InternalErrorBoundaryContainer","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","NetInfo","SBUDynamicModule","SendbirdUIKit","freeze","VERSION","PLATFORM","Platform","OS","toLowerCase","DEFAULT","AUTO_PUSH_TOKEN_REGISTRATION","USE_USER_ID_FOR_NICKNAME","IMAGE_COMPRESSION","exports","chatOmitKeys","sanitizeChatOptions","chatOptions","opts","forEach","SendbirdUIKitContainer","props","children","appId","uikitOptions","platformServices","localization","styles","errorBoundary","toast","userProfile","reaction","localCacheStorage","Error","Logger","warn","defaultStringSet","stringSet","StringSetEn","isFirstMount","useIsFirstMount","unsubscribes","useRef","internalStorage","useState","InternalLocalCacheStorage","sdkInstance","setSdkInstance","sendbird","initializeSendbird","current","chatSDK","imageCompressionConfig","voiceMessageConfig","mentionConfig","useConfigInstance","emojiManager","useMemo","EmojiManager","mentionManager","MentionManager","voiceMessageStatusManager","VoiceMessageStatusManager","useLayoutEffect","u","renderChildren","disabled","createElement","SafeAreaProvider","UIKitConfigProvider","storage","localConfigs","common","groupChannel","channel","enableReactionsSupergroup","undefined","channelList","groupChannelList","setting","groupChannelSettings","openChannel","SendbirdChatProvider","enableAutoPushTokenRegistration","enableUseUserIdForNickname","enableImageCompression","LocalizationProvider","PlatformServiceProvider","fileService","file","notificationService","notification","clipboardService","clipboard","mediaService","media","playerService","player","recorderService","recorder","UIKitThemeProvider","theme","LightUIKitTheme","HeaderStyleProvider","HeaderComponent","Header","defaultTitleAlign","defaultHeaderTitleAlign","statusBarTranslucent","ToastProvider","dismissTimeout","UserProfileProvider","ReactionProvider","LocalizationContext","Consumer","value","STRINGS","DialogProvider","defaultLabels","alert","ok","DIALOG","ALERT_DEFAULT_OK","prompt","PROMPT_DEFAULT_OK","cancel","PROMPT_DEFAULT_CANCEL","placeholder","PROMPT_DEFAULT_PLACEHOLDER","options","onInitialized","chatInitParams","isMMKVStorage","SendbirdChat","init","newInstance","modules","GroupChannelModule","OpenChannelModule","localCacheEnabled","useMMKVStorageStore","useAsyncStorageStore","platform","getDeviceOSPlatform","deviceOSInfo","version","String","Version","customData","platform_version","getReactNativeVersion","uikitExtension","product","SendbirdProduct","UIKIT_CHAT","SendbirdPlatform","REACT_NATIVE","addSendbirdExtensions","addExtension","addEventListener","_chatSDK$setOnlineLis","_chatSDK","_chatSDK$setOfflineLi","_chatSDK2","NOOP","listener","callback","callbackType","callCount","unsubscribe","state","online","Boolean","isConnected","isInternetReachable","push","setOnlineListener","onOnline","setOfflineListener","onOffline","DeviceOsPlatform","ANDROID","IOS","WEB","WINDOWS","major","minor","patch","constants","reactNativeVersion","_ref","_voiceMessage$recorde3","_voiceMessage$recorde4","imageCompression","userMention","voiceMessage","MentionConfig","mentionLimit","MENTION_LIMIT","suggestionLimit","SUGGESTION_LIMIT","debounceMills","DEBOUNCE_MILLS","delimiter","DELIMITER","trigger","TRIGGER","ImageCompressionConfig","compressionRate","COMPRESSION_RATE","width","height","_voiceMessage$recorde","_voiceMessage$recorde2","VoiceMessageConfig","minDuration","RECORDER","MIN_DURATION","maxDuration","MAX_DURATION","_default"],"sources":["SendbirdUIKitContainer.tsx"],"sourcesContent":["import type { AsyncStorageStatic } from '@react-native-async-storage/async-storage';\nimport React, { useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { Platform } from 'react-native';\nimport type { MMKV } from 'react-native-mmkv';\nimport { SafeAreaProvider } from 'react-native-safe-area-context';\n\nimport SendbirdChat, { DeviceOsPlatform, SendbirdChatParams, SendbirdPlatform, SendbirdProduct } from '@sendbird/chat';\nimport { GroupChannelModule } from '@sendbird/chat/groupChannel';\nimport { OpenChannelModule } from '@sendbird/chat/openChannel';\nimport type { HeaderStyleContextType, UIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport {\n DialogProvider,\n Header,\n HeaderStyleProvider,\n LightUIKitTheme,\n ToastProvider,\n UIKitThemeProvider,\n} from '@sendbird/uikit-react-native-foundation';\nimport { SBUConfig, UIKitConfigProvider } from '@sendbird/uikit-tools';\nimport {\n Logger,\n NOOP,\n PartialDeep,\n SendbirdChatSDK,\n SendbirdGroupChannel,\n SendbirdGroupChannelCreateParams,\n SendbirdMember,\n SendbirdUser,\n useIsFirstMount,\n} from '@sendbird/uikit-utils';\n\nimport { LocalizationContext, LocalizationProvider } from '../contexts/LocalizationCtx';\nimport { PlatformServiceProvider } from '../contexts/PlatformServiceCtx';\nimport { ReactionProvider } from '../contexts/ReactionCtx';\nimport type { ChatRelatedFeaturesInUIKit } from '../contexts/SendbirdChatCtx';\nimport { SendbirdChatProvider } from '../contexts/SendbirdChatCtx';\nimport { UserProfileProvider } from '../contexts/UserProfileCtx';\nimport EmojiManager from '../libs/EmojiManager';\nimport type { ImageCompressionConfigInterface } from '../libs/ImageCompressionConfig';\nimport ImageCompressionConfig from '../libs/ImageCompressionConfig';\nimport InternalLocalCacheStorage from '../libs/InternalLocalCacheStorage';\nimport MentionConfig, { MentionConfigInterface } from '../libs/MentionConfig';\nimport MentionManager from '../libs/MentionManager';\nimport VoiceMessageConfig, { VoiceMessageConfigInterface } from '../libs/VoiceMessageConfig';\nimport VoiceMessageStatusManager from '../libs/VoiceMessageStatusManager';\nimport StringSetEn from '../localization/StringSet.en';\nimport type { StringSet } from '../localization/StringSet.type';\nimport SBUDynamicModule from '../platform/dynamicModule';\nimport type {\n ClipboardServiceInterface,\n FileServiceInterface,\n MediaServiceInterface,\n NotificationServiceInterface,\n PlayerServiceInterface,\n RecorderServiceInterface,\n} from '../platform/types';\nimport { ErrorBoundaryProps, LocalCacheStorage } from '../types';\nimport VERSION from '../version';\nimport InternalErrorBoundaryContainer from './InternalErrorBoundaryContainer';\n\nconst NetInfo = SBUDynamicModule.get('@react-native-community/netinfo', 'warn');\nexport const SendbirdUIKit = Object.freeze({\n VERSION,\n PLATFORM: Platform.OS.toLowerCase(),\n DEFAULT: {\n AUTO_PUSH_TOKEN_REGISTRATION: true,\n USE_USER_ID_FOR_NICKNAME: false,\n IMAGE_COMPRESSION: true,\n },\n});\n\nexport type ChatOmittedInitParams = Omit<\n SendbirdChatParams<[GroupChannelModule, OpenChannelModule]>,\n (typeof chatOmitKeys)[number]\n>;\n\nconst chatOmitKeys = [\n 'appId',\n 'newInstance',\n 'modules',\n 'debugMode',\n 'appVersion',\n 'localCacheEnabled',\n 'useAsyncStorageStore',\n 'useMMKVStorageStore',\n] as const;\nfunction sanitizeChatOptions<T extends Record<string, unknown>>(chatOptions: T): T {\n const opts = { ...chatOptions };\n chatOmitKeys.forEach((key) => delete opts[key]);\n return opts;\n}\nexport type SendbirdUIKitContainerProps = React.PropsWithChildren<{\n appId: string;\n platformServices: {\n file: FileServiceInterface;\n notification: NotificationServiceInterface;\n clipboard: ClipboardServiceInterface;\n media: MediaServiceInterface;\n player: PlayerServiceInterface;\n recorder: RecorderServiceInterface;\n };\n chatOptions: Partial<ChatOmittedInitParams> &\n Partial<ChatRelatedFeaturesInUIKit> & {\n onInitialized?: (sdkInstance: SendbirdChatSDK) => SendbirdChatSDK;\n localCacheStorage: LocalCacheStorage;\n };\n uikitOptions?: PartialDeep<{\n common: SBUConfig['common'];\n groupChannel: Omit<SBUConfig['groupChannel']['channel'], 'enableReactionsSupergroup'> & {\n /**\n * @deprecated Currently, this feature is turned off by default. If you wish to use this feature, contact us: {@link https://dashboard.sendbird.com/settings/contact_us?category=feedback_and_feature_requests&product=UIKit}\n */\n enableReactionsSupergroup: never;\n };\n groupChannelList: SBUConfig['groupChannel']['channelList'];\n groupChannelSettings: SBUConfig['groupChannel']['setting'];\n openChannel: SBUConfig['openChannel']['channel'];\n }>;\n localization?: {\n stringSet?: StringSet;\n };\n styles?: {\n theme?: UIKitTheme;\n statusBarTranslucent?: boolean;\n defaultHeaderTitleAlign?: 'left' | 'center';\n defaultHeaderHeight?: number;\n HeaderComponent?: HeaderStyleContextType['HeaderComponent'];\n };\n errorBoundary?: {\n disabled?: boolean;\n onError?: (props: ErrorBoundaryProps) => void;\n ErrorInfoComponent?: (props: ErrorBoundaryProps) => React.ReactNode;\n };\n toast?: {\n dismissTimeout?: number;\n };\n userProfile?: {\n onCreateChannel: (channel: SendbirdGroupChannel) => void;\n onBeforeCreateChannel?: (\n channelParams: SendbirdGroupChannelCreateParams,\n users: SendbirdUser[] | SendbirdMember[],\n ) => SendbirdGroupChannelCreateParams | Promise<SendbirdGroupChannelCreateParams>;\n };\n reaction?: {\n onPressUserProfile?: (user: SendbirdUser | SendbirdMember) => void;\n };\n userMention?: Pick<Partial<MentionConfigInterface>, 'mentionLimit' | 'suggestionLimit' | 'debounceMills'>;\n imageCompression?: Partial<ImageCompressionConfigInterface>;\n voiceMessage?: PartialDeep<VoiceMessageConfigInterface>;\n}>;\n\nconst SendbirdUIKitContainer = (props: SendbirdUIKitContainerProps) => {\n const {\n children,\n appId,\n chatOptions,\n uikitOptions,\n platformServices,\n localization,\n styles,\n errorBoundary,\n toast,\n userProfile,\n reaction,\n } = props;\n\n if (!chatOptions.localCacheStorage) {\n throw new Error('SendbirdUIKitContainer: chatOptions.localCacheStorage is required');\n } else if ('getItem' in chatOptions.localCacheStorage) {\n Logger.warn(\n 'SendbirdUIKitContainer: localCacheStorage for `AsyncStorage` is deprecated. Please use `MMKV` instead.',\n );\n }\n\n const defaultStringSet = localization?.stringSet ?? StringSetEn;\n\n const isFirstMount = useIsFirstMount();\n const unsubscribes = useRef<Array<() => void>>([]);\n\n const [internalStorage] = useState(() => new InternalLocalCacheStorage(chatOptions.localCacheStorage));\n const [sdkInstance, setSdkInstance] = useState<SendbirdChatSDK>(() => {\n const sendbird = initializeSendbird(appId, sanitizeChatOptions(chatOptions));\n unsubscribes.current = sendbird.unsubscribes;\n return sendbird.chatSDK;\n });\n\n const { imageCompressionConfig, voiceMessageConfig, mentionConfig } = useConfigInstance(props);\n const emojiManager = useMemo(() => new EmojiManager(internalStorage), [internalStorage]);\n const mentionManager = useMemo(() => new MentionManager(mentionConfig), [mentionConfig]);\n const voiceMessageStatusManager = useMemo(() => new VoiceMessageStatusManager(), []);\n\n useLayoutEffect(() => {\n if (!isFirstMount) {\n const sendbird = initializeSendbird(appId, sanitizeChatOptions(chatOptions));\n setSdkInstance(sendbird.chatSDK);\n unsubscribes.current = sendbird.unsubscribes;\n }\n\n return () => {\n unsubscribes.current.forEach((u) => {\n try {\n u();\n } catch {}\n });\n };\n }, [appId, internalStorage]);\n\n const renderChildren = () => {\n if (errorBoundary?.disabled) {\n return children;\n } else {\n return <InternalErrorBoundaryContainer {...errorBoundary}>{children}</InternalErrorBoundaryContainer>;\n }\n };\n\n return (\n <SafeAreaProvider>\n <UIKitConfigProvider\n storage={internalStorage}\n localConfigs={{\n common: uikitOptions?.common,\n groupChannel: {\n channel: { ...uikitOptions?.groupChannel, enableReactionsSupergroup: undefined },\n channelList: uikitOptions?.groupChannelList,\n setting: uikitOptions?.groupChannelSettings,\n },\n openChannel: {\n channel: uikitOptions?.openChannel,\n },\n }}\n >\n <SendbirdChatProvider\n sdkInstance={sdkInstance}\n emojiManager={emojiManager}\n mentionManager={mentionManager}\n imageCompressionConfig={imageCompressionConfig}\n voiceMessageConfig={voiceMessageConfig}\n voiceMessageStatusManager={voiceMessageStatusManager}\n enableAutoPushTokenRegistration={\n chatOptions.enableAutoPushTokenRegistration ?? SendbirdUIKit.DEFAULT.AUTO_PUSH_TOKEN_REGISTRATION\n }\n enableUseUserIdForNickname={\n chatOptions.enableUseUserIdForNickname ?? SendbirdUIKit.DEFAULT.USE_USER_ID_FOR_NICKNAME\n }\n enableImageCompression={chatOptions.enableImageCompression ?? SendbirdUIKit.DEFAULT.IMAGE_COMPRESSION}\n >\n <LocalizationProvider stringSet={defaultStringSet}>\n <PlatformServiceProvider\n fileService={platformServices.file}\n notificationService={platformServices.notification}\n clipboardService={platformServices.clipboard}\n mediaService={platformServices.media}\n playerService={platformServices.player}\n recorderService={platformServices.recorder}\n voiceMessageConfig={voiceMessageConfig}\n >\n <UIKitThemeProvider theme={styles?.theme ?? LightUIKitTheme}>\n <HeaderStyleProvider\n HeaderComponent={styles?.HeaderComponent ?? Header}\n defaultTitleAlign={styles?.defaultHeaderTitleAlign ?? 'left'}\n statusBarTranslucent={styles?.statusBarTranslucent ?? true}\n >\n <ToastProvider dismissTimeout={toast?.dismissTimeout}>\n <UserProfileProvider {...userProfile} statusBarTranslucent={styles?.statusBarTranslucent ?? true}>\n <ReactionProvider {...reaction}>\n <LocalizationContext.Consumer>\n {(value) => {\n const STRINGS = value?.STRINGS || defaultStringSet;\n return (\n <DialogProvider\n defaultLabels={{\n alert: { ok: STRINGS.DIALOG.ALERT_DEFAULT_OK },\n prompt: {\n ok: STRINGS.DIALOG.PROMPT_DEFAULT_OK,\n cancel: STRINGS.DIALOG.PROMPT_DEFAULT_CANCEL,\n placeholder: STRINGS.DIALOG.PROMPT_DEFAULT_PLACEHOLDER,\n },\n }}\n >\n {renderChildren()}\n </DialogProvider>\n );\n }}\n </LocalizationContext.Consumer>\n </ReactionProvider>\n </UserProfileProvider>\n </ToastProvider>\n </HeaderStyleProvider>\n </UIKitThemeProvider>\n </PlatformServiceProvider>\n </LocalizationProvider>\n </SendbirdChatProvider>\n </UIKitConfigProvider>\n </SafeAreaProvider>\n );\n};\n\ninterface InitOptions extends ChatOmittedInitParams {\n localCacheStorage: LocalCacheStorage;\n onInitialized?: (sdk: SendbirdChatSDK) => SendbirdChatSDK;\n}\nconst initializeSendbird = (appId: string, options: InitOptions) => {\n let chatSDK: SendbirdChatSDK;\n const unsubscribes: Array<() => void> = [];\n const { localCacheStorage, onInitialized, ...chatInitParams } = options;\n\n const isMMKVStorage = 'getString' in localCacheStorage;\n chatSDK = SendbirdChat.init({\n ...chatInitParams,\n appId,\n newInstance: true,\n modules: [new GroupChannelModule(), new OpenChannelModule()],\n localCacheEnabled: true,\n useMMKVStorageStore: isMMKVStorage ? (localCacheStorage as MMKV) : undefined,\n useAsyncStorageStore: !isMMKVStorage ? (localCacheStorage as AsyncStorageStatic) : undefined,\n });\n\n if (onInitialized) {\n chatSDK = onInitialized(chatSDK);\n }\n\n const platform = getDeviceOSPlatform();\n if (SendbirdUIKit.VERSION && platform) {\n const deviceOSInfo = { platform, version: String(Platform.Version) };\n const customData = { platform_version: getReactNativeVersion() };\n const uikitExtension = {\n product: SendbirdProduct.UIKIT_CHAT,\n version: SendbirdUIKit.VERSION,\n platform: SendbirdPlatform.REACT_NATIVE,\n };\n\n chatSDK.addSendbirdExtensions([uikitExtension], deviceOSInfo, customData);\n chatSDK.addExtension('sb_uikit', SendbirdUIKit.VERSION);\n }\n\n if (SendbirdUIKit.PLATFORM) {\n chatSDK.addExtension('device-os-platform', SendbirdUIKit.PLATFORM);\n }\n\n if (NetInfo?.addEventListener) {\n try {\n // NOTE: For removing buggy behavior of NetInfo.addEventListener\n // When you first add an event listener, it is assumed that the initialization of the internal event detector is done simultaneously.\n // In other words, when you call the first event listener two events are triggered immediately\n // - the one that is called when adding the event listener\n // - and the internal initialization event\n NetInfo.addEventListener(NOOP)();\n } catch {}\n\n const listener = (callback: () => void, callbackType: 'online' | 'offline') => {\n let callCount = 0;\n const unsubscribe = NetInfo.addEventListener((state) => {\n const online = Boolean(state.isConnected) || Boolean(state.isInternetReachable);\n\n // NOTE: When NetInfo.addEventListener is called\n // the event is immediately triggered regardless of whether the event actually occurred.\n // This is why it filters the first event.\n if (callCount === 0) {\n callCount++;\n return;\n }\n\n if (online && callbackType === 'online') callback();\n if (!online && callbackType === 'offline') callback();\n });\n unsubscribes.push(unsubscribe);\n return unsubscribe;\n };\n chatSDK.setOnlineListener?.((onOnline) => listener(onOnline, 'online'));\n chatSDK.setOfflineListener?.((onOffline) => listener(onOffline, 'offline'));\n }\n return { chatSDK, unsubscribes };\n};\n\nfunction getDeviceOSPlatform() {\n switch (Platform.OS) {\n case 'android':\n return DeviceOsPlatform.ANDROID;\n case 'ios':\n return DeviceOsPlatform.IOS;\n case 'web':\n return DeviceOsPlatform.WEB;\n case 'windows':\n return DeviceOsPlatform.WINDOWS;\n default:\n return undefined;\n }\n}\n\nfunction getReactNativeVersion() {\n const { major, minor, patch } = Platform.constants.reactNativeVersion;\n return `${major}.${minor}.${patch}`;\n}\n\nconst useConfigInstance = ({ imageCompression, userMention, voiceMessage }: SendbirdUIKitContainerProps) => {\n const mentionConfig = useMemo(() => {\n return new MentionConfig({\n mentionLimit: userMention?.mentionLimit || MentionConfig.DEFAULT.MENTION_LIMIT,\n suggestionLimit: userMention?.suggestionLimit || MentionConfig.DEFAULT.SUGGESTION_LIMIT,\n debounceMills: userMention?.debounceMills ?? MentionConfig.DEFAULT.DEBOUNCE_MILLS,\n delimiter: MentionConfig.DEFAULT.DELIMITER,\n trigger: MentionConfig.DEFAULT.TRIGGER,\n });\n }, [userMention?.mentionLimit, userMention?.suggestionLimit, userMention?.debounceMills]);\n\n const imageCompressionConfig = useMemo(() => {\n return new ImageCompressionConfig({\n compressionRate: imageCompression?.compressionRate || ImageCompressionConfig.DEFAULT.COMPRESSION_RATE,\n width: imageCompression?.width,\n height: imageCompression?.height,\n });\n }, [imageCompression?.compressionRate, imageCompression?.width, imageCompression?.height]);\n\n const voiceMessageConfig = useMemo(() => {\n return new VoiceMessageConfig({\n recorder: {\n minDuration: voiceMessage?.recorder?.minDuration ?? VoiceMessageConfig.DEFAULT.RECORDER.MIN_DURATION,\n maxDuration: voiceMessage?.recorder?.maxDuration ?? VoiceMessageConfig.DEFAULT.RECORDER.MAX_DURATION,\n },\n });\n }, [voiceMessage?.recorder?.minDuration, voiceMessage?.recorder?.maxDuration]);\n\n return {\n mentionConfig,\n imageCompressionConfig,\n voiceMessageConfig,\n };\n};\n\nexport default SendbirdUIKitContainer;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeSafeAreaContext","_chat","_groupChannel","_openChannel","_uikitReactNativeFoundation","_uikitTools","_uikitUtils","_LocalizationCtx","_PlatformServiceCtx","_ReactionCtx","_SBUHandlersCtx","_SendbirdChatCtx","_UserProfileCtx","_EmojiManager","_interopRequireDefault","_ImageCompressionConfig","_InternalLocalCacheStorage","_MentionConfig","_MentionManager","_SBUUtils","_VoiceMessageConfig","_VoiceMessageStatusManager","_StringSet","_dynamicModule","_version","_InternalErrorBoundaryContainer","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","NetInfo","SBUDynamicModule","SendbirdUIKit","freeze","VERSION","PLATFORM","Platform","OS","toLowerCase","DEFAULT","AUTO_PUSH_TOKEN_REGISTRATION","USE_USER_ID_FOR_NICKNAME","IMAGE_COMPRESSION","exports","chatOmitKeys","sanitizeChatOptions","chatOptions","opts","forEach","SendbirdUIKitContainer","props","children","appId","uikitOptions","platformServices","localization","styles","errorBoundary","handlers","toast","userProfile","reaction","localCacheStorage","Error","Logger","warn","defaultStringSet","stringSet","StringSetEn","isFirstMount","useIsFirstMount","unsubscribes","useRef","internalStorage","useState","InternalLocalCacheStorage","sdkInstance","setSdkInstance","sendbird","initializeSendbird","current","chatSDK","imageCompressionConfig","voiceMessageConfig","mentionConfig","useConfigInstance","emojiManager","useMemo","EmojiManager","mentionManager","MentionManager","voiceMessageStatusManager","VoiceMessageStatusManager","useLayoutEffect","u","renderChildren","disabled","createElement","sbuHandlers","onOpenURL","SBUUtils","openURL","onOpenFileURL","SBUHandlersProvider","SafeAreaProvider","UIKitConfigProvider","storage","localConfigs","common","groupChannel","channel","enableReactionsSupergroup","undefined","channelList","groupChannelList","setting","groupChannelSettings","openChannel","SendbirdChatProvider","enableAutoPushTokenRegistration","enableUseUserIdForNickname","enableImageCompression","LocalizationProvider","PlatformServiceProvider","fileService","file","notificationService","notification","clipboardService","clipboard","mediaService","media","playerService","player","recorderService","recorder","UIKitThemeProvider","theme","LightUIKitTheme","HeaderStyleProvider","HeaderComponent","Header","defaultTitleAlign","defaultHeaderTitleAlign","statusBarTranslucent","ToastProvider","dismissTimeout","UserProfileProvider","ReactionProvider","LocalizationContext","Consumer","value","STRINGS","DialogProvider","defaultLabels","alert","ok","DIALOG","ALERT_DEFAULT_OK","prompt","PROMPT_DEFAULT_OK","cancel","PROMPT_DEFAULT_CANCEL","placeholder","PROMPT_DEFAULT_PLACEHOLDER","options","onInitialized","chatInitParams","isMMKVStorage","SendbirdChat","init","newInstance","modules","GroupChannelModule","OpenChannelModule","localCacheEnabled","useMMKVStorageStore","useAsyncStorageStore","platform","getDeviceOSPlatform","deviceOSInfo","version","String","Version","customData","platform_version","getReactNativeVersion","uikitExtension","product","SendbirdProduct","UIKIT_CHAT","SendbirdPlatform","REACT_NATIVE","addSendbirdExtensions","addExtension","addEventListener","_chatSDK$setOnlineLis","_chatSDK","_chatSDK$setOfflineLi","_chatSDK2","NOOP","listener","callback","callbackType","callCount","unsubscribe","state","online","Boolean","isConnected","isInternetReachable","push","setOnlineListener","onOnline","setOfflineListener","onOffline","DeviceOsPlatform","ANDROID","IOS","WEB","WINDOWS","major","minor","patch","constants","reactNativeVersion","_ref","_voiceMessage$recorde3","_voiceMessage$recorde4","imageCompression","userMention","voiceMessage","MentionConfig","mentionLimit","MENTION_LIMIT","suggestionLimit","SUGGESTION_LIMIT","debounceMills","DEBOUNCE_MILLS","delimiter","DELIMITER","trigger","TRIGGER","ImageCompressionConfig","compressionRate","COMPRESSION_RATE","width","height","_voiceMessage$recorde","_voiceMessage$recorde2","VoiceMessageConfig","minDuration","RECORDER","MIN_DURATION","maxDuration","MAX_DURATION","_default"],"sources":["SendbirdUIKitContainer.tsx"],"sourcesContent":["import type { AsyncStorageStatic } from '@react-native-async-storage/async-storage';\nimport React, { useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { Platform } from 'react-native';\nimport type { MMKV } from 'react-native-mmkv';\nimport { SafeAreaProvider } from 'react-native-safe-area-context';\n\nimport SendbirdChat, { DeviceOsPlatform, SendbirdChatParams, SendbirdPlatform, SendbirdProduct } from '@sendbird/chat';\nimport { GroupChannelModule } from '@sendbird/chat/groupChannel';\nimport { OpenChannelModule } from '@sendbird/chat/openChannel';\nimport type { HeaderStyleContextType, UIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport {\n DialogProvider,\n Header,\n HeaderStyleProvider,\n LightUIKitTheme,\n ToastProvider,\n UIKitThemeProvider,\n} from '@sendbird/uikit-react-native-foundation';\nimport { SBUConfig, UIKitConfigProvider } from '@sendbird/uikit-tools';\nimport {\n Logger,\n NOOP,\n PartialDeep,\n SendbirdChatSDK,\n SendbirdGroupChannel,\n SendbirdGroupChannelCreateParams,\n SendbirdMember,\n SendbirdUser,\n useIsFirstMount,\n} from '@sendbird/uikit-utils';\n\nimport { LocalizationContext, LocalizationProvider } from '../contexts/LocalizationCtx';\nimport { PlatformServiceProvider } from '../contexts/PlatformServiceCtx';\nimport { ReactionProvider } from '../contexts/ReactionCtx';\nimport { type SBUHandlers, SBUHandlersProvider } from '../contexts/SBUHandlersCtx';\nimport type { ChatRelatedFeaturesInUIKit } from '../contexts/SendbirdChatCtx';\nimport { SendbirdChatProvider } from '../contexts/SendbirdChatCtx';\nimport { UserProfileProvider } from '../contexts/UserProfileCtx';\nimport EmojiManager from '../libs/EmojiManager';\nimport type { ImageCompressionConfigInterface } from '../libs/ImageCompressionConfig';\nimport ImageCompressionConfig from '../libs/ImageCompressionConfig';\nimport InternalLocalCacheStorage from '../libs/InternalLocalCacheStorage';\nimport MentionConfig, { MentionConfigInterface } from '../libs/MentionConfig';\nimport MentionManager from '../libs/MentionManager';\nimport SBUUtils from '../libs/SBUUtils';\nimport VoiceMessageConfig, { VoiceMessageConfigInterface } from '../libs/VoiceMessageConfig';\nimport VoiceMessageStatusManager from '../libs/VoiceMessageStatusManager';\nimport StringSetEn from '../localization/StringSet.en';\nimport type { StringSet } from '../localization/StringSet.type';\nimport SBUDynamicModule from '../platform/dynamicModule';\nimport type {\n ClipboardServiceInterface,\n FileServiceInterface,\n MediaServiceInterface,\n NotificationServiceInterface,\n PlayerServiceInterface,\n RecorderServiceInterface,\n} from '../platform/types';\nimport { ErrorBoundaryProps, LocalCacheStorage } from '../types';\nimport VERSION from '../version';\nimport InternalErrorBoundaryContainer from './InternalErrorBoundaryContainer';\n\nconst NetInfo = SBUDynamicModule.get('@react-native-community/netinfo', 'warn');\nexport const SendbirdUIKit = Object.freeze({\n VERSION,\n PLATFORM: Platform.OS.toLowerCase(),\n DEFAULT: {\n AUTO_PUSH_TOKEN_REGISTRATION: true,\n USE_USER_ID_FOR_NICKNAME: false,\n IMAGE_COMPRESSION: true,\n },\n});\n\nexport type ChatOmittedInitParams = Omit<\n SendbirdChatParams<[GroupChannelModule, OpenChannelModule]>,\n (typeof chatOmitKeys)[number]\n>;\n\nconst chatOmitKeys = [\n 'appId',\n 'newInstance',\n 'modules',\n 'debugMode',\n 'appVersion',\n 'localCacheEnabled',\n 'useAsyncStorageStore',\n 'useMMKVStorageStore',\n] as const;\nfunction sanitizeChatOptions<T extends Record<string, unknown>>(chatOptions: T): T {\n const opts = { ...chatOptions };\n chatOmitKeys.forEach((key) => delete opts[key]);\n return opts;\n}\nexport type SendbirdUIKitContainerProps = React.PropsWithChildren<{\n appId: string;\n platformServices: {\n file: FileServiceInterface;\n notification: NotificationServiceInterface;\n clipboard: ClipboardServiceInterface;\n media: MediaServiceInterface;\n player: PlayerServiceInterface;\n recorder: RecorderServiceInterface;\n };\n chatOptions: Partial<ChatOmittedInitParams> &\n Partial<ChatRelatedFeaturesInUIKit> & {\n onInitialized?: (sdkInstance: SendbirdChatSDK) => SendbirdChatSDK;\n localCacheStorage: LocalCacheStorage;\n };\n uikitOptions?: PartialDeep<{\n common: SBUConfig['common'];\n groupChannel: Omit<SBUConfig['groupChannel']['channel'], 'enableReactionsSupergroup'> & {\n /**\n * @deprecated Currently, this feature is turned off by default. If you wish to use this feature, contact us: {@link https://dashboard.sendbird.com/settings/contact_us?category=feedback_and_feature_requests&product=UIKit}\n */\n enableReactionsSupergroup: never;\n };\n groupChannelList: SBUConfig['groupChannel']['channelList'];\n groupChannelSettings: SBUConfig['groupChannel']['setting'];\n openChannel: SBUConfig['openChannel']['channel'];\n }>;\n localization?: {\n stringSet?: StringSet;\n };\n styles?: {\n theme?: UIKitTheme;\n statusBarTranslucent?: boolean;\n defaultHeaderTitleAlign?: 'left' | 'center';\n defaultHeaderHeight?: number;\n HeaderComponent?: HeaderStyleContextType['HeaderComponent'];\n };\n errorBoundary?: {\n disabled?: boolean;\n onError?: (props: ErrorBoundaryProps) => void;\n ErrorInfoComponent?: (props: ErrorBoundaryProps) => React.ReactNode;\n };\n handlers?: Partial<SBUHandlers>;\n toast?: {\n dismissTimeout?: number;\n };\n userProfile?: {\n onCreateChannel: (channel: SendbirdGroupChannel) => void;\n onBeforeCreateChannel?: (\n channelParams: SendbirdGroupChannelCreateParams,\n users: SendbirdUser[] | SendbirdMember[],\n ) => SendbirdGroupChannelCreateParams | Promise<SendbirdGroupChannelCreateParams>;\n };\n reaction?: {\n onPressUserProfile?: (user: SendbirdUser | SendbirdMember) => void;\n };\n userMention?: Pick<Partial<MentionConfigInterface>, 'mentionLimit' | 'suggestionLimit' | 'debounceMills'>;\n imageCompression?: Partial<ImageCompressionConfigInterface>;\n voiceMessage?: PartialDeep<VoiceMessageConfigInterface>;\n}>;\n\nconst SendbirdUIKitContainer = (props: SendbirdUIKitContainerProps) => {\n const {\n children,\n appId,\n chatOptions,\n uikitOptions,\n platformServices,\n localization,\n styles,\n errorBoundary,\n handlers,\n toast,\n userProfile,\n reaction,\n } = props;\n\n if (!chatOptions.localCacheStorage) {\n throw new Error('SendbirdUIKitContainer: chatOptions.localCacheStorage is required');\n } else if ('getItem' in chatOptions.localCacheStorage) {\n Logger.warn(\n 'SendbirdUIKitContainer: localCacheStorage for `AsyncStorage` is deprecated. Please use `MMKV` instead.',\n );\n }\n\n const defaultStringSet = localization?.stringSet ?? StringSetEn;\n\n const isFirstMount = useIsFirstMount();\n const unsubscribes = useRef<Array<() => void>>([]);\n\n const [internalStorage] = useState(() => new InternalLocalCacheStorage(chatOptions.localCacheStorage));\n const [sdkInstance, setSdkInstance] = useState<SendbirdChatSDK>(() => {\n const sendbird = initializeSendbird(appId, sanitizeChatOptions(chatOptions));\n unsubscribes.current = sendbird.unsubscribes;\n return sendbird.chatSDK;\n });\n\n const { imageCompressionConfig, voiceMessageConfig, mentionConfig } = useConfigInstance(props);\n const emojiManager = useMemo(() => new EmojiManager(internalStorage), [internalStorage]);\n const mentionManager = useMemo(() => new MentionManager(mentionConfig), [mentionConfig]);\n const voiceMessageStatusManager = useMemo(() => new VoiceMessageStatusManager(), []);\n\n useLayoutEffect(() => {\n if (!isFirstMount) {\n const sendbird = initializeSendbird(appId, sanitizeChatOptions(chatOptions));\n setSdkInstance(sendbird.chatSDK);\n unsubscribes.current = sendbird.unsubscribes;\n }\n\n return () => {\n unsubscribes.current.forEach((u) => {\n try {\n u();\n } catch {}\n });\n };\n }, [appId, internalStorage]);\n\n const renderChildren = () => {\n if (errorBoundary?.disabled) {\n return children;\n } else {\n return <InternalErrorBoundaryContainer {...errorBoundary}>{children}</InternalErrorBoundaryContainer>;\n }\n };\n\n const sbuHandlers: SBUHandlers = {\n onOpenURL: SBUUtils.openURL,\n onOpenFileURL: SBUUtils.openURL,\n ...handlers,\n };\n\n return (\n <SBUHandlersProvider {...sbuHandlers}>\n <SafeAreaProvider>\n <UIKitConfigProvider\n storage={internalStorage}\n localConfigs={{\n common: uikitOptions?.common,\n groupChannel: {\n channel: { ...uikitOptions?.groupChannel, enableReactionsSupergroup: undefined },\n channelList: uikitOptions?.groupChannelList,\n setting: uikitOptions?.groupChannelSettings,\n },\n openChannel: {\n channel: uikitOptions?.openChannel,\n },\n }}\n >\n <SendbirdChatProvider\n sdkInstance={sdkInstance}\n emojiManager={emojiManager}\n mentionManager={mentionManager}\n imageCompressionConfig={imageCompressionConfig}\n voiceMessageConfig={voiceMessageConfig}\n voiceMessageStatusManager={voiceMessageStatusManager}\n enableAutoPushTokenRegistration={\n chatOptions.enableAutoPushTokenRegistration ?? SendbirdUIKit.DEFAULT.AUTO_PUSH_TOKEN_REGISTRATION\n }\n enableUseUserIdForNickname={\n chatOptions.enableUseUserIdForNickname ?? SendbirdUIKit.DEFAULT.USE_USER_ID_FOR_NICKNAME\n }\n enableImageCompression={chatOptions.enableImageCompression ?? SendbirdUIKit.DEFAULT.IMAGE_COMPRESSION}\n >\n <LocalizationProvider stringSet={defaultStringSet}>\n <PlatformServiceProvider\n fileService={platformServices.file}\n notificationService={platformServices.notification}\n clipboardService={platformServices.clipboard}\n mediaService={platformServices.media}\n playerService={platformServices.player}\n recorderService={platformServices.recorder}\n voiceMessageConfig={voiceMessageConfig}\n >\n <UIKitThemeProvider theme={styles?.theme ?? LightUIKitTheme}>\n <HeaderStyleProvider\n HeaderComponent={styles?.HeaderComponent ?? Header}\n defaultTitleAlign={styles?.defaultHeaderTitleAlign ?? 'left'}\n statusBarTranslucent={styles?.statusBarTranslucent ?? true}\n >\n <ToastProvider dismissTimeout={toast?.dismissTimeout}>\n <UserProfileProvider {...userProfile} statusBarTranslucent={styles?.statusBarTranslucent ?? true}>\n <ReactionProvider {...reaction}>\n <LocalizationContext.Consumer>\n {(value) => {\n const STRINGS = value?.STRINGS || defaultStringSet;\n return (\n <DialogProvider\n defaultLabels={{\n alert: { ok: STRINGS.DIALOG.ALERT_DEFAULT_OK },\n prompt: {\n ok: STRINGS.DIALOG.PROMPT_DEFAULT_OK,\n cancel: STRINGS.DIALOG.PROMPT_DEFAULT_CANCEL,\n placeholder: STRINGS.DIALOG.PROMPT_DEFAULT_PLACEHOLDER,\n },\n }}\n >\n {renderChildren()}\n </DialogProvider>\n );\n }}\n </LocalizationContext.Consumer>\n </ReactionProvider>\n </UserProfileProvider>\n </ToastProvider>\n </HeaderStyleProvider>\n </UIKitThemeProvider>\n </PlatformServiceProvider>\n </LocalizationProvider>\n </SendbirdChatProvider>\n </UIKitConfigProvider>\n </SafeAreaProvider>\n </SBUHandlersProvider>\n );\n};\n\ninterface InitOptions extends ChatOmittedInitParams {\n localCacheStorage: LocalCacheStorage;\n onInitialized?: (sdk: SendbirdChatSDK) => SendbirdChatSDK;\n}\nconst initializeSendbird = (appId: string, options: InitOptions) => {\n let chatSDK: SendbirdChatSDK;\n const unsubscribes: Array<() => void> = [];\n const { localCacheStorage, onInitialized, ...chatInitParams } = options;\n\n const isMMKVStorage = 'getString' in localCacheStorage;\n chatSDK = SendbirdChat.init({\n ...chatInitParams,\n appId,\n newInstance: true,\n modules: [new GroupChannelModule(), new OpenChannelModule()],\n localCacheEnabled: true,\n useMMKVStorageStore: isMMKVStorage ? (localCacheStorage as MMKV) : undefined,\n useAsyncStorageStore: !isMMKVStorage ? (localCacheStorage as AsyncStorageStatic) : undefined,\n });\n\n if (onInitialized) {\n chatSDK = onInitialized(chatSDK);\n }\n\n const platform = getDeviceOSPlatform();\n if (SendbirdUIKit.VERSION && platform) {\n const deviceOSInfo = { platform, version: String(Platform.Version) };\n const customData = { platform_version: getReactNativeVersion() };\n const uikitExtension = {\n product: SendbirdProduct.UIKIT_CHAT,\n version: SendbirdUIKit.VERSION,\n platform: SendbirdPlatform.REACT_NATIVE,\n };\n\n chatSDK.addSendbirdExtensions([uikitExtension], deviceOSInfo, customData);\n chatSDK.addExtension('sb_uikit', SendbirdUIKit.VERSION);\n }\n\n if (SendbirdUIKit.PLATFORM) {\n chatSDK.addExtension('device-os-platform', SendbirdUIKit.PLATFORM);\n }\n\n if (NetInfo?.addEventListener) {\n try {\n // NOTE: For removing buggy behavior of NetInfo.addEventListener\n // When you first add an event listener, it is assumed that the initialization of the internal event detector is done simultaneously.\n // In other words, when you call the first event listener two events are triggered immediately\n // - the one that is called when adding the event listener\n // - and the internal initialization event\n NetInfo.addEventListener(NOOP)();\n } catch {}\n\n const listener = (callback: () => void, callbackType: 'online' | 'offline') => {\n let callCount = 0;\n const unsubscribe = NetInfo.addEventListener((state) => {\n const online = Boolean(state.isConnected) || Boolean(state.isInternetReachable);\n\n // NOTE: When NetInfo.addEventListener is called\n // the event is immediately triggered regardless of whether the event actually occurred.\n // This is why it filters the first event.\n if (callCount === 0) {\n callCount++;\n return;\n }\n\n if (online && callbackType === 'online') callback();\n if (!online && callbackType === 'offline') callback();\n });\n unsubscribes.push(unsubscribe);\n return unsubscribe;\n };\n chatSDK.setOnlineListener?.((onOnline) => listener(onOnline, 'online'));\n chatSDK.setOfflineListener?.((onOffline) => listener(onOffline, 'offline'));\n }\n return { chatSDK, unsubscribes };\n};\n\nfunction getDeviceOSPlatform() {\n switch (Platform.OS) {\n case 'android':\n return DeviceOsPlatform.ANDROID;\n case 'ios':\n return DeviceOsPlatform.IOS;\n case 'web':\n return DeviceOsPlatform.WEB;\n case 'windows':\n return DeviceOsPlatform.WINDOWS;\n default:\n return undefined;\n }\n}\n\nfunction getReactNativeVersion() {\n const { major, minor, patch } = Platform.constants.reactNativeVersion;\n return `${major}.${minor}.${patch}`;\n}\n\nconst useConfigInstance = ({ imageCompression, userMention, voiceMessage }: SendbirdUIKitContainerProps) => {\n const mentionConfig = useMemo(() => {\n return new MentionConfig({\n mentionLimit: userMention?.mentionLimit || MentionConfig.DEFAULT.MENTION_LIMIT,\n suggestionLimit: userMention?.suggestionLimit || MentionConfig.DEFAULT.SUGGESTION_LIMIT,\n debounceMills: userMention?.debounceMills ?? MentionConfig.DEFAULT.DEBOUNCE_MILLS,\n delimiter: MentionConfig.DEFAULT.DELIMITER,\n trigger: MentionConfig.DEFAULT.TRIGGER,\n });\n }, [userMention?.mentionLimit, userMention?.suggestionLimit, userMention?.debounceMills]);\n\n const imageCompressionConfig = useMemo(() => {\n return new ImageCompressionConfig({\n compressionRate: imageCompression?.compressionRate || ImageCompressionConfig.DEFAULT.COMPRESSION_RATE,\n width: imageCompression?.width,\n height: imageCompression?.height,\n });\n }, [imageCompression?.compressionRate, imageCompression?.width, imageCompression?.height]);\n\n const voiceMessageConfig = useMemo(() => {\n return new VoiceMessageConfig({\n recorder: {\n minDuration: voiceMessage?.recorder?.minDuration ?? VoiceMessageConfig.DEFAULT.RECORDER.MIN_DURATION,\n maxDuration: voiceMessage?.recorder?.maxDuration ?? VoiceMessageConfig.DEFAULT.RECORDER.MAX_DURATION,\n },\n });\n }, [voiceMessage?.recorder?.minDuration, voiceMessage?.recorder?.maxDuration]);\n\n return {\n mentionConfig,\n imageCompressionConfig,\n voiceMessageConfig,\n };\n};\n\nexport default SendbirdUIKitContainer;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SBUHandlersProvider = exports.SBUHandlersContext = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
|
+
const SBUHandlersContext = /*#__PURE__*/_react.default.createContext(null);
|
|
10
|
+
exports.SBUHandlersContext = SBUHandlersContext;
|
|
11
|
+
const SBUHandlersProvider = _ref => {
|
|
12
|
+
let {
|
|
13
|
+
children,
|
|
14
|
+
onOpenURL,
|
|
15
|
+
onOpenFileURL
|
|
16
|
+
} = _ref;
|
|
17
|
+
return /*#__PURE__*/_react.default.createElement(SBUHandlersContext.Provider, {
|
|
18
|
+
value: {
|
|
19
|
+
onOpenURL,
|
|
20
|
+
onOpenFileURL
|
|
21
|
+
}
|
|
22
|
+
}, children);
|
|
23
|
+
};
|
|
24
|
+
exports.SBUHandlersProvider = SBUHandlersProvider;
|
|
25
|
+
//# sourceMappingURL=SBUHandlersCtx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","obj","__esModule","default","SBUHandlersContext","React","createContext","exports","SBUHandlersProvider","_ref","children","onOpenURL","onOpenFileURL","createElement","Provider","value"],"sources":["SBUHandlersCtx.tsx"],"sourcesContent":["import React from 'react';\n\nexport interface SBUHandlers {\n /**\n * Callback function to handle opening a URL.\n * This is triggered when a URL needs to be opened.\n */\n onOpenURL: (url: string) => void;\n\n /**\n * Callback function to handle opening a file URL.\n * This is triggered when a file URL needs to be opened.\n *\n * Note that this function is also called redundantly\n * when `onPressMediaMessage` handler is triggered by clicking on media messages containing images, videos, or audio.\n */\n onOpenFileURL: (url: string) => void;\n}\n\ntype Props = React.PropsWithChildren<SBUHandlers>;\n\nexport type SBUHandlersContextType = SBUHandlers;\n\nexport const SBUHandlersContext = React.createContext<SBUHandlersContextType | null>(null);\nexport const SBUHandlersProvider = ({ children, onOpenURL, onOpenFileURL }: Props) => {\n return <SBUHandlersContext.Provider value={{ onOpenURL, onOpenFileURL }}>{children}</SBUHandlersContext.Provider>;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA0B,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAuBnB,MAAMG,kBAAkB,gBAAGC,cAAK,CAACC,aAAa,CAAgC,IAAI,CAAC;AAACC,OAAA,CAAAH,kBAAA,GAAAA,kBAAA;AACpF,MAAMI,mBAAmB,GAAGC,IAAA,IAAmD;EAAA,IAAlD;IAAEC,QAAQ;IAAEC,SAAS;IAAEC;EAAqB,CAAC,GAAAH,IAAA;EAC/E,oBAAOX,MAAA,CAAAK,OAAA,CAAAU,aAAA,CAACT,kBAAkB,CAACU,QAAQ;IAACC,KAAK,EAAE;MAAEJ,SAAS;MAAEC;IAAc;EAAE,GAAEF,QAAQ,CAA+B;AACnH,CAAC;AAACH,OAAA,CAAAC,mBAAA,GAAAA,mBAAA"}
|
package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js
CHANGED
|
@@ -10,7 +10,6 @@ var _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundati
|
|
|
10
10
|
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
11
11
|
var _ThreadParentMessageRenderer = _interopRequireDefault(require("../../../components/ThreadParentMessageRenderer"));
|
|
12
12
|
var _useContext = require("../../../hooks/useContext");
|
|
13
|
-
var _SBUUtils = _interopRequireDefault(require("../../../libs/SBUUtils"));
|
|
14
13
|
var _moduleContext = require("../module/moduleContext");
|
|
15
14
|
var _ReactionAddons = require("./../../../components/ReactionAddons");
|
|
16
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -164,6 +163,7 @@ const useCreateMessagePressActions = _ref => {
|
|
|
164
163
|
onPressMediaMessage,
|
|
165
164
|
onEditMessage
|
|
166
165
|
} = _ref;
|
|
166
|
+
const handlers = (0, _useContext.useSBUHandlers)();
|
|
167
167
|
const {
|
|
168
168
|
STRINGS
|
|
169
169
|
} = (0, _useContext.useLocalization)();
|
|
@@ -214,9 +214,8 @@ const useCreateMessagePressActions = _ref => {
|
|
|
214
214
|
const fileType = (0, _uikitUtils.getFileType)(message.type || (0, _uikitUtils.getFileExtension)(message.name));
|
|
215
215
|
if (['image', 'video', 'audio'].includes(fileType)) {
|
|
216
216
|
onPressMediaMessage === null || onPressMediaMessage === void 0 ? void 0 : onPressMediaMessage(message, () => onDeleteMessage === null || onDeleteMessage === void 0 ? void 0 : onDeleteMessage(message), (0, _uikitUtils.getAvailableUriFromFileMessage)(message));
|
|
217
|
-
} else {
|
|
218
|
-
_SBUUtils.default.openURL(message.url);
|
|
219
217
|
}
|
|
218
|
+
handlers.onOpenFileURL(message.url);
|
|
220
219
|
}
|
|
221
220
|
};
|
|
222
221
|
const alertForMessageDelete = message => {
|
package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadParentMessageInfo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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","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","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, 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 { 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 } else {\n SBUUtils.openURL(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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"}
|
|
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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"}
|