@sendbird/uikit-react-native 3.8.0 → 3.8.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/ChannelInput/index.js.map +1 -1
- package/lib/commonjs/components/ReactionAddons/MessageReactionAddon.js +6 -3
- package/lib/commonjs/components/ReactionAddons/MessageReactionAddon.js.map +1 -1
- package/lib/commonjs/components/ReactionAddons/ReactionRoundedButton.js +4 -3
- package/lib/commonjs/components/ReactionAddons/ReactionRoundedButton.js.map +1 -1
- package/lib/commonjs/components/ReactionBottomSheets/ReactionUserListBottomSheet.js +1 -3
- package/lib/commonjs/components/ReactionBottomSheets/ReactionUserListBottomSheet.js.map +1 -1
- package/lib/commonjs/containers/SendbirdUIKitContainer.js +4 -12
- package/lib/commonjs/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/commonjs/domain/groupChannel/component/GroupChannelSuggestedMentionList.js +3 -2
- package/lib/commonjs/domain/groupChannel/component/GroupChannelSuggestedMentionList.js.map +1 -1
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js +3 -2
- package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js.map +1 -1
- package/lib/commonjs/libs/EmojiManager.js +6 -0
- package/lib/commonjs/libs/EmojiManager.js.map +1 -1
- package/lib/commonjs/version.js +1 -1
- package/lib/commonjs/version.js.map +1 -1
- package/lib/module/components/ChannelInput/index.js.map +1 -1
- package/lib/module/components/ReactionAddons/MessageReactionAddon.js +6 -3
- package/lib/module/components/ReactionAddons/MessageReactionAddon.js.map +1 -1
- package/lib/module/components/ReactionAddons/ReactionRoundedButton.js +4 -3
- package/lib/module/components/ReactionAddons/ReactionRoundedButton.js.map +1 -1
- package/lib/module/components/ReactionBottomSheets/ReactionUserListBottomSheet.js +1 -3
- package/lib/module/components/ReactionBottomSheets/ReactionUserListBottomSheet.js.map +1 -1
- package/lib/module/containers/SendbirdUIKitContainer.js +4 -12
- package/lib/module/containers/SendbirdUIKitContainer.js.map +1 -1
- package/lib/module/domain/groupChannel/component/GroupChannelSuggestedMentionList.js +3 -2
- package/lib/module/domain/groupChannel/component/GroupChannelSuggestedMentionList.js.map +1 -1
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js +3 -2
- package/lib/module/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js.map +1 -1
- package/lib/module/libs/EmojiManager.js +6 -0
- package/lib/module/libs/EmojiManager.js.map +1 -1
- package/lib/module/version.js +1 -1
- package/lib/module/version.js.map +1 -1
- package/lib/typescript/src/components/ChannelInput/index.d.ts +4 -0
- package/lib/typescript/src/components/ReactionAddons/ReactionRoundedButton.d.ts +7 -3
- package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +2 -3
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelSuggestedMentionList.d.ts +1 -1
- package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.d.ts +1 -1
- package/lib/typescript/src/libs/EmojiManager.d.ts +3 -1
- package/lib/typescript/src/version.d.ts +1 -1
- package/package.json +5 -5
- package/src/components/ChannelInput/index.tsx +4 -0
- package/src/components/ReactionAddons/MessageReactionAddon.tsx +7 -5
- package/src/components/ReactionAddons/ReactionRoundedButton.tsx +8 -4
- package/src/components/ReactionBottomSheets/ReactionUserListBottomSheet.tsx +9 -3
- package/src/containers/SendbirdUIKitContainer.tsx +7 -25
- package/src/domain/groupChannel/component/GroupChannelSuggestedMentionList.tsx +6 -3
- package/src/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.tsx +6 -3
- package/src/libs/EmojiManager.ts +11 -3
- package/src/version.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_uikitReactNativeFoundation","_uikitUtils","_useContext","_useMentionTextInput","_interopRequireDefault","_AttachmentsButton","_EditInput","_MessageToReplyPreview","_SendInput","_VoiceMessageInput","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","AUTO_FOCUS","Platform","select","ios","android","KEYBOARD_AVOID_VIEW_BEHAVIOR","undefined","ChannelInput","props","channel","keyboardAvoidOffset","messageToEdit","setMessageToEdit","safeArea","useSafeAreaPadding","colors","typography","useUIKitTheme","sbOptions","mentionManager","useSendbirdChat","selection","onSelectionChange","textInputRef","text","onChangeText","mentionedUsers","useMentionTextInput","inputMode","useIIFE","isFileMessage","mentionAvailable","uikit","groupChannel","enableMention","isGroupChannel","isBroadcast","inputKeyToRemount","inputHeight","setInputHeight","useState","styles","inputDefault","height","fontStyle","useMemo","body3","fontSize","lineHeight","textAlignVertical","textInputStyle","StyleSheet","flatten","input","style","useTypingTrigger","useTextClearOnDisabled","inputDisabled","useAutoFocusOnEditMode","onPressToMention","user","searchStringRange","mentionedMessageText","asMentionedMessageText","range","start","end","replace","shouldRenderInput","createElement","SafeAreaBottom","paddingBottom","Fragment","KeyboardAvoidingView","keyboardVerticalOffset","behavior","View","paddingStart","paddingEnd","backgroundColor","background","onLayout","nativeEvent","layout","inputContainer","key","ref","VoiceMessageInput","AttachmentsButton","MessageToReplyPreview","autoFocus","SuggestedMentionList","topInset","paddingTop","bottomInset","useEffect","triggerTyping","action","endTyping","startTyping","catch","error","Logger","debug","setText","chatDisabled","isUserMessage","setTimeout","_textInputRef$current","current","focus","createStyleSheet","justifyContent","width","flex","marginEnd","borderRadius","minHeight","maxHeight","_default","exports","React","memo"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { KeyboardAvoidingView, Platform, StyleProp, StyleSheet, TextInput, TextStyle, View } from 'react-native';\n\nimport { createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport {\n Logger,\n SendbirdBaseChannel,\n SendbirdBaseMessage,\n SendbirdFileMessage,\n SendbirdFileMessageCreateParams,\n SendbirdFileMessageUpdateParams,\n SendbirdMember,\n SendbirdUserMessage,\n SendbirdUserMessageCreateParams,\n SendbirdUserMessageUpdateParams,\n replace,\n useIIFE,\n useSafeAreaPadding,\n} from '@sendbird/uikit-utils';\n\nimport { useSendbirdChat } from '../../hooks/useContext';\nimport useMentionTextInput from '../../hooks/useMentionTextInput';\nimport type { CommonComponent, MentionedUser, Range } from '../../types';\nimport type { AttachmentsButtonProps } from './AttachmentsButton';\nimport AttachmentsButton from './AttachmentsButton';\nimport EditInput from './EditInput';\nimport type { MessageToReplyPreviewProps } from './MessageToReplyPreview';\nimport { MessageToReplyPreview } from './MessageToReplyPreview';\nimport SendInput from './SendInput';\nimport VoiceMessageInput, { VoiceMessageInputProps } from './VoiceMessageInput';\n\nexport type SuggestedMentionListProps = {\n text: string;\n selection: Range;\n topInset: number;\n bottomInset: number;\n inputHeight: number;\n onPressToMention: (user: SendbirdMember, searchStringRange: Range) => void;\n mentionedUsers: MentionedUser[];\n};\n\nexport type ChannelInputProps = {\n // style\n style?: StyleProp<TextStyle>;\n\n // default\n channel: SendbirdBaseChannel;\n shouldRenderInput: boolean;\n keyboardAvoidOffset: number;\n\n // default actions\n onPressSendUserMessage: (params: SendbirdUserMessageCreateParams) => Promise<void>;\n onPressSendFileMessage: (params: SendbirdFileMessageCreateParams) => Promise<void>;\n onPressUpdateUserMessage: (message: SendbirdUserMessage, params: SendbirdUserMessageUpdateParams) => Promise<void>;\n onPressUpdateFileMessage: (message: SendbirdFileMessage, params: SendbirdFileMessageUpdateParams) => Promise<void>;\n\n // input status\n inputFrozen: boolean;\n inputMuted: boolean;\n inputDisabled: boolean;\n\n // edit\n messageToEdit: undefined | SendbirdUserMessage | SendbirdFileMessage;\n setMessageToEdit: (message?: undefined | SendbirdUserMessage | SendbirdFileMessage) => void;\n\n // reply - only available on group channel\n messageToReply?: undefined | SendbirdUserMessage | SendbirdFileMessage;\n setMessageToReply?: (message?: undefined | SendbirdUserMessage | SendbirdFileMessage) => void;\n messageForThread?: undefined | SendbirdUserMessage | SendbirdFileMessage;\n\n // mention\n SuggestedMentionList?: CommonComponent<SuggestedMentionListProps>;\n\n // sub-components\n AttachmentsButton?: (props: AttachmentsButtonProps) => React.ReactNode | null;\n MessageToReplyPreview?: (props: MessageToReplyPreviewProps) => React.ReactNode | null;\n VoiceMessageInput?: (props: VoiceMessageInputProps) => React.ReactNode | null;\n};\n\nconst AUTO_FOCUS = Platform.select({ ios: false, android: true, default: false });\nconst KEYBOARD_AVOID_VIEW_BEHAVIOR = Platform.select({ ios: 'padding' as const, default: undefined });\n\n// FIXME(iOS): Dynamic style does not work properly when typing the CJK. (https://github.com/facebook/react-native/issues/26107)\n// To workaround temporarily, change the key for re-mount the component.\n// -> This will affect to keyboard blur when add/remove first mentioned user.\n// const GET_INPUT_KEY = (shouldReset: boolean) => {\n// return Platform.OS === 'ios' && shouldReset ? 'uikit-input-clear' : 'uikit-input';\n// };\n\n// TODO: Refactor 'Edit' mode to clearly\nconst ChannelInput = (props: ChannelInputProps) => {\n const { channel, keyboardAvoidOffset, messageToEdit, setMessageToEdit } = props;\n\n const safeArea = useSafeAreaPadding(['top', 'left', 'right', 'bottom']);\n const { colors, typography } = useUIKitTheme();\n const { sbOptions, mentionManager } = useSendbirdChat();\n\n const { selection, onSelectionChange, textInputRef, text, onChangeText, mentionedUsers } = useMentionTextInput({\n messageToEdit,\n });\n const inputMode = useIIFE(() => {\n if (messageToEdit && !messageToEdit.isFileMessage()) return 'edit';\n else return 'send';\n });\n\n const mentionAvailable =\n sbOptions.uikit.groupChannel.channel.enableMention && channel.isGroupChannel() && !channel.isBroadcast;\n const inputKeyToRemount = 'input'; //GET_INPUT_KEY(mentionAvailable ? mentionedUsers.length === 0 : false);\n\n const [inputHeight, setInputHeight] = useState(styles.inputDefault.height);\n\n const fontStyle = useMemo(() => {\n if (!typography.body3.fontSize) return typography.body3;\n // NOTE: iOS does not support textAlignVertical, so we should adjust lineHeight to center the text in multiline TextInput.\n return { ...typography.body3, lineHeight: typography.body3.fontSize * 1.275, textAlignVertical: 'center' };\n }, [typography.body3.fontSize]);\n\n const textInputStyle = StyleSheet.flatten([styles.input, fontStyle, props.style]);\n\n useTypingTrigger(text, channel);\n useTextClearOnDisabled(onChangeText, props.inputDisabled);\n useAutoFocusOnEditMode(textInputRef, messageToEdit);\n\n const onPressToMention = (user: SendbirdMember, searchStringRange: Range) => {\n const mentionedMessageText = mentionManager.asMentionedMessageText(user, true);\n const range = { start: searchStringRange.start, end: searchStringRange.start + mentionedMessageText.length - 1 };\n\n onChangeText(replace(text, searchStringRange.start, searchStringRange.end, mentionedMessageText), { user, range });\n };\n\n if (!props.shouldRenderInput) {\n return <SafeAreaBottom height={safeArea.paddingBottom} />;\n }\n\n return (\n <>\n <KeyboardAvoidingView\n keyboardVerticalOffset={-safeArea.paddingBottom + keyboardAvoidOffset}\n behavior={KEYBOARD_AVOID_VIEW_BEHAVIOR}\n >\n <View\n style={{\n paddingStart: safeArea.paddingStart,\n paddingEnd: safeArea.paddingEnd,\n backgroundColor: colors.background,\n }}\n >\n <View onLayout={(e) => setInputHeight(e.nativeEvent.layout.height)} style={styles.inputContainer}>\n {inputMode === 'send' && (\n <SendInput\n {...props}\n key={inputKeyToRemount}\n ref={textInputRef as never}\n text={text}\n onChangeText={onChangeText}\n onSelectionChange={onSelectionChange}\n mentionedUsers={mentionedUsers}\n VoiceMessageInput={props.VoiceMessageInput ?? VoiceMessageInput}\n AttachmentsButton={props.AttachmentsButton ?? AttachmentsButton}\n MessageToReplyPreview={props.MessageToReplyPreview ?? MessageToReplyPreview}\n style={textInputStyle}\n />\n )}\n {inputMode === 'edit' && messageToEdit && (\n <EditInput\n {...props}\n key={inputKeyToRemount}\n ref={textInputRef as never}\n text={text}\n onChangeText={onChangeText}\n autoFocus={AUTO_FOCUS}\n onSelectionChange={onSelectionChange}\n mentionedUsers={mentionedUsers}\n messageToEdit={messageToEdit}\n setMessageToEdit={setMessageToEdit}\n style={textInputStyle}\n />\n )}\n </View>\n <SafeAreaBottom height={safeArea.paddingBottom} />\n </View>\n </KeyboardAvoidingView>\n {mentionAvailable && props.SuggestedMentionList && (\n <props.SuggestedMentionList\n text={text}\n selection={selection}\n inputHeight={inputHeight}\n topInset={safeArea.paddingTop}\n bottomInset={safeArea.paddingBottom}\n onPressToMention={onPressToMention}\n mentionedUsers={mentionedUsers}\n />\n )}\n </>\n );\n};\n\nconst useTypingTrigger = (text: string, channel: SendbirdBaseChannel) => {\n useEffect(\n () => {\n function triggerTyping() {\n if (channel.isGroupChannel()) {\n const action = () => (text.length === 0 ? channel.endTyping() : channel.startTyping());\n action().catch((error) => {\n Logger.debug('ChannelInput: Failed to trigger typing', error);\n });\n }\n }\n\n triggerTyping();\n },\n channel.isGroupChannel() ? [text] : [],\n );\n};\n\nconst useTextClearOnDisabled = (setText: (val: string) => void, chatDisabled: boolean) => {\n useEffect(() => {\n if (chatDisabled) setText('');\n }, [chatDisabled]);\n};\n\nconst useAutoFocusOnEditMode = (\n textInputRef: React.MutableRefObject<TextInput | undefined>,\n messageToEdit?: SendbirdBaseMessage,\n) => {\n useEffect(() => {\n if (messageToEdit?.isUserMessage()) {\n if (!AUTO_FOCUS) setTimeout(() => textInputRef.current?.focus(), 500);\n }\n }, [messageToEdit]);\n};\n\nconst SafeAreaBottom = ({ height }: { height: number }) => {\n return <View style={{ height }} />;\n};\n\nconst styles = createStyleSheet({\n inputContainer: {\n justifyContent: 'center',\n width: '100%',\n },\n inputDefault: {\n height: 56,\n },\n input: {\n flex: 1,\n marginEnd: 4,\n borderRadius: 20,\n paddingTop: 8,\n paddingBottom: 8,\n minHeight: 36,\n // Android - padding area is hidden\n // iOS - padding area is visible\n maxHeight: Platform.select({ ios: 36 * 2 + 16, android: 36 * 2 }),\n },\n});\n\nexport default React.memo(ChannelInput);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_uikitReactNativeFoundation","_uikitUtils","_useContext","_useMentionTextInput","_interopRequireDefault","_AttachmentsButton","_EditInput","_MessageToReplyPreview","_SendInput","_VoiceMessageInput","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","AUTO_FOCUS","Platform","select","ios","android","KEYBOARD_AVOID_VIEW_BEHAVIOR","undefined","ChannelInput","props","channel","keyboardAvoidOffset","messageToEdit","setMessageToEdit","safeArea","useSafeAreaPadding","colors","typography","useUIKitTheme","sbOptions","mentionManager","useSendbirdChat","selection","onSelectionChange","textInputRef","text","onChangeText","mentionedUsers","useMentionTextInput","inputMode","useIIFE","isFileMessage","mentionAvailable","uikit","groupChannel","enableMention","isGroupChannel","isBroadcast","inputKeyToRemount","inputHeight","setInputHeight","useState","styles","inputDefault","height","fontStyle","useMemo","body3","fontSize","lineHeight","textAlignVertical","textInputStyle","StyleSheet","flatten","input","style","useTypingTrigger","useTextClearOnDisabled","inputDisabled","useAutoFocusOnEditMode","onPressToMention","user","searchStringRange","mentionedMessageText","asMentionedMessageText","range","start","end","replace","shouldRenderInput","createElement","SafeAreaBottom","paddingBottom","Fragment","KeyboardAvoidingView","keyboardVerticalOffset","behavior","View","paddingStart","paddingEnd","backgroundColor","background","onLayout","nativeEvent","layout","inputContainer","key","ref","VoiceMessageInput","AttachmentsButton","MessageToReplyPreview","autoFocus","SuggestedMentionList","topInset","paddingTop","bottomInset","useEffect","triggerTyping","action","endTyping","startTyping","catch","error","Logger","debug","setText","chatDisabled","isUserMessage","setTimeout","_textInputRef$current","current","focus","createStyleSheet","justifyContent","width","flex","marginEnd","borderRadius","minHeight","maxHeight","_default","exports","React","memo"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { KeyboardAvoidingView, Platform, StyleProp, StyleSheet, TextInput, TextStyle, View } from 'react-native';\n\nimport { createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport {\n Logger,\n SendbirdBaseChannel,\n SendbirdBaseMessage,\n SendbirdFileMessage,\n SendbirdFileMessageCreateParams,\n SendbirdFileMessageUpdateParams,\n SendbirdMember,\n SendbirdUserMessage,\n SendbirdUserMessageCreateParams,\n SendbirdUserMessageUpdateParams,\n replace,\n useIIFE,\n useSafeAreaPadding,\n} from '@sendbird/uikit-utils';\n\nimport { useSendbirdChat } from '../../hooks/useContext';\nimport useMentionTextInput from '../../hooks/useMentionTextInput';\nimport type { CommonComponent, MentionedUser, Range } from '../../types';\nimport type { AttachmentsButtonProps } from './AttachmentsButton';\nimport AttachmentsButton from './AttachmentsButton';\nimport EditInput from './EditInput';\nimport type { MessageToReplyPreviewProps } from './MessageToReplyPreview';\nimport { MessageToReplyPreview } from './MessageToReplyPreview';\nimport SendInput from './SendInput';\nimport VoiceMessageInput, { VoiceMessageInputProps } from './VoiceMessageInput';\n\nexport type SuggestedMentionListProps = {\n text: string;\n selection: Range;\n topInset: number;\n bottomInset: number;\n inputHeight: number;\n onPressToMention: (user: SendbirdMember, searchStringRange: Range) => void;\n mentionedUsers: MentionedUser[];\n /**\n * Whether to show user id information on each item.\n * */\n showUserId?: boolean;\n};\n\nexport type ChannelInputProps = {\n // style\n style?: StyleProp<TextStyle>;\n\n // default\n channel: SendbirdBaseChannel;\n shouldRenderInput: boolean;\n keyboardAvoidOffset: number;\n\n // default actions\n onPressSendUserMessage: (params: SendbirdUserMessageCreateParams) => Promise<void>;\n onPressSendFileMessage: (params: SendbirdFileMessageCreateParams) => Promise<void>;\n onPressUpdateUserMessage: (message: SendbirdUserMessage, params: SendbirdUserMessageUpdateParams) => Promise<void>;\n onPressUpdateFileMessage: (message: SendbirdFileMessage, params: SendbirdFileMessageUpdateParams) => Promise<void>;\n\n // input status\n inputFrozen: boolean;\n inputMuted: boolean;\n inputDisabled: boolean;\n\n // edit\n messageToEdit: undefined | SendbirdUserMessage | SendbirdFileMessage;\n setMessageToEdit: (message?: undefined | SendbirdUserMessage | SendbirdFileMessage) => void;\n\n // reply - only available on group channel\n messageToReply?: undefined | SendbirdUserMessage | SendbirdFileMessage;\n setMessageToReply?: (message?: undefined | SendbirdUserMessage | SendbirdFileMessage) => void;\n messageForThread?: undefined | SendbirdUserMessage | SendbirdFileMessage;\n\n // mention\n SuggestedMentionList?: CommonComponent<SuggestedMentionListProps>;\n\n // sub-components\n AttachmentsButton?: (props: AttachmentsButtonProps) => React.ReactNode | null;\n MessageToReplyPreview?: (props: MessageToReplyPreviewProps) => React.ReactNode | null;\n VoiceMessageInput?: (props: VoiceMessageInputProps) => React.ReactNode | null;\n};\n\nconst AUTO_FOCUS = Platform.select({ ios: false, android: true, default: false });\nconst KEYBOARD_AVOID_VIEW_BEHAVIOR = Platform.select({ ios: 'padding' as const, default: undefined });\n\n// FIXME(iOS): Dynamic style does not work properly when typing the CJK. (https://github.com/facebook/react-native/issues/26107)\n// To workaround temporarily, change the key for re-mount the component.\n// -> This will affect to keyboard blur when add/remove first mentioned user.\n// const GET_INPUT_KEY = (shouldReset: boolean) => {\n// return Platform.OS === 'ios' && shouldReset ? 'uikit-input-clear' : 'uikit-input';\n// };\n\n// TODO: Refactor 'Edit' mode to clearly\nconst ChannelInput = (props: ChannelInputProps) => {\n const { channel, keyboardAvoidOffset, messageToEdit, setMessageToEdit } = props;\n\n const safeArea = useSafeAreaPadding(['top', 'left', 'right', 'bottom']);\n const { colors, typography } = useUIKitTheme();\n const { sbOptions, mentionManager } = useSendbirdChat();\n\n const { selection, onSelectionChange, textInputRef, text, onChangeText, mentionedUsers } = useMentionTextInput({\n messageToEdit,\n });\n const inputMode = useIIFE(() => {\n if (messageToEdit && !messageToEdit.isFileMessage()) return 'edit';\n else return 'send';\n });\n\n const mentionAvailable =\n sbOptions.uikit.groupChannel.channel.enableMention && channel.isGroupChannel() && !channel.isBroadcast;\n const inputKeyToRemount = 'input'; //GET_INPUT_KEY(mentionAvailable ? mentionedUsers.length === 0 : false);\n\n const [inputHeight, setInputHeight] = useState(styles.inputDefault.height);\n\n const fontStyle = useMemo(() => {\n if (!typography.body3.fontSize) return typography.body3;\n // NOTE: iOS does not support textAlignVertical, so we should adjust lineHeight to center the text in multiline TextInput.\n return { ...typography.body3, lineHeight: typography.body3.fontSize * 1.275, textAlignVertical: 'center' };\n }, [typography.body3.fontSize]);\n\n const textInputStyle = StyleSheet.flatten([styles.input, fontStyle, props.style]);\n\n useTypingTrigger(text, channel);\n useTextClearOnDisabled(onChangeText, props.inputDisabled);\n useAutoFocusOnEditMode(textInputRef, messageToEdit);\n\n const onPressToMention = (user: SendbirdMember, searchStringRange: Range) => {\n const mentionedMessageText = mentionManager.asMentionedMessageText(user, true);\n const range = { start: searchStringRange.start, end: searchStringRange.start + mentionedMessageText.length - 1 };\n\n onChangeText(replace(text, searchStringRange.start, searchStringRange.end, mentionedMessageText), { user, range });\n };\n\n if (!props.shouldRenderInput) {\n return <SafeAreaBottom height={safeArea.paddingBottom} />;\n }\n\n return (\n <>\n <KeyboardAvoidingView\n keyboardVerticalOffset={-safeArea.paddingBottom + keyboardAvoidOffset}\n behavior={KEYBOARD_AVOID_VIEW_BEHAVIOR}\n >\n <View\n style={{\n paddingStart: safeArea.paddingStart,\n paddingEnd: safeArea.paddingEnd,\n backgroundColor: colors.background,\n }}\n >\n <View onLayout={(e) => setInputHeight(e.nativeEvent.layout.height)} style={styles.inputContainer}>\n {inputMode === 'send' && (\n <SendInput\n {...props}\n key={inputKeyToRemount}\n ref={textInputRef as never}\n text={text}\n onChangeText={onChangeText}\n onSelectionChange={onSelectionChange}\n mentionedUsers={mentionedUsers}\n VoiceMessageInput={props.VoiceMessageInput ?? VoiceMessageInput}\n AttachmentsButton={props.AttachmentsButton ?? AttachmentsButton}\n MessageToReplyPreview={props.MessageToReplyPreview ?? MessageToReplyPreview}\n style={textInputStyle}\n />\n )}\n {inputMode === 'edit' && messageToEdit && (\n <EditInput\n {...props}\n key={inputKeyToRemount}\n ref={textInputRef as never}\n text={text}\n onChangeText={onChangeText}\n autoFocus={AUTO_FOCUS}\n onSelectionChange={onSelectionChange}\n mentionedUsers={mentionedUsers}\n messageToEdit={messageToEdit}\n setMessageToEdit={setMessageToEdit}\n style={textInputStyle}\n />\n )}\n </View>\n <SafeAreaBottom height={safeArea.paddingBottom} />\n </View>\n </KeyboardAvoidingView>\n {mentionAvailable && props.SuggestedMentionList && (\n <props.SuggestedMentionList\n text={text}\n selection={selection}\n inputHeight={inputHeight}\n topInset={safeArea.paddingTop}\n bottomInset={safeArea.paddingBottom}\n onPressToMention={onPressToMention}\n mentionedUsers={mentionedUsers}\n />\n )}\n </>\n );\n};\n\nconst useTypingTrigger = (text: string, channel: SendbirdBaseChannel) => {\n useEffect(\n () => {\n function triggerTyping() {\n if (channel.isGroupChannel()) {\n const action = () => (text.length === 0 ? channel.endTyping() : channel.startTyping());\n action().catch((error) => {\n Logger.debug('ChannelInput: Failed to trigger typing', error);\n });\n }\n }\n\n triggerTyping();\n },\n channel.isGroupChannel() ? [text] : [],\n );\n};\n\nconst useTextClearOnDisabled = (setText: (val: string) => void, chatDisabled: boolean) => {\n useEffect(() => {\n if (chatDisabled) setText('');\n }, [chatDisabled]);\n};\n\nconst useAutoFocusOnEditMode = (\n textInputRef: React.MutableRefObject<TextInput | undefined>,\n messageToEdit?: SendbirdBaseMessage,\n) => {\n useEffect(() => {\n if (messageToEdit?.isUserMessage()) {\n if (!AUTO_FOCUS) setTimeout(() => textInputRef.current?.focus(), 500);\n }\n }, [messageToEdit]);\n};\n\nconst SafeAreaBottom = ({ height }: { height: number }) => {\n return <View style={{ height }} />;\n};\n\nconst styles = createStyleSheet({\n inputContainer: {\n justifyContent: 'center',\n width: '100%',\n },\n inputDefault: {\n height: 56,\n },\n input: {\n flex: 1,\n marginEnd: 4,\n borderRadius: 20,\n paddingTop: 8,\n paddingBottom: 8,\n minHeight: 36,\n // Android - padding area is hidden\n // iOS - padding area is visible\n maxHeight: Platform.select({ ios: 36 * 2 + 16, android: 36 * 2 }),\n },\n});\n\nexport default React.memo(ChannelInput);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -24,7 +24,7 @@ const createOnPressReaction = (reaction, channel, message, reacted) => {
|
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
26
|
};
|
|
27
|
-
const createReactionButtons = (channel, message,
|
|
27
|
+
const createReactionButtons = (channel, message, getIconSource, emojiLimit, onOpenReactionList, onOpenReactionUserList, reactionAddonType) => {
|
|
28
28
|
const reactions = message.reactions ?? [];
|
|
29
29
|
const buttons = reactions.map((reaction, index) => {
|
|
30
30
|
const isNotLastOfRow = index % NUM_COL !== NUM_COL - 1;
|
|
@@ -37,7 +37,7 @@ const createReactionButtons = (channel, message, getEmoji, emojiLimit, onOpenRea
|
|
|
37
37
|
}, ({
|
|
38
38
|
pressed
|
|
39
39
|
}) => /*#__PURE__*/_react.default.createElement(_ReactionRoundedButton.default, {
|
|
40
|
-
|
|
40
|
+
source: getIconSource(reaction.key),
|
|
41
41
|
count: (0, _uikitUtils.getReactionCount)(reaction),
|
|
42
42
|
reacted: pressed || reaction.hasCurrentUserReacted,
|
|
43
43
|
style: reactionAddonType === 'default' ? [isNotLastOfRow && styles.marginEnd, isNotLastOfCol && styles.marginBottom] : [styles.marginEnd, styles.marginBottom]
|
|
@@ -82,7 +82,10 @@ const MessageReactionAddon = ({
|
|
|
82
82
|
}
|
|
83
83
|
});
|
|
84
84
|
if (reactionAddonType === 'default' && !((_message$reactions = message.reactions) !== null && _message$reactions !== void 0 && _message$reactions.length)) return null;
|
|
85
|
-
const reactionButtons = createReactionButtons(channel, message,
|
|
85
|
+
const reactionButtons = createReactionButtons(channel, message, reactionKey => {
|
|
86
|
+
const emoji = emojiManager.allEmojiMap[reactionKey];
|
|
87
|
+
return emojiManager.getEmojiIconSource(emoji);
|
|
88
|
+
}, emojiManager.allEmoji.length, () => openReactionList({
|
|
86
89
|
channel,
|
|
87
90
|
message
|
|
88
91
|
}), focusIndex => openReactionUserList({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_uikitReactNativeFoundation","_uikitTools","_uikitUtils","_constants","_useContext","_ReactionRoundedButton","e","__esModule","default","NUM_COL","REACTION_MORE_KEY","createOnPressReaction","reaction","channel","message","reacted","deleteReaction","key","addReaction","createReactionButtons","getEmoji","emojiLimit","onOpenReactionList","onOpenReactionUserList","reactionAddonType","reactions","buttons","map","index","isNotLastOfRow","isNotLastOfCol","length","createElement","Pressable","onPress","hasCurrentUserReacted","onLongPress","delayLongPress","DEFAULT_LONG_PRESS_DELAY","pressed","url","count","getReactionCount","style","styles","marginEnd","marginBottom","push","More","MessageReactionAddon","_message$reactions","colors","useUIKitTheme","sdk","emojiManager","useSendbirdChat","openReactionList","openReactionUserList","useReaction","forceUpdate","useForceUpdate","useGroupChannelHandler","onReactionUpdated","_","event","messageId","applyReactionEvent","reactionButtons","allEmojiMap","allEmoji","focusIndex","containerStyle","reactionContainer","reactionThreadParentMessageContainer","backgroundColor","background","borderColor","ui","rounded","enabled","createStyleSheet","alignItems","flexDirection","flexWrap","padding","borderRadius","borderWidth","_default","exports"],"sources":["MessageReactionAddon.tsx"],"sourcesContent":["import React from 'react';\nimport { Pressable } from 'react-native';\n\nimport type { Emoji } from '@sendbird/chat';\nimport { createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { useForceUpdate, useGroupChannelHandler } from '@sendbird/uikit-tools';\nimport type { SendbirdBaseChannel, SendbirdBaseMessage, SendbirdReaction } from '@sendbird/uikit-utils';\nimport { getReactionCount } from '@sendbird/uikit-utils';\n\nimport { DEFAULT_LONG_PRESS_DELAY } from '../../constants';\nimport { useReaction, useSendbirdChat } from '../../hooks/useContext';\nimport ReactionRoundedButton from './ReactionRoundedButton';\n\nconst NUM_COL = 4;\nconst REACTION_MORE_KEY = 'reaction-more-button';\nexport type ReactionAddonType = 'default' | 'thread_parent_message';\n\nconst createOnPressReaction = (\n reaction: SendbirdReaction,\n channel: SendbirdBaseChannel,\n message: SendbirdBaseMessage,\n reacted: boolean,\n) => {\n return () => {\n if (reacted) {\n return channel.deleteReaction(message, reaction.key);\n } else {\n return channel.addReaction(message, reaction.key);\n }\n };\n};\n\nconst createReactionButtons = (\n channel: SendbirdBaseChannel,\n message: SendbirdBaseMessage,\n getEmoji: (key: string) => Emoji,\n emojiLimit: number,\n onOpenReactionList: () => void,\n onOpenReactionUserList: (focusIndex: number) => void,\n reactionAddonType?: ReactionAddonType,\n) => {\n const reactions = message.reactions ?? [];\n const buttons = reactions.map((reaction, index) => {\n const isNotLastOfRow = index % NUM_COL !== NUM_COL - 1;\n const isNotLastOfCol = index < NUM_COL && reactions.length >= NUM_COL;\n return (\n <Pressable\n key={reaction.key}\n onPress={createOnPressReaction(reaction, channel, message, reaction.hasCurrentUserReacted)}\n onLongPress={() => onOpenReactionUserList(index)}\n delayLongPress={DEFAULT_LONG_PRESS_DELAY}\n >\n {({ pressed }) => (\n <ReactionRoundedButton\n url={getEmoji(reaction.key).url}\n count={getReactionCount(reaction)}\n reacted={pressed || reaction.hasCurrentUserReacted}\n style={\n reactionAddonType === 'default'\n ? [isNotLastOfRow && styles.marginEnd, isNotLastOfCol && styles.marginBottom]\n : [styles.marginEnd, styles.marginBottom]\n }\n />\n )}\n </Pressable>\n );\n });\n if (buttons.length < emojiLimit) {\n buttons.push(\n <Pressable key={REACTION_MORE_KEY} onPress={onOpenReactionList}>\n {({ pressed }) => <ReactionRoundedButton.More pressed={pressed} />}\n </Pressable>,\n );\n }\n\n return buttons;\n};\n\nconst MessageReactionAddon = ({\n channel,\n message,\n reactionAddonType = 'default',\n}: {\n channel: SendbirdBaseChannel;\n message: SendbirdBaseMessage;\n reactionAddonType?: ReactionAddonType;\n}) => {\n const { colors } = useUIKitTheme();\n const { sdk, emojiManager } = useSendbirdChat();\n const { openReactionList, openReactionUserList } = useReaction();\n const forceUpdate = useForceUpdate();\n\n useGroupChannelHandler(sdk, {\n async onReactionUpdated(_, event) {\n if (event.messageId === message.messageId) {\n message.applyReactionEvent(event);\n forceUpdate();\n }\n },\n });\n\n if (reactionAddonType === 'default' && !message.reactions?.length) return null;\n\n const reactionButtons = createReactionButtons(\n channel,\n message,\n (key) => emojiManager.allEmojiMap[key],\n emojiManager.allEmoji.length,\n () => openReactionList({ channel, message }),\n (focusIndex) => openReactionUserList({ channel, message, focusIndex }),\n reactionAddonType,\n );\n\n const containerStyle =\n reactionAddonType === 'default' ? styles.reactionContainer : styles.reactionThreadParentMessageContainer;\n\n return (\n <Pressable\n style={[\n containerStyle,\n { backgroundColor: colors.background, borderColor: colors.ui.reaction.rounded.enabled.background },\n ]}\n >\n {reactionButtons}\n </Pressable>\n );\n};\n\nconst styles = createStyleSheet({\n reactionContainer: {\n alignItems: 'stretch',\n flexDirection: 'row',\n flexWrap: 'wrap',\n padding: 8,\n borderRadius: 16,\n borderWidth: 1,\n },\n reactionThreadParentMessageContainer: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n },\n marginEnd: {\n marginEnd: 4.5,\n },\n marginBottom: {\n marginBottom: 4,\n },\n});\n\nexport default MessageReactionAddon;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_uikitReactNativeFoundation","_uikitTools","_uikitUtils","_constants","_useContext","_ReactionRoundedButton","e","__esModule","default","NUM_COL","REACTION_MORE_KEY","createOnPressReaction","reaction","channel","message","reacted","deleteReaction","key","addReaction","createReactionButtons","getIconSource","emojiLimit","onOpenReactionList","onOpenReactionUserList","reactionAddonType","reactions","buttons","map","index","isNotLastOfRow","isNotLastOfCol","length","createElement","Pressable","onPress","hasCurrentUserReacted","onLongPress","delayLongPress","DEFAULT_LONG_PRESS_DELAY","pressed","source","count","getReactionCount","style","styles","marginEnd","marginBottom","push","More","MessageReactionAddon","_message$reactions","colors","useUIKitTheme","sdk","emojiManager","useSendbirdChat","openReactionList","openReactionUserList","useReaction","forceUpdate","useForceUpdate","useGroupChannelHandler","onReactionUpdated","_","event","messageId","applyReactionEvent","reactionButtons","reactionKey","emoji","allEmojiMap","getEmojiIconSource","allEmoji","focusIndex","containerStyle","reactionContainer","reactionThreadParentMessageContainer","backgroundColor","background","borderColor","ui","rounded","enabled","createStyleSheet","alignItems","flexDirection","flexWrap","padding","borderRadius","borderWidth","_default","exports"],"sources":["MessageReactionAddon.tsx"],"sourcesContent":["import React from 'react';\nimport { ImageProps, Pressable } from 'react-native';\n\nimport { createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { useForceUpdate, useGroupChannelHandler } from '@sendbird/uikit-tools';\nimport type { SendbirdBaseChannel, SendbirdBaseMessage, SendbirdReaction } from '@sendbird/uikit-utils';\nimport { getReactionCount } from '@sendbird/uikit-utils';\n\nimport { DEFAULT_LONG_PRESS_DELAY } from '../../constants';\nimport { useReaction, useSendbirdChat } from '../../hooks/useContext';\nimport ReactionRoundedButton from './ReactionRoundedButton';\n\nconst NUM_COL = 4;\nconst REACTION_MORE_KEY = 'reaction-more-button';\nexport type ReactionAddonType = 'default' | 'thread_parent_message';\n\nconst createOnPressReaction = (\n reaction: SendbirdReaction,\n channel: SendbirdBaseChannel,\n message: SendbirdBaseMessage,\n reacted: boolean,\n) => {\n return () => {\n if (reacted) {\n return channel.deleteReaction(message, reaction.key);\n } else {\n return channel.addReaction(message, reaction.key);\n }\n };\n};\n\nconst createReactionButtons = (\n channel: SendbirdBaseChannel,\n message: SendbirdBaseMessage,\n getIconSource: (reactionKey: string) => ImageProps['source'],\n emojiLimit: number,\n onOpenReactionList: () => void,\n onOpenReactionUserList: (focusIndex: number) => void,\n reactionAddonType?: ReactionAddonType,\n) => {\n const reactions = message.reactions ?? [];\n const buttons = reactions.map((reaction, index) => {\n const isNotLastOfRow = index % NUM_COL !== NUM_COL - 1;\n const isNotLastOfCol = index < NUM_COL && reactions.length >= NUM_COL;\n return (\n <Pressable\n key={reaction.key}\n onPress={createOnPressReaction(reaction, channel, message, reaction.hasCurrentUserReacted)}\n onLongPress={() => onOpenReactionUserList(index)}\n delayLongPress={DEFAULT_LONG_PRESS_DELAY}\n >\n {({ pressed }) => (\n <ReactionRoundedButton\n source={getIconSource(reaction.key)}\n count={getReactionCount(reaction)}\n reacted={pressed || reaction.hasCurrentUserReacted}\n style={\n reactionAddonType === 'default'\n ? [isNotLastOfRow && styles.marginEnd, isNotLastOfCol && styles.marginBottom]\n : [styles.marginEnd, styles.marginBottom]\n }\n />\n )}\n </Pressable>\n );\n });\n if (buttons.length < emojiLimit) {\n buttons.push(\n <Pressable key={REACTION_MORE_KEY} onPress={onOpenReactionList}>\n {({ pressed }) => <ReactionRoundedButton.More pressed={pressed} />}\n </Pressable>,\n );\n }\n\n return buttons;\n};\n\nconst MessageReactionAddon = ({\n channel,\n message,\n reactionAddonType = 'default',\n}: {\n channel: SendbirdBaseChannel;\n message: SendbirdBaseMessage;\n reactionAddonType?: ReactionAddonType;\n}) => {\n const { colors } = useUIKitTheme();\n const { sdk, emojiManager } = useSendbirdChat();\n const { openReactionList, openReactionUserList } = useReaction();\n const forceUpdate = useForceUpdate();\n\n useGroupChannelHandler(sdk, {\n async onReactionUpdated(_, event) {\n if (event.messageId === message.messageId) {\n message.applyReactionEvent(event);\n forceUpdate();\n }\n },\n });\n\n if (reactionAddonType === 'default' && !message.reactions?.length) return null;\n\n const reactionButtons = createReactionButtons(\n channel,\n message,\n (reactionKey) => {\n const emoji = emojiManager.allEmojiMap[reactionKey];\n return emojiManager.getEmojiIconSource(emoji);\n },\n emojiManager.allEmoji.length,\n () => openReactionList({ channel, message }),\n (focusIndex) => openReactionUserList({ channel, message, focusIndex }),\n reactionAddonType,\n );\n\n const containerStyle =\n reactionAddonType === 'default' ? styles.reactionContainer : styles.reactionThreadParentMessageContainer;\n\n return (\n <Pressable\n style={[\n containerStyle,\n { backgroundColor: colors.background, borderColor: colors.ui.reaction.rounded.enabled.background },\n ]}\n >\n {reactionButtons}\n </Pressable>\n );\n};\n\nconst styles = createStyleSheet({\n reactionContainer: {\n alignItems: 'stretch',\n flexDirection: 'row',\n flexWrap: 'wrap',\n padding: 8,\n borderRadius: 16,\n borderWidth: 1,\n },\n reactionThreadParentMessageContainer: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n },\n marginEnd: {\n marginEnd: 4.5,\n },\n marginBottom: {\n marginBottom: 4,\n },\n});\n\nexport default MessageReactionAddon;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,2BAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAEA,IAAAI,WAAA,GAAAJ,OAAA;AAEA,IAAAK,UAAA,GAAAL,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AACA,IAAAO,sBAAA,GAAAR,sBAAA,CAAAC,OAAA;AAA4D,SAAAD,uBAAAS,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE5D,MAAMG,OAAO,GAAG,CAAC;AACjB,MAAMC,iBAAiB,GAAG,sBAAsB;AAGhD,MAAMC,qBAAqB,GAAGA,CAC5BC,QAA0B,EAC1BC,OAA4B,EAC5BC,OAA4B,EAC5BC,OAAgB,KACb;EACH,OAAO,MAAM;IACX,IAAIA,OAAO,EAAE;MACX,OAAOF,OAAO,CAACG,cAAc,CAACF,OAAO,EAAEF,QAAQ,CAACK,GAAG,CAAC;IACtD,CAAC,MAAM;MACL,OAAOJ,OAAO,CAACK,WAAW,CAACJ,OAAO,EAAEF,QAAQ,CAACK,GAAG,CAAC;IACnD;EACF,CAAC;AACH,CAAC;AAED,MAAME,qBAAqB,GAAGA,CAC5BN,OAA4B,EAC5BC,OAA4B,EAC5BM,aAA4D,EAC5DC,UAAkB,EAClBC,kBAA8B,EAC9BC,sBAAoD,EACpDC,iBAAqC,KAClC;EACH,MAAMC,SAAS,GAAGX,OAAO,CAACW,SAAS,IAAI,EAAE;EACzC,MAAMC,OAAO,GAAGD,SAAS,CAACE,GAAG,CAAC,CAACf,QAAQ,EAAEgB,KAAK,KAAK;IACjD,MAAMC,cAAc,GAAGD,KAAK,GAAGnB,OAAO,KAAKA,OAAO,GAAG,CAAC;IACtD,MAAMqB,cAAc,GAAGF,KAAK,GAAGnB,OAAO,IAAIgB,SAAS,CAACM,MAAM,IAAItB,OAAO;IACrE,oBACEb,MAAA,CAAAY,OAAA,CAAAwB,aAAA,CAACjC,YAAA,CAAAkC,SAAS;MACRhB,GAAG,EAAEL,QAAQ,CAACK,GAAI;MAClBiB,OAAO,EAAEvB,qBAAqB,CAACC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,EAAEF,QAAQ,CAACuB,qBAAqB,CAAE;MAC3FC,WAAW,EAAEA,CAAA,KAAMb,sBAAsB,CAACK,KAAK,CAAE;MACjDS,cAAc,EAAEC;IAAyB,GAExC,CAAC;MAAEC;IAAQ,CAAC,kBACX3C,MAAA,CAAAY,OAAA,CAAAwB,aAAA,CAAC3B,sBAAA,CAAAG,OAAqB;MACpBgC,MAAM,EAAEpB,aAAa,CAACR,QAAQ,CAACK,GAAG,CAAE;MACpCwB,KAAK,EAAE,IAAAC,4BAAgB,EAAC9B,QAAQ,CAAE;MAClCG,OAAO,EAAEwB,OAAO,IAAI3B,QAAQ,CAACuB,qBAAsB;MACnDQ,KAAK,EACHnB,iBAAiB,KAAK,SAAS,GAC3B,CAACK,cAAc,IAAIe,MAAM,CAACC,SAAS,EAAEf,cAAc,IAAIc,MAAM,CAACE,YAAY,CAAC,GAC3E,CAACF,MAAM,CAACC,SAAS,EAAED,MAAM,CAACE,YAAY;IAC3C,CACF,CAEM,CAAC;EAEhB,CAAC,CAAC;EACF,IAAIpB,OAAO,CAACK,MAAM,GAAGV,UAAU,EAAE;IAC/BK,OAAO,CAACqB,IAAI,cACVnD,MAAA,CAAAY,OAAA,CAAAwB,aAAA,CAACjC,YAAA,CAAAkC,SAAS;MAAChB,GAAG,EAAEP,iBAAkB;MAACwB,OAAO,EAAEZ;IAAmB,GAC5D,CAAC;MAAEiB;IAAQ,CAAC,kBAAK3C,MAAA,CAAAY,OAAA,CAAAwB,aAAA,CAAC3B,sBAAA,CAAAG,OAAqB,CAACwC,IAAI;MAACT,OAAO,EAAEA;IAAQ,CAAE,CACxD,CACb,CAAC;EACH;EAEA,OAAOb,OAAO;AAChB,CAAC;AAED,MAAMuB,oBAAoB,GAAGA,CAAC;EAC5BpC,OAAO;EACPC,OAAO;EACPU,iBAAiB,GAAG;AAKtB,CAAC,KAAK;EAAA,IAAA0B,kBAAA;EACJ,MAAM;IAAEC;EAAO,CAAC,GAAG,IAAAC,yCAAa,EAAC,CAAC;EAClC,MAAM;IAAEC,GAAG;IAAEC;EAAa,CAAC,GAAG,IAAAC,2BAAe,EAAC,CAAC;EAC/C,MAAM;IAAEC,gBAAgB;IAAEC;EAAqB,CAAC,GAAG,IAAAC,uBAAW,EAAC,CAAC;EAChE,MAAMC,WAAW,GAAG,IAAAC,0BAAc,EAAC,CAAC;EAEpC,IAAAC,kCAAsB,EAACR,GAAG,EAAE;IAC1B,MAAMS,iBAAiBA,CAACC,CAAC,EAAEC,KAAK,EAAE;MAChC,IAAIA,KAAK,CAACC,SAAS,KAAKnD,OAAO,CAACmD,SAAS,EAAE;QACzCnD,OAAO,CAACoD,kBAAkB,CAACF,KAAK,CAAC;QACjCL,WAAW,CAAC,CAAC;MACf;IACF;EACF,CAAC,CAAC;EAEF,IAAInC,iBAAiB,KAAK,SAAS,IAAI,GAAA0B,kBAAA,GAACpC,OAAO,CAACW,SAAS,cAAAyB,kBAAA,eAAjBA,kBAAA,CAAmBnB,MAAM,GAAE,OAAO,IAAI;EAE9E,MAAMoC,eAAe,GAAGhD,qBAAqB,CAC3CN,OAAO,EACPC,OAAO,EACNsD,WAAW,IAAK;IACf,MAAMC,KAAK,GAAGf,YAAY,CAACgB,WAAW,CAACF,WAAW,CAAC;IACnD,OAAOd,YAAY,CAACiB,kBAAkB,CAACF,KAAK,CAAC;EAC/C,CAAC,EACDf,YAAY,CAACkB,QAAQ,CAACzC,MAAM,EAC5B,MAAMyB,gBAAgB,CAAC;IAAE3C,OAAO;IAAEC;EAAQ,CAAC,CAAC,EAC3C2D,UAAU,IAAKhB,oBAAoB,CAAC;IAAE5C,OAAO;IAAEC,OAAO;IAAE2D;EAAW,CAAC,CAAC,EACtEjD,iBACF,CAAC;EAED,MAAMkD,cAAc,GAClBlD,iBAAiB,KAAK,SAAS,GAAGoB,MAAM,CAAC+B,iBAAiB,GAAG/B,MAAM,CAACgC,oCAAoC;EAE1G,oBACEhF,MAAA,CAAAY,OAAA,CAAAwB,aAAA,CAACjC,YAAA,CAAAkC,SAAS;IACRU,KAAK,EAAE,CACL+B,cAAc,EACd;MAAEG,eAAe,EAAE1B,MAAM,CAAC2B,UAAU;MAAEC,WAAW,EAAE5B,MAAM,CAAC6B,EAAE,CAACpE,QAAQ,CAACqE,OAAO,CAACC,OAAO,CAACJ;IAAW,CAAC;EAClG,GAEDX,eACQ,CAAC;AAEhB,CAAC;AAED,MAAMvB,MAAM,GAAG,IAAAuC,4CAAgB,EAAC;EAC9BR,iBAAiB,EAAE;IACjBS,UAAU,EAAE,SAAS;IACrBC,aAAa,EAAE,KAAK;IACpBC,QAAQ,EAAE,MAAM;IAChBC,OAAO,EAAE,CAAC;IACVC,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE;EACf,CAAC;EACDb,oCAAoC,EAAE;IACpCS,aAAa,EAAE,KAAK;IACpBC,QAAQ,EAAE;EACZ,CAAC;EACDzC,SAAS,EAAE;IACTA,SAAS,EAAE;EACb,CAAC;EACDC,YAAY,EAAE;IACZA,YAAY,EAAE;EAChB;AACF,CAAC,CAAC;AAAC,IAAA4C,QAAA,GAAAC,OAAA,CAAAnF,OAAA,GAEYyC,oBAAoB","ignoreList":[]}
|
|
@@ -10,10 +10,11 @@ var _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundati
|
|
|
10
10
|
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
11
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
12
|
const ReactionRoundedButton = ({
|
|
13
|
-
|
|
13
|
+
source,
|
|
14
14
|
count,
|
|
15
15
|
reacted,
|
|
16
|
-
style
|
|
16
|
+
style,
|
|
17
|
+
url
|
|
17
18
|
}) => {
|
|
18
19
|
const {
|
|
19
20
|
colors
|
|
@@ -24,7 +25,7 @@ const ReactionRoundedButton = ({
|
|
|
24
25
|
backgroundColor: reacted ? color.selected.background : color.enabled.background
|
|
25
26
|
}, style]
|
|
26
27
|
}, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Image, {
|
|
27
|
-
source: {
|
|
28
|
+
source: source ? source : {
|
|
28
29
|
uri: url
|
|
29
30
|
},
|
|
30
31
|
style: styles.emoji
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_uikitReactNativeFoundation","_uikitUtils","e","__esModule","default","ReactionRoundedButton","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_uikitReactNativeFoundation","_uikitUtils","e","__esModule","default","ReactionRoundedButton","source","count","reacted","style","url","colors","useUIKitTheme","color","ui","reaction","rounded","createElement","View","styles","reactionContainer","backgroundColor","selected","background","enabled","Image","uri","emoji","Text","caption4","onBackground01","numberOfLines","truncatedCount","More","pressed","Icon","icon","onBackground03","size","createStyleSheet","flexDirection","justifyContent","alignItems","width","borderRadius","paddingVertical","paddingHorizontal","height","marginEnd","textAlign","_default","exports"],"sources":["ReactionRoundedButton.tsx"],"sourcesContent":["import React from 'react';\nimport { ImageProps, StyleProp, View, ViewStyle } from 'react-native';\n\nimport { Icon, Image, Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { truncatedCount } from '@sendbird/uikit-utils';\n\ntype Props = {\n source: ImageProps['source'];\n count: number;\n reacted: boolean;\n style: StyleProp<ViewStyle>;\n /**\n * @deprecated Please use `source` instead\n * */\n url?: string;\n};\n\nconst ReactionRoundedButton = ({ source, count, reacted, style, url }: Props) => {\n const { colors } = useUIKitTheme();\n const color = colors.ui.reaction.rounded;\n\n return (\n <View\n style={[\n styles.reactionContainer,\n { backgroundColor: reacted ? color.selected.background : color.enabled.background },\n style,\n ]}\n >\n <Image source={source ? source : { uri: url }} style={styles.emoji} />\n <Text caption4 color={colors.onBackground01} numberOfLines={1} style={styles.count}>\n {truncatedCount(count, 99, '')}\n </Text>\n </View>\n );\n};\n\nReactionRoundedButton.More = ({ pressed }: { pressed: boolean }) => {\n const { colors } = useUIKitTheme();\n const color = colors.ui.reaction.rounded;\n\n return (\n <View\n style={[\n styles.reactionContainer,\n { backgroundColor: pressed ? color.selected.background : color.enabled.background },\n ]}\n >\n <Icon icon={'emoji-more'} color={colors.onBackground03} size={20} />\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n reactionContainer: {\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n width: 52,\n borderRadius: 24,\n paddingVertical: 5,\n paddingHorizontal: 8,\n },\n emoji: {\n width: 20,\n height: 20,\n marginEnd: 4,\n },\n count: {\n width: 13,\n textAlign: 'left',\n },\n});\n\nexport default ReactionRoundedButton;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -116,9 +116,7 @@ const ReactionUserListBottomSheet = ({
|
|
|
116
116
|
}
|
|
117
117
|
}
|
|
118
118
|
}, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Image, {
|
|
119
|
-
source:
|
|
120
|
-
uri: emoji.url
|
|
121
|
-
},
|
|
119
|
+
source: emojiManager.getEmojiIconSource(emoji),
|
|
122
120
|
style: styles.tabEmoji
|
|
123
121
|
}), /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Text, {
|
|
124
122
|
button: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_uikitReactNativeFoundation","_uikitUtils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ReactionUserListBottomSheet","visible","onClose","onDismiss","reactionCtx","chatCtx","localizationCtx","onPressUserProfile","width","useWindowDimensions","safeArea","useSafeAreaPadding","colors","useUIKitTheme","tabIndex","setTabIndex","useState","scrollRef","useRef","tabIndicatorValue","tabIndicatorAnimated","x","Animated","Value","current","focusedWithLayoutCalculated","emojiManager","channel","message","focusIndex","STRINGS","color","ui","reaction","reactions","focusedReaction","containerSafeArea","paddingStart","styles","layout","paddingHorizontal","paddingEnd","focusTab","index","animated","indicatorValue","_scrollRef$current","animateTabIndicator","scrollTo","baseConfig","duration","easing","Easing","inOut","ease","useNativeDriver","parallel","timing","toValue","start","layoutCalculated","filter","Boolean","length","useEffect","renderTabs","createElement","Pressable","style","tabsWrapper","map","isFocused","key","isLastItem","emoji","allEmojiMap","tabItem","marginEnd","onPress","onLayout","indexForLayout","I18nManager","isRTL","nativeEvent","Image","source","uri","url","tabEmoji","Text","button","selected","highlight","enabled","truncatedCount","getReactionCount","View","tabIndicator","backgroundColor","renderPage","userCountDifference","count","sampledUserInfoList","Fragment","reactedUserInfo","isGroupChannel","userId","pageItem","Avatar","size","profileUrl","containerStyle","avatar","subtitle2","flex","nickname","LABELS","USER_NO_NAME","body3","onBackground02","REACTION","MORE_USERS","Modal","type","backgroundStyle","modal","container","paddingBottom","dialog","none","background","ScrollView","ref","horizontal","bounces","showsHorizontalScrollIndicator","contentContainerStyle","tabsContainer","Divider","top","showsVerticalScrollIndicator","pageContainer","createStyleSheet","overflow","borderTopStartRadius","borderTopEndRadius","paddingTop","alignItems","justifyContent","flexGrow","flexDirection","height","position","bottom","_default","exports"],"sources":["ReactionUserListBottomSheet.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Animated, Easing, I18nManager, Pressable, ScrollView, View, useWindowDimensions } from 'react-native';\n\nimport {\n Avatar,\n Divider,\n Image,\n Modal,\n Text,\n createStyleSheet,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport { SendbirdReaction, getReactionCount, truncatedCount, useSafeAreaPadding } from '@sendbird/uikit-utils';\n\nimport type { ReactionBottomSheetProps } from './index';\n\nconst ReactionUserListBottomSheet = ({\n visible,\n onClose,\n onDismiss,\n reactionCtx,\n chatCtx,\n localizationCtx,\n onPressUserProfile,\n}: ReactionBottomSheetProps) => {\n const { width } = useWindowDimensions();\n const safeArea = useSafeAreaPadding(['left', 'right', 'bottom']);\n const { colors } = useUIKitTheme();\n\n const [tabIndex, setTabIndex] = useState(0);\n const scrollRef = useRef<ScrollView>();\n const tabIndicatorValue = useRef<Array<{ x: number; width: number }>>([]);\n const tabIndicatorAnimated = useRef({ x: new Animated.Value(0), width: new Animated.Value(0) }).current;\n const focusedWithLayoutCalculated = useRef(false);\n\n const { emojiManager } = chatCtx;\n const { channel, message, focusIndex } = reactionCtx;\n const { STRINGS } = localizationCtx;\n\n const color = colors.ui.reaction.default;\n const reactions = message?.reactions ?? [];\n const focusedReaction = reactions[tabIndex] as SendbirdReaction | undefined;\n const containerSafeArea = {\n paddingStart: safeArea.paddingStart + styles.layout.paddingHorizontal,\n paddingEnd: safeArea.paddingEnd + styles.layout.paddingHorizontal,\n };\n\n const focusTab = (index: number, animated = true) => {\n const indicatorValue = tabIndicatorValue.current[index];\n if (indicatorValue) {\n setTabIndex(index);\n animateTabIndicator(indicatorValue.x, indicatorValue.width, animated);\n scrollRef.current?.scrollTo({ x: indicatorValue.x, animated });\n }\n };\n\n const animateTabIndicator = (x: number, width: number, animated = true) => {\n const baseConfig = { duration: animated ? 300 : 0, easing: Easing.inOut(Easing.ease), useNativeDriver: false };\n Animated.parallel([\n Animated.timing(tabIndicatorAnimated.x, { toValue: x, ...baseConfig }),\n Animated.timing(tabIndicatorAnimated.width, { toValue: width, ...baseConfig }),\n ]).start();\n };\n\n const layoutCalculated = () => {\n return tabIndicatorValue.current.filter(Boolean).length === reactions.length;\n };\n\n useEffect(() => {\n if (!visible) {\n tabIndicatorValue.current = [];\n tabIndicatorAnimated.x = new Animated.Value(0);\n tabIndicatorAnimated.width = new Animated.Value(0);\n focusedWithLayoutCalculated.current = false;\n }\n }, [visible]);\n\n const renderTabs = () => {\n return (\n <Pressable style={styles.tabsWrapper}>\n {reactions.map((reaction, index) => {\n const isFocused = focusedReaction?.key === reaction.key;\n const isLastItem = reactions.length - 1 === index;\n const emoji = emojiManager.allEmojiMap[reaction.key];\n\n return (\n <Pressable\n key={reaction.key}\n style={[styles.tabItem, isLastItem && { marginEnd: styles.layout.marginEnd }]}\n onPress={() => focusTab(index)}\n onLayout={(e) => {\n const indexForLayout = I18nManager.isRTL ? reactions.length - 1 - index : index;\n tabIndicatorValue.current[indexForLayout] = e.nativeEvent.layout;\n if (layoutCalculated()) {\n if (focusedWithLayoutCalculated.current) {\n // re-calculating layout when screen rotation\n focusTab(tabIndex, false);\n } else {\n focusedWithLayoutCalculated.current = true;\n focusTab(focusIndex);\n }\n }\n }}\n >\n <Image source={{ uri: emoji.url }} style={styles.tabEmoji} />\n <Text button color={isFocused ? color.selected.highlight : color.enabled.highlight}>\n {truncatedCount(getReactionCount(reaction))}\n </Text>\n </Pressable>\n );\n })}\n <Animated.View\n style={[\n styles.tabIndicator,\n {\n start: tabIndicatorAnimated.x,\n width: tabIndicatorAnimated.width,\n backgroundColor: color.selected.highlight,\n },\n ]}\n />\n </Pressable>\n );\n };\n\n const renderPage = () => {\n const userCountDifference = (focusedReaction?.count || 0) - (focusedReaction?.sampledUserInfoList.length || 0);\n\n return (\n <>\n {focusedReaction?.sampledUserInfoList.map((reactedUserInfo) => {\n if (channel?.isGroupChannel()) {\n return (\n <Pressable\n key={reactedUserInfo.userId}\n onPress={async () => {\n await onClose();\n onPressUserProfile(reactedUserInfo);\n }}\n style={styles.pageItem}\n >\n <Avatar size={36} uri={reactedUserInfo?.profileUrl} containerStyle={styles.avatar} />\n <Text subtitle2 style={{ flex: 1 }}>\n {reactedUserInfo?.nickname || STRINGS.LABELS.USER_NO_NAME}\n </Text>\n </Pressable>\n );\n }\n return null;\n })}\n {userCountDifference > 0 && (\n <View style={styles.pageItem}>\n <Text body3 color={colors.onBackground02}>\n {STRINGS.REACTION.MORE_USERS(userCountDifference)}\n </Text>\n </View>\n )}\n </>\n );\n };\n\n return (\n <Modal\n type={'slide-no-gesture'}\n visible={Boolean(visible && channel && message)}\n onClose={onClose}\n onDismiss={onDismiss}\n backgroundStyle={styles.modal}\n >\n <View\n style={[\n styles.container,\n { width, paddingBottom: safeArea.paddingBottom, backgroundColor: colors.ui.dialog.default.none.background },\n ]}\n >\n <ScrollView\n ref={scrollRef as never}\n horizontal\n bounces={false}\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={[containerSafeArea, styles.tabsContainer]}\n >\n {renderTabs()}\n </ScrollView>\n <Divider style={{ top: -1 }} />\n <ScrollView\n bounces={false}\n showsVerticalScrollIndicator={false}\n style={styles.pageContainer}\n contentContainerStyle={containerSafeArea}\n >\n {renderPage()}\n </ScrollView>\n </View>\n </Modal>\n );\n};\n\nconst styles = createStyleSheet({\n layout: {\n paddingHorizontal: 16,\n marginEnd: 0,\n },\n container: {\n overflow: 'hidden',\n borderTopStartRadius: 8,\n borderTopEndRadius: 8,\n paddingTop: 16,\n alignItems: 'center',\n },\n modal: {\n alignItems: 'center',\n justifyContent: 'flex-end',\n },\n tabsContainer: {\n flexGrow: 1,\n },\n tabsWrapper: {\n flexGrow: 1,\n flexDirection: 'row',\n alignItems: 'flex-start',\n justifyContent: 'center',\n height: 44,\n },\n tabItem: {\n marginEnd: 16,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n tabEmoji: {\n width: 28,\n height: 28,\n marginEnd: 4,\n },\n tabIndicator: {\n position: 'absolute',\n bottom: 0,\n height: 3,\n },\n pageContainer: {\n height: 216,\n width: '100%',\n },\n pageItem: {\n flexDirection: 'row',\n width: '100%',\n height: 48,\n alignItems: 'center',\n },\n avatar: {\n marginEnd: 16,\n },\n});\n\nexport default ReactionUserListBottomSheet;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_uikitReactNativeFoundation","_uikitUtils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ReactionUserListBottomSheet","visible","onClose","onDismiss","reactionCtx","chatCtx","localizationCtx","onPressUserProfile","width","useWindowDimensions","safeArea","useSafeAreaPadding","colors","useUIKitTheme","tabIndex","setTabIndex","useState","scrollRef","useRef","tabIndicatorValue","tabIndicatorAnimated","x","Animated","Value","current","focusedWithLayoutCalculated","emojiManager","channel","message","focusIndex","STRINGS","color","ui","reaction","reactions","focusedReaction","containerSafeArea","paddingStart","styles","layout","paddingHorizontal","paddingEnd","focusTab","index","animated","indicatorValue","_scrollRef$current","animateTabIndicator","scrollTo","baseConfig","duration","easing","Easing","inOut","ease","useNativeDriver","parallel","timing","toValue","start","layoutCalculated","filter","Boolean","length","useEffect","renderTabs","createElement","Pressable","style","tabsWrapper","map","isFocused","key","isLastItem","emoji","allEmojiMap","tabItem","marginEnd","onPress","onLayout","indexForLayout","I18nManager","isRTL","nativeEvent","Image","source","getEmojiIconSource","tabEmoji","Text","button","selected","highlight","enabled","truncatedCount","getReactionCount","View","tabIndicator","backgroundColor","renderPage","userCountDifference","count","sampledUserInfoList","Fragment","reactedUserInfo","isGroupChannel","userId","pageItem","Avatar","size","uri","profileUrl","containerStyle","avatar","subtitle2","flex","nickname","LABELS","USER_NO_NAME","body3","onBackground02","REACTION","MORE_USERS","Modal","type","backgroundStyle","modal","container","paddingBottom","dialog","none","background","ScrollView","ref","horizontal","bounces","showsHorizontalScrollIndicator","contentContainerStyle","tabsContainer","Divider","top","showsVerticalScrollIndicator","pageContainer","createStyleSheet","overflow","borderTopStartRadius","borderTopEndRadius","paddingTop","alignItems","justifyContent","flexGrow","flexDirection","height","position","bottom","_default","exports"],"sources":["ReactionUserListBottomSheet.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Animated, Easing, I18nManager, Pressable, ScrollView, View, useWindowDimensions } from 'react-native';\n\nimport {\n Avatar,\n Divider,\n Image,\n Modal,\n Text,\n createStyleSheet,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdEmoji,\n SendbirdReaction,\n getReactionCount,\n truncatedCount,\n useSafeAreaPadding,\n} from '@sendbird/uikit-utils';\n\nimport type { ReactionBottomSheetProps } from './index';\n\nconst ReactionUserListBottomSheet = ({\n visible,\n onClose,\n onDismiss,\n reactionCtx,\n chatCtx,\n localizationCtx,\n onPressUserProfile,\n}: ReactionBottomSheetProps) => {\n const { width } = useWindowDimensions();\n const safeArea = useSafeAreaPadding(['left', 'right', 'bottom']);\n const { colors } = useUIKitTheme();\n\n const [tabIndex, setTabIndex] = useState(0);\n const scrollRef = useRef<ScrollView>();\n const tabIndicatorValue = useRef<Array<{ x: number; width: number }>>([]);\n const tabIndicatorAnimated = useRef({ x: new Animated.Value(0), width: new Animated.Value(0) }).current;\n const focusedWithLayoutCalculated = useRef(false);\n\n const { emojiManager } = chatCtx;\n const { channel, message, focusIndex } = reactionCtx;\n const { STRINGS } = localizationCtx;\n\n const color = colors.ui.reaction.default;\n const reactions = message?.reactions ?? [];\n const focusedReaction = reactions[tabIndex] as SendbirdReaction | undefined;\n const containerSafeArea = {\n paddingStart: safeArea.paddingStart + styles.layout.paddingHorizontal,\n paddingEnd: safeArea.paddingEnd + styles.layout.paddingHorizontal,\n };\n\n const focusTab = (index: number, animated = true) => {\n const indicatorValue = tabIndicatorValue.current[index];\n if (indicatorValue) {\n setTabIndex(index);\n animateTabIndicator(indicatorValue.x, indicatorValue.width, animated);\n scrollRef.current?.scrollTo({ x: indicatorValue.x, animated });\n }\n };\n\n const animateTabIndicator = (x: number, width: number, animated = true) => {\n const baseConfig = { duration: animated ? 300 : 0, easing: Easing.inOut(Easing.ease), useNativeDriver: false };\n Animated.parallel([\n Animated.timing(tabIndicatorAnimated.x, { toValue: x, ...baseConfig }),\n Animated.timing(tabIndicatorAnimated.width, { toValue: width, ...baseConfig }),\n ]).start();\n };\n\n const layoutCalculated = () => {\n return tabIndicatorValue.current.filter(Boolean).length === reactions.length;\n };\n\n useEffect(() => {\n if (!visible) {\n tabIndicatorValue.current = [];\n tabIndicatorAnimated.x = new Animated.Value(0);\n tabIndicatorAnimated.width = new Animated.Value(0);\n focusedWithLayoutCalculated.current = false;\n }\n }, [visible]);\n\n const renderTabs = () => {\n return (\n <Pressable style={styles.tabsWrapper}>\n {reactions.map((reaction, index) => {\n const isFocused = focusedReaction?.key === reaction.key;\n const isLastItem = reactions.length - 1 === index;\n const emoji = emojiManager.allEmojiMap[reaction.key] as SendbirdEmoji | undefined;\n\n return (\n <Pressable\n key={reaction.key}\n style={[styles.tabItem, isLastItem && { marginEnd: styles.layout.marginEnd }]}\n onPress={() => focusTab(index)}\n onLayout={(e) => {\n const indexForLayout = I18nManager.isRTL ? reactions.length - 1 - index : index;\n tabIndicatorValue.current[indexForLayout] = e.nativeEvent.layout;\n if (layoutCalculated()) {\n if (focusedWithLayoutCalculated.current) {\n // re-calculating layout when screen rotation\n focusTab(tabIndex, false);\n } else {\n focusedWithLayoutCalculated.current = true;\n focusTab(focusIndex);\n }\n }\n }}\n >\n <Image source={emojiManager.getEmojiIconSource(emoji)} style={styles.tabEmoji} />\n <Text button color={isFocused ? color.selected.highlight : color.enabled.highlight}>\n {truncatedCount(getReactionCount(reaction))}\n </Text>\n </Pressable>\n );\n })}\n <Animated.View\n style={[\n styles.tabIndicator,\n {\n start: tabIndicatorAnimated.x,\n width: tabIndicatorAnimated.width,\n backgroundColor: color.selected.highlight,\n },\n ]}\n />\n </Pressable>\n );\n };\n\n const renderPage = () => {\n const userCountDifference = (focusedReaction?.count || 0) - (focusedReaction?.sampledUserInfoList.length || 0);\n\n return (\n <>\n {focusedReaction?.sampledUserInfoList.map((reactedUserInfo) => {\n if (channel?.isGroupChannel()) {\n return (\n <Pressable\n key={reactedUserInfo.userId}\n onPress={async () => {\n await onClose();\n onPressUserProfile(reactedUserInfo);\n }}\n style={styles.pageItem}\n >\n <Avatar size={36} uri={reactedUserInfo?.profileUrl} containerStyle={styles.avatar} />\n <Text subtitle2 style={{ flex: 1 }}>\n {reactedUserInfo?.nickname || STRINGS.LABELS.USER_NO_NAME}\n </Text>\n </Pressable>\n );\n }\n return null;\n })}\n {userCountDifference > 0 && (\n <View style={styles.pageItem}>\n <Text body3 color={colors.onBackground02}>\n {STRINGS.REACTION.MORE_USERS(userCountDifference)}\n </Text>\n </View>\n )}\n </>\n );\n };\n\n return (\n <Modal\n type={'slide-no-gesture'}\n visible={Boolean(visible && channel && message)}\n onClose={onClose}\n onDismiss={onDismiss}\n backgroundStyle={styles.modal}\n >\n <View\n style={[\n styles.container,\n { width, paddingBottom: safeArea.paddingBottom, backgroundColor: colors.ui.dialog.default.none.background },\n ]}\n >\n <ScrollView\n ref={scrollRef as never}\n horizontal\n bounces={false}\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={[containerSafeArea, styles.tabsContainer]}\n >\n {renderTabs()}\n </ScrollView>\n <Divider style={{ top: -1 }} />\n <ScrollView\n bounces={false}\n showsVerticalScrollIndicator={false}\n style={styles.pageContainer}\n contentContainerStyle={containerSafeArea}\n >\n {renderPage()}\n </ScrollView>\n </View>\n </Modal>\n );\n};\n\nconst styles = createStyleSheet({\n layout: {\n paddingHorizontal: 16,\n marginEnd: 0,\n },\n container: {\n overflow: 'hidden',\n borderTopStartRadius: 8,\n borderTopEndRadius: 8,\n paddingTop: 16,\n alignItems: 'center',\n },\n modal: {\n alignItems: 'center',\n justifyContent: 'flex-end',\n },\n tabsContainer: {\n flexGrow: 1,\n },\n tabsWrapper: {\n flexGrow: 1,\n flexDirection: 'row',\n alignItems: 'flex-start',\n justifyContent: 'center',\n height: 44,\n },\n tabItem: {\n marginEnd: 16,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n tabEmoji: {\n width: 28,\n height: 28,\n marginEnd: 4,\n },\n tabIndicator: {\n position: 'absolute',\n bottom: 0,\n height: 3,\n },\n pageContainer: {\n height: 216,\n width: '100%',\n },\n pageItem: {\n flexDirection: 'row',\n width: '100%',\n height: 48,\n alignItems: 'center',\n },\n avatar: {\n marginEnd: 16,\n },\n});\n\nexport default ReactionUserListBottomSheet;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -45,14 +45,6 @@ const SendbirdUIKit = exports.SendbirdUIKit = Object.freeze({
|
|
|
45
45
|
IMAGE_COMPRESSION: true
|
|
46
46
|
}
|
|
47
47
|
});
|
|
48
|
-
const chatOmitKeys = ['appId', 'newInstance', 'modules', 'debugMode', 'appVersion', 'localCacheEnabled', 'useAsyncStorageStore', 'useMMKVStorageStore'];
|
|
49
|
-
function sanitizeChatOptions(chatOptions) {
|
|
50
|
-
const opts = {
|
|
51
|
-
...chatOptions
|
|
52
|
-
};
|
|
53
|
-
chatOmitKeys.forEach(key => delete opts[key]);
|
|
54
|
-
return opts;
|
|
55
|
-
}
|
|
56
48
|
const SendbirdUIKitContainer = props => {
|
|
57
49
|
const {
|
|
58
50
|
children,
|
|
@@ -78,7 +70,7 @@ const SendbirdUIKitContainer = props => {
|
|
|
78
70
|
const unsubscribes = (0, _react.useRef)([]);
|
|
79
71
|
const [internalStorage] = (0, _react.useState)(() => new _InternalLocalCacheStorage.default(chatOptions.localCacheStorage));
|
|
80
72
|
const [sdkInstance, setSdkInstance] = (0, _react.useState)(() => {
|
|
81
|
-
const sendbird = initializeSendbird(appId,
|
|
73
|
+
const sendbird = initializeSendbird(appId, chatOptions);
|
|
82
74
|
unsubscribes.current = sendbird.unsubscribes;
|
|
83
75
|
return sendbird.chatSDK;
|
|
84
76
|
});
|
|
@@ -92,7 +84,7 @@ const SendbirdUIKitContainer = props => {
|
|
|
92
84
|
const voiceMessageStatusManager = (0, _react.useMemo)(() => new _VoiceMessageStatusManager.default(), []);
|
|
93
85
|
(0, _react.useLayoutEffect)(() => {
|
|
94
86
|
if (!isFirstMount) {
|
|
95
|
-
const sendbird = initializeSendbird(appId,
|
|
87
|
+
const sendbird = initializeSendbird(appId, chatOptions);
|
|
96
88
|
setSdkInstance(sendbird.chatSDK);
|
|
97
89
|
unsubscribes.current = sendbird.unsubscribes;
|
|
98
90
|
}
|
|
@@ -187,13 +179,13 @@ const initializeSendbird = (appId, options) => {
|
|
|
187
179
|
} = options;
|
|
188
180
|
const isMMKVStorage = 'getString' in localCacheStorage;
|
|
189
181
|
chatSDK = _chat.default.init({
|
|
190
|
-
...chatInitParams,
|
|
191
182
|
appId,
|
|
192
183
|
newInstance: true,
|
|
193
184
|
modules: [new _groupChannel.GroupChannelModule(), new _openChannel.OpenChannelModule()],
|
|
194
185
|
localCacheEnabled: true,
|
|
195
186
|
useMMKVStorageStore: isMMKVStorage ? localCacheStorage : undefined,
|
|
196
|
-
useAsyncStorageStore: !isMMKVStorage ? localCacheStorage : undefined
|
|
187
|
+
useAsyncStorageStore: !isMMKVStorage ? localCacheStorage : undefined,
|
|
188
|
+
...chatInitParams
|
|
197
189
|
});
|
|
198
190
|
if (onInitialized) {
|
|
199
191
|
chatSDK = onInitialized(chatSDK);
|
|
@@ -1 +1 @@
|
|
|
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","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","NetInfo","SBUDynamicModule","SendbirdUIKit","exports","freeze","VERSION","PLATFORM","Platform","OS","toLowerCase","DEFAULT","AUTO_PUSH_TOKEN_REGISTRATION","USE_USER_ID_FOR_NICKNAME","IMAGE_COMPRESSION","chatOmitKeys","sanitizeChatOptions","chatOptions","opts","forEach","key","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","renderChildren","disabled","createElement","sbuHandlers","onOpenURL","SBUUtils","openURL","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","imageCompression","userMention","voiceMessage","_voiceMessage$recorde3","_voiceMessage$recorde4","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 SendbirdReactedUserInfo,\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[] | SendbirdReactedUserInfo[],\n ) => SendbirdGroupChannelCreateParams | Promise<SendbirdGroupChannelCreateParams>;\n };\n reaction?: {\n onPressUserProfile?: (user: SendbirdReactedUserInfo) => 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 ...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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","ignoreList":[]}
|
|
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","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","NetInfo","SBUDynamicModule","SendbirdUIKit","exports","freeze","VERSION","PLATFORM","Platform","OS","toLowerCase","DEFAULT","AUTO_PUSH_TOKEN_REGISTRATION","USE_USER_ID_FOR_NICKNAME","IMAGE_COMPRESSION","SendbirdUIKitContainer","props","children","appId","chatOptions","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","forEach","renderChildren","disabled","createElement","sbuHandlers","onOpenURL","SBUUtils","openURL","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","imageCompression","userMention","voiceMessage","_voiceMessage$recorde3","_voiceMessage$recorde4","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 SendbirdReactedUserInfo,\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 = SendbirdChatParams<[GroupChannelModule, OpenChannelModule]>;\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[] | SendbirdReactedUserInfo[],\n ) => SendbirdGroupChannelCreateParams | Promise<SendbirdGroupChannelCreateParams>;\n };\n reaction?: {\n onPressUserProfile?: (user: SendbirdReactedUserInfo) => 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, 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, 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 ...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\ntype InitOptions = Partial<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 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 ...chatInitParams,\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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","ignoreList":[]}
|