@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","useEffect","useRef","useState","Animated","Easing","I18nManager","Pressable","ScrollView","View","useWindowDimensions","Avatar","Divider","Image","Modal","Text","createStyleSheet","useUIKitTheme","getReactionCount","truncatedCount","useSafeAreaPadding","ReactionUserListBottomSheet","visible","onClose","onDismiss","reactionCtx","chatCtx","localizationCtx","onPressUserProfile","width","safeArea","colors","tabIndex","setTabIndex","scrollRef","tabIndicatorValue","tabIndicatorAnimated","x","Value","current","focusedWithLayoutCalculated","emojiManager","channel","message","focusIndex","STRINGS","color","ui","reaction","default","reactions","focusedReaction","containerSafeArea","paddingStart","styles","layout","paddingHorizontal","paddingEnd","focusTab","index","animated","indicatorValue","_scrollRef$current","animateTabIndicator","scrollTo","baseConfig","duration","easing","inOut","ease","useNativeDriver","parallel","timing","toValue","start","layoutCalculated","filter","Boolean","length","renderTabs","createElement","style","tabsWrapper","map","isFocused","key","isLastItem","emoji","allEmojiMap","tabItem","marginEnd","onPress","onLayout","e","indexForLayout","isRTL","nativeEvent","source","uri","url","tabEmoji","button","selected","highlight","enabled","tabIndicator","backgroundColor","renderPage","userCountDifference","count","sampledUserInfoList","Fragment","reactedUserInfo","isGroupChannel","userId","pageItem","size","profileUrl","containerStyle","avatar","subtitle2","flex","nickname","LABELS","USER_NO_NAME","body3","onBackground02","REACTION","MORE_USERS","type","backgroundStyle","modal","container","paddingBottom","dialog","none","background","ref","horizontal","bounces","showsHorizontalScrollIndicator","contentContainerStyle","tabsContainer","top","showsVerticalScrollIndicator","pageContainer","overflow","borderTopStartRadius","borderTopEndRadius","paddingTop","alignItems","justifyContent","flexGrow","flexDirection","height","position","bottom"],"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","useEffect","useRef","useState","Animated","Easing","I18nManager","Pressable","ScrollView","View","useWindowDimensions","Avatar","Divider","Image","Modal","Text","createStyleSheet","useUIKitTheme","getReactionCount","truncatedCount","useSafeAreaPadding","ReactionUserListBottomSheet","visible","onClose","onDismiss","reactionCtx","chatCtx","localizationCtx","onPressUserProfile","width","safeArea","colors","tabIndex","setTabIndex","scrollRef","tabIndicatorValue","tabIndicatorAnimated","x","Value","current","focusedWithLayoutCalculated","emojiManager","channel","message","focusIndex","STRINGS","color","ui","reaction","default","reactions","focusedReaction","containerSafeArea","paddingStart","styles","layout","paddingHorizontal","paddingEnd","focusTab","index","animated","indicatorValue","_scrollRef$current","animateTabIndicator","scrollTo","baseConfig","duration","easing","inOut","ease","useNativeDriver","parallel","timing","toValue","start","layoutCalculated","filter","Boolean","length","renderTabs","createElement","style","tabsWrapper","map","isFocused","key","isLastItem","emoji","allEmojiMap","tabItem","marginEnd","onPress","onLayout","e","indexForLayout","isRTL","nativeEvent","source","getEmojiIconSource","tabEmoji","button","selected","highlight","enabled","tabIndicator","backgroundColor","renderPage","userCountDifference","count","sampledUserInfoList","Fragment","reactedUserInfo","isGroupChannel","userId","pageItem","size","uri","profileUrl","containerStyle","avatar","subtitle2","flex","nickname","LABELS","USER_NO_NAME","body3","onBackground02","REACTION","MORE_USERS","type","backgroundStyle","modal","container","paddingBottom","dialog","none","background","ref","horizontal","bounces","showsHorizontalScrollIndicator","contentContainerStyle","tabsContainer","top","showsVerticalScrollIndicator","pageContainer","overflow","borderTopStartRadius","borderTopEndRadius","paddingTop","alignItems","justifyContent","flexGrow","flexDirection","height","position","bottom"],"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":[]}
|
|
@@ -36,14 +36,6 @@ export const SendbirdUIKit = Object.freeze({
|
|
|
36
36
|
IMAGE_COMPRESSION: true
|
|
37
37
|
}
|
|
38
38
|
});
|
|
39
|
-
const chatOmitKeys = ['appId', 'newInstance', 'modules', 'debugMode', 'appVersion', 'localCacheEnabled', 'useAsyncStorageStore', 'useMMKVStorageStore'];
|
|
40
|
-
function sanitizeChatOptions(chatOptions) {
|
|
41
|
-
const opts = {
|
|
42
|
-
...chatOptions
|
|
43
|
-
};
|
|
44
|
-
chatOmitKeys.forEach(key => delete opts[key]);
|
|
45
|
-
return opts;
|
|
46
|
-
}
|
|
47
39
|
const SendbirdUIKitContainer = props => {
|
|
48
40
|
const {
|
|
49
41
|
children,
|
|
@@ -69,7 +61,7 @@ const SendbirdUIKitContainer = props => {
|
|
|
69
61
|
const unsubscribes = useRef([]);
|
|
70
62
|
const [internalStorage] = useState(() => new InternalLocalCacheStorage(chatOptions.localCacheStorage));
|
|
71
63
|
const [sdkInstance, setSdkInstance] = useState(() => {
|
|
72
|
-
const sendbird = initializeSendbird(appId,
|
|
64
|
+
const sendbird = initializeSendbird(appId, chatOptions);
|
|
73
65
|
unsubscribes.current = sendbird.unsubscribes;
|
|
74
66
|
return sendbird.chatSDK;
|
|
75
67
|
});
|
|
@@ -83,7 +75,7 @@ const SendbirdUIKitContainer = props => {
|
|
|
83
75
|
const voiceMessageStatusManager = useMemo(() => new VoiceMessageStatusManager(), []);
|
|
84
76
|
useLayoutEffect(() => {
|
|
85
77
|
if (!isFirstMount) {
|
|
86
|
-
const sendbird = initializeSendbird(appId,
|
|
78
|
+
const sendbird = initializeSendbird(appId, chatOptions);
|
|
87
79
|
setSdkInstance(sendbird.chatSDK);
|
|
88
80
|
unsubscribes.current = sendbird.unsubscribes;
|
|
89
81
|
}
|
|
@@ -178,13 +170,13 @@ const initializeSendbird = (appId, options) => {
|
|
|
178
170
|
} = options;
|
|
179
171
|
const isMMKVStorage = 'getString' in localCacheStorage;
|
|
180
172
|
chatSDK = SendbirdChat.init({
|
|
181
|
-
...chatInitParams,
|
|
182
173
|
appId,
|
|
183
174
|
newInstance: true,
|
|
184
175
|
modules: [new GroupChannelModule(), new OpenChannelModule()],
|
|
185
176
|
localCacheEnabled: true,
|
|
186
177
|
useMMKVStorageStore: isMMKVStorage ? localCacheStorage : undefined,
|
|
187
|
-
useAsyncStorageStore: !isMMKVStorage ? localCacheStorage : undefined
|
|
178
|
+
useAsyncStorageStore: !isMMKVStorage ? localCacheStorage : undefined,
|
|
179
|
+
...chatInitParams
|
|
188
180
|
});
|
|
189
181
|
if (onInitialized) {
|
|
190
182
|
chatSDK = onInitialized(chatSDK);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useLayoutEffect","useMemo","useRef","useState","Platform","SafeAreaProvider","SendbirdChat","DeviceOsPlatform","SendbirdPlatform","SendbirdProduct","GroupChannelModule","OpenChannelModule","DialogProvider","Header","HeaderStyleProvider","LightUIKitTheme","ToastProvider","UIKitThemeProvider","UIKitConfigProvider","Logger","NOOP","useIsFirstMount","LocalizationContext","LocalizationProvider","PlatformServiceProvider","ReactionProvider","SBUHandlersProvider","SendbirdChatProvider","UserProfileProvider","EmojiManager","ImageCompressionConfig","InternalLocalCacheStorage","MentionConfig","MentionManager","SBUUtils","VoiceMessageConfig","VoiceMessageStatusManager","StringSetEn","SBUDynamicModule","VERSION","InternalErrorBoundaryContainer","NetInfo","get","SendbirdUIKit","Object","freeze","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","warn","defaultStringSet","stringSet","isFirstMount","unsubscribes","internalStorage","sdkInstance","setSdkInstance","sendbird","initializeSendbird","current","chatSDK","imageCompressionConfig","voiceMessageConfig","mentionConfig","useConfigInstance","emojiManager","mentionManager","voiceMessageStatusManager","u","renderChildren","disabled","createElement","sbuHandlers","onOpenURL","openURL","storage","localConfigs","common","groupChannel","channel","enableReactionsSupergroup","undefined","channelList","groupChannelList","setting","groupChannelSettings","openChannel","enableAutoPushTokenRegistration","enableUseUserIdForNickname","enableImageCompression","fileService","file","notificationService","notification","clipboardService","clipboard","mediaService","media","playerService","player","recorderService","recorder","theme","HeaderComponent","defaultTitleAlign","defaultHeaderTitleAlign","statusBarTranslucent","dismissTimeout","_extends","Consumer","value","STRINGS","defaultLabels","alert","ok","DIALOG","ALERT_DEFAULT_OK","prompt","PROMPT_DEFAULT_OK","cancel","PROMPT_DEFAULT_CANCEL","placeholder","PROMPT_DEFAULT_PLACEHOLDER","options","onInitialized","chatInitParams","isMMKVStorage","init","newInstance","modules","localCacheEnabled","useMMKVStorageStore","useAsyncStorageStore","platform","getDeviceOSPlatform","deviceOSInfo","version","String","Version","customData","platform_version","getReactNativeVersion","uikitExtension","product","UIKIT_CHAT","REACT_NATIVE","addSendbirdExtensions","addExtension","addEventListener","_chatSDK$setOnlineLis","_chatSDK","_chatSDK$setOfflineLi","_chatSDK2","listener","callback","callbackType","callCount","unsubscribe","state","online","Boolean","isConnected","isInternetReachable","push","setOnlineListener","call","onOnline","setOfflineListener","onOffline","ANDROID","IOS","WEB","WINDOWS","major","minor","patch","constants","reactNativeVersion","imageCompression","userMention","voiceMessage","_voiceMessage$recorde3","_voiceMessage$recorde4","mentionLimit","MENTION_LIMIT","suggestionLimit","SUGGESTION_LIMIT","debounceMills","DEBOUNCE_MILLS","delimiter","DELIMITER","trigger","TRIGGER","compressionRate","COMPRESSION_RATE","width","height","_voiceMessage$recorde","_voiceMessage$recorde2","minDuration","RECORDER","MIN_DURATION","maxDuration","MAX_DURATION"],"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","useLayoutEffect","useMemo","useRef","useState","Platform","SafeAreaProvider","SendbirdChat","DeviceOsPlatform","SendbirdPlatform","SendbirdProduct","GroupChannelModule","OpenChannelModule","DialogProvider","Header","HeaderStyleProvider","LightUIKitTheme","ToastProvider","UIKitThemeProvider","UIKitConfigProvider","Logger","NOOP","useIsFirstMount","LocalizationContext","LocalizationProvider","PlatformServiceProvider","ReactionProvider","SBUHandlersProvider","SendbirdChatProvider","UserProfileProvider","EmojiManager","ImageCompressionConfig","InternalLocalCacheStorage","MentionConfig","MentionManager","SBUUtils","VoiceMessageConfig","VoiceMessageStatusManager","StringSetEn","SBUDynamicModule","VERSION","InternalErrorBoundaryContainer","NetInfo","get","SendbirdUIKit","Object","freeze","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","warn","defaultStringSet","stringSet","isFirstMount","unsubscribes","internalStorage","sdkInstance","setSdkInstance","sendbird","initializeSendbird","current","chatSDK","imageCompressionConfig","voiceMessageConfig","mentionConfig","useConfigInstance","emojiManager","mentionManager","voiceMessageStatusManager","forEach","u","renderChildren","disabled","createElement","sbuHandlers","onOpenURL","openURL","storage","localConfigs","common","groupChannel","channel","enableReactionsSupergroup","undefined","channelList","groupChannelList","setting","groupChannelSettings","openChannel","enableAutoPushTokenRegistration","enableUseUserIdForNickname","enableImageCompression","fileService","file","notificationService","notification","clipboardService","clipboard","mediaService","media","playerService","player","recorderService","recorder","theme","HeaderComponent","defaultTitleAlign","defaultHeaderTitleAlign","statusBarTranslucent","dismissTimeout","_extends","Consumer","value","STRINGS","defaultLabels","alert","ok","DIALOG","ALERT_DEFAULT_OK","prompt","PROMPT_DEFAULT_OK","cancel","PROMPT_DEFAULT_CANCEL","placeholder","PROMPT_DEFAULT_PLACEHOLDER","options","onInitialized","chatInitParams","isMMKVStorage","init","newInstance","modules","localCacheEnabled","useMMKVStorageStore","useAsyncStorageStore","platform","getDeviceOSPlatform","deviceOSInfo","version","String","Version","customData","platform_version","getReactNativeVersion","uikitExtension","product","UIKIT_CHAT","REACT_NATIVE","addSendbirdExtensions","addExtension","addEventListener","_chatSDK$setOnlineLis","_chatSDK","_chatSDK$setOfflineLi","_chatSDK2","listener","callback","callbackType","callCount","unsubscribe","state","online","Boolean","isConnected","isInternetReachable","push","setOnlineListener","call","onOnline","setOfflineListener","onOffline","ANDROID","IOS","WEB","WINDOWS","major","minor","patch","constants","reactNativeVersion","imageCompression","userMention","voiceMessage","_voiceMessage$recorde3","_voiceMessage$recorde4","mentionLimit","MENTION_LIMIT","suggestionLimit","SUGGESTION_LIMIT","debounceMills","DEBOUNCE_MILLS","delimiter","DELIMITER","trigger","TRIGGER","compressionRate","COMPRESSION_RATE","width","height","_voiceMessage$recorde","_voiceMessage$recorde2","minDuration","RECORDER","MIN_DURATION","maxDuration","MAX_DURATION"],"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":";AACA,OAAOA,KAAK,IAAIC,eAAe,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AACzE,SAASC,QAAQ,QAAQ,cAAc;AAEvC,SAASC,gBAAgB,QAAQ,gCAAgC;AAEjE,OAAOC,YAAY,IAAIC,gBAAgB,EAAsBC,gBAAgB,EAAEC,eAAe,QAAQ,gBAAgB;AACtH,SAASC,kBAAkB,QAAQ,6BAA6B;AAChE,SAASC,iBAAiB,QAAQ,4BAA4B;AAE9D,SACEC,cAAc,EACdC,MAAM,EACNC,mBAAmB,EACnBC,eAAe,EACfC,aAAa,EACbC,kBAAkB,QACb,yCAAyC;AAChD,SAAoBC,mBAAmB,QAAQ,uBAAuB;AACtE,SACEC,MAAM,EACNC,IAAI,EAQJC,eAAe,QACV,uBAAuB;AAE9B,SAASC,mBAAmB,EAAEC,oBAAoB,QAAQ,6BAA6B;AACvF,SAASC,uBAAuB,QAAQ,gCAAgC;AACxE,SAASC,gBAAgB,QAAQ,yBAAyB;AAC1D,SAA2BC,mBAAmB,QAAQ,4BAA4B;AAElF,SAASC,oBAAoB,QAAQ,6BAA6B;AAClE,SAASC,mBAAmB,QAAQ,4BAA4B;AAChE,OAAOC,YAAY,MAAM,sBAAsB;AAE/C,OAAOC,sBAAsB,MAAM,gCAAgC;AACnE,OAAOC,yBAAyB,MAAM,mCAAmC;AACzE,OAAOC,aAAa,MAAkC,uBAAuB;AAC7E,OAAOC,cAAc,MAAM,wBAAwB;AACnD,OAAOC,QAAQ,MAAM,kBAAkB;AACvC,OAAOC,kBAAkB,MAAuC,4BAA4B;AAC5F,OAAOC,yBAAyB,MAAM,mCAAmC;AACzE,OAAOC,WAAW,MAAM,8BAA8B;AAEtD,OAAOC,gBAAgB,MAAM,2BAA2B;AAUxD,OAAOC,OAAO,MAAM,YAAY;AAChC,OAAOC,8BAA8B,MAAM,kCAAkC;AAE7E,MAAMC,OAAO,GAAGH,gBAAgB,CAACI,GAAG,CAAC,iCAAiC,EAAE,MAAM,CAAC;AAC/E,OAAO,MAAMC,aAAa,GAAGC,MAAM,CAACC,MAAM,CAAC;EACzCN,OAAO;EACPO,QAAQ,EAAE1C,QAAQ,CAAC2C,EAAE,CAACC,WAAW,CAAC,CAAC;EACnCC,OAAO,EAAE;IACPC,4BAA4B,EAAE,IAAI;IAClCC,wBAAwB,EAAE,KAAK;IAC/BC,iBAAiB,EAAE;EACrB;AACF,CAAC,CAAC;AAiEF,MAAMC,sBAAsB,GAAIC,KAAkC,IAAK;EACrE,MAAM;IACJC,QAAQ;IACRC,KAAK;IACLC,WAAW;IACXC,YAAY;IACZC,gBAAgB;IAChBC,YAAY;IACZC,MAAM;IACNC,aAAa;IACbC,QAAQ;IACRC,KAAK;IACLC,WAAW;IACXC;EACF,CAAC,GAAGZ,KAAK;EAET,IAAI,CAACG,WAAW,CAACU,iBAAiB,EAAE;IAClC,MAAM,IAAIC,KAAK,CAAC,mEAAmE,CAAC;EACtF,CAAC,MAAM,IAAI,SAAS,IAAIX,WAAW,CAACU,iBAAiB,EAAE;IACrDhD,MAAM,CAACkD,IAAI,CACT,wGACF,CAAC;EACH;EAEA,MAAMC,gBAAgB,GAAG,CAAAV,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEW,SAAS,KAAIlC,WAAW;EAE/D,MAAMmC,YAAY,GAAGnD,eAAe,CAAC,CAAC;EACtC,MAAMoD,YAAY,GAAGvE,MAAM,CAAoB,EAAE,CAAC;EAElD,MAAM,CAACwE,eAAe,CAAC,GAAGvE,QAAQ,CAAC,MAAM,IAAI4B,yBAAyB,CAAC0B,WAAW,CAACU,iBAAiB,CAAC,CAAC;EACtG,MAAM,CAACQ,WAAW,EAAEC,cAAc,CAAC,GAAGzE,QAAQ,CAAkB,MAAM;IACpE,MAAM0E,QAAQ,GAAGC,kBAAkB,CAACtB,KAAK,EAAEC,WAAW,CAAC;IACvDgB,YAAY,CAACM,OAAO,GAAGF,QAAQ,CAACJ,YAAY;IAC5C,OAAOI,QAAQ,CAACG,OAAO;EACzB,CAAC,CAAC;EAEF,MAAM;IAAEC,sBAAsB;IAAEC,kBAAkB;IAAEC;EAAc,CAAC,GAAGC,iBAAiB,CAAC9B,KAAK,CAAC;EAC9F,MAAM+B,YAAY,GAAGpF,OAAO,CAAC,MAAM,IAAI4B,YAAY,CAAC6C,eAAe,CAAC,EAAE,CAACA,eAAe,CAAC,CAAC;EACxF,MAAMY,cAAc,GAAGrF,OAAO,CAAC,MAAM,IAAIgC,cAAc,CAACkD,aAAa,CAAC,EAAE,CAACA,aAAa,CAAC,CAAC;EACxF,MAAMI,yBAAyB,GAAGtF,OAAO,CAAC,MAAM,IAAImC,yBAAyB,CAAC,CAAC,EAAE,EAAE,CAAC;EAEpFpC,eAAe,CAAC,MAAM;IACpB,IAAI,CAACwE,YAAY,EAAE;MACjB,MAAMK,QAAQ,GAAGC,kBAAkB,CAACtB,KAAK,EAAEC,WAAW,CAAC;MACvDmB,cAAc,CAACC,QAAQ,CAACG,OAAO,CAAC;MAChCP,YAAY,CAACM,OAAO,GAAGF,QAAQ,CAACJ,YAAY;IAC9C;IAEA,OAAO,MAAM;MACXA,YAAY,CAACM,OAAO,CAACS,OAAO,CAAEC,CAAC,IAAK;QAClC,IAAI;UACFA,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,MAAM,CAAC;MACX,CAAC,CAAC;IACJ,CAAC;EACH,CAAC,EAAE,CAACjC,KAAK,EAAEkB,eAAe,CAAC,CAAC;EAE5B,MAAMgB,cAAc,GAAGA,CAAA,KAAM;IAC3B,IAAI5B,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAE6B,QAAQ,EAAE;MAC3B,OAAOpC,QAAQ;IACjB,CAAC,MAAM;MACL,oBAAOxD,KAAA,CAAA6F,aAAA,CAACpD,8BAA8B,EAAKsB,aAAa,EAAGP,QAAyC,CAAC;IACvG;EACF,CAAC;EAED,MAAMsC,WAAwB,GAAG;IAC/BC,SAAS,EAAE5D,QAAQ,CAAC6D,OAAO;IAC3B,GAAGhC;EACL,CAAC;EAED,oBACEhE,KAAA,CAAA6F,aAAA,CAAClE,mBAAmB,EAAKmE,WAAW,eAClC9F,KAAA,CAAA6F,aAAA,CAACvF,gBAAgB,qBACfN,KAAA,CAAA6F,aAAA,CAAC1E,mBAAmB;IAClB8E,OAAO,EAAEtB,eAAgB;IACzBuB,YAAY,EAAE;MACZC,MAAM,EAAExC,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEwC,MAAM;MAC5BC,YAAY,EAAE;QACZC,OAAO,EAAE;UAAE,IAAG1C,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEyC,YAAY;UAAEE,yBAAyB,EAAEC;QAAU,CAAC;QAChFC,WAAW,EAAE7C,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAE8C,gBAAgB;QAC3CC,OAAO,EAAE/C,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEgD;MACzB,CAAC;MACDC,WAAW,EAAE;QACXP,OAAO,EAAE1C,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEiD;MACzB;IACF;EAAE,gBAEF5G,KAAA,CAAA6F,aAAA,CAACjE,oBAAoB;IACnBgD,WAAW,EAAEA,WAAY;IACzBU,YAAY,EAAEA,YAAa;IAC3BC,cAAc,EAAEA,cAAe;IAC/BL,sBAAsB,EAAEA,sBAAuB;IAC/CC,kBAAkB,EAAEA,kBAAmB;IACvCK,yBAAyB,EAAEA,yBAA0B;IACrDqB,+BAA+B,EAC7BnD,WAAW,CAACmD,+BAA+B,IAAIjE,aAAa,CAACM,OAAO,CAACC,4BACtE;IACD2D,0BAA0B,EACxBpD,WAAW,CAACoD,0BAA0B,IAAIlE,aAAa,CAACM,OAAO,CAACE,wBACjE;IACD2D,sBAAsB,EAAErD,WAAW,CAACqD,sBAAsB,IAAInE,aAAa,CAACM,OAAO,CAACG;EAAkB,gBAEtGrD,KAAA,CAAA6F,aAAA,CAACrE,oBAAoB;IAACgD,SAAS,EAAED;EAAiB,gBAChDvE,KAAA,CAAA6F,aAAA,CAACpE,uBAAuB;IACtBuF,WAAW,EAAEpD,gBAAgB,CAACqD,IAAK;IACnCC,mBAAmB,EAAEtD,gBAAgB,CAACuD,YAAa;IACnDC,gBAAgB,EAAExD,gBAAgB,CAACyD,SAAU;IAC7CC,YAAY,EAAE1D,gBAAgB,CAAC2D,KAAM;IACrCC,aAAa,EAAE5D,gBAAgB,CAAC6D,MAAO;IACvCC,eAAe,EAAE9D,gBAAgB,CAAC+D,QAAS;IAC3CxC,kBAAkB,EAAEA;EAAmB,gBAEvCnF,KAAA,CAAA6F,aAAA,CAAC3E,kBAAkB;IAAC0G,KAAK,EAAE,CAAA9D,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAE8D,KAAK,KAAI5G;EAAgB,gBAC1DhB,KAAA,CAAA6F,aAAA,CAAC9E,mBAAmB;IAClB8G,eAAe,EAAE,CAAA/D,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAE+D,eAAe,KAAI/G,MAAO;IACnDgH,iBAAiB,EAAE,CAAAhE,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEiE,uBAAuB,KAAI,MAAO;IAC7DC,oBAAoB,EAAE,CAAAlE,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEkE,oBAAoB,KAAI;EAAK,gBAE3DhI,KAAA,CAAA6F,aAAA,CAAC5E,aAAa;IAACgH,cAAc,EAAEhE,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEgE;EAAe,gBACnDjI,KAAA,CAAA6F,aAAA,CAAChE,mBAAmB,EAAAqG,QAAA,KAAKhE,WAAW;IAAE8D,oBAAoB,EAAE,CAAAlE,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEkE,oBAAoB,KAAI;EAAK,iBAC/FhI,KAAA,CAAA6F,aAAA,CAACnE,gBAAgB,EAAKyC,QAAQ,eAC5BnE,KAAA,CAAA6F,aAAA,CAACtE,mBAAmB,CAAC4G,QAAQ,QACzBC,KAAK,IAAK;IACV,MAAMC,OAAO,GAAG,CAAAD,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEC,OAAO,KAAI9D,gBAAgB;IAClD,oBACEvE,KAAA,CAAA6F,aAAA,CAAChF,cAAc;MACbyH,aAAa,EAAE;QACbC,KAAK,EAAE;UAAEC,EAAE,EAAEH,OAAO,CAACI,MAAM,CAACC;QAAiB,CAAC;QAC9CC,MAAM,EAAE;UACNH,EAAE,EAAEH,OAAO,CAACI,MAAM,CAACG,iBAAiB;UACpCC,MAAM,EAAER,OAAO,CAACI,MAAM,CAACK,qBAAqB;UAC5CC,WAAW,EAAEV,OAAO,CAACI,MAAM,CAACO;QAC9B;MACF;IAAE,GAEDrD,cAAc,CAAC,CACF,CAAC;EAErB,CAC4B,CACd,CACC,CACR,CACI,CACH,CACG,CACL,CACF,CACH,CACL,CACC,CAAC;AAE1B,CAAC;AAMD,MAAMZ,kBAAkB,GAAGA,CAACtB,KAAa,EAAEwF,OAAoB,KAAK;EAClE,IAAIhE,OAAwB;EAC5B,MAAMP,YAA+B,GAAG,EAAE;EAC1C,MAAM;IAAEN,iBAAiB;IAAE8E,aAAa;IAAE,GAAGC;EAAe,CAAC,GAAGF,OAAO;EAEvE,MAAMG,aAAa,GAAG,WAAW,IAAIhF,iBAAiB;EACtDa,OAAO,GAAG1E,YAAY,CAAC8I,IAAI,CAAC;IAC1B5F,KAAK;IACL6F,WAAW,EAAE,IAAI;IACjBC,OAAO,EAAE,CAAC,IAAI5I,kBAAkB,CAAC,CAAC,EAAE,IAAIC,iBAAiB,CAAC,CAAC,CAAC;IAC5D4I,iBAAiB,EAAE,IAAI;IACvBC,mBAAmB,EAAEL,aAAa,GAAIhF,iBAAiB,GAAYmC,SAAS;IAC5EmD,oBAAoB,EAAE,CAACN,aAAa,GAAIhF,iBAAiB,GAA0BmC,SAAS;IAC5F,GAAG4C;EACL,CAAC,CAAC;EAEF,IAAID,aAAa,EAAE;IACjBjE,OAAO,GAAGiE,aAAa,CAACjE,OAAO,CAAC;EAClC;EAEA,MAAM0E,QAAQ,GAAGC,mBAAmB,CAAC,CAAC;EACtC,IAAIhH,aAAa,CAACJ,OAAO,IAAImH,QAAQ,EAAE;IACrC,MAAME,YAAY,GAAG;MAAEF,QAAQ;MAAEG,OAAO,EAAEC,MAAM,CAAC1J,QAAQ,CAAC2J,OAAO;IAAE,CAAC;IACpE,MAAMC,UAAU,GAAG;MAAEC,gBAAgB,EAAEC,qBAAqB,CAAC;IAAE,CAAC;IAChE,MAAMC,cAAc,GAAG;MACrBC,OAAO,EAAE3J,eAAe,CAAC4J,UAAU;MACnCR,OAAO,EAAElH,aAAa,CAACJ,OAAO;MAC9BmH,QAAQ,EAAElJ,gBAAgB,CAAC8J;IAC7B,CAAC;IAEDtF,OAAO,CAACuF,qBAAqB,CAAC,CAACJ,cAAc,CAAC,EAAEP,YAAY,EAAEI,UAAU,CAAC;IACzEhF,OAAO,CAACwF,YAAY,CAAC,UAAU,EAAE7H,aAAa,CAACJ,OAAO,CAAC;EACzD;EAEA,IAAII,aAAa,CAACG,QAAQ,EAAE;IAC1BkC,OAAO,CAACwF,YAAY,CAAC,oBAAoB,EAAE7H,aAAa,CAACG,QAAQ,CAAC;EACpE;EAEA,IAAIL,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEgI,gBAAgB,EAAE;IAAA,IAAAC,qBAAA,EAAAC,QAAA,EAAAC,qBAAA,EAAAC,SAAA;IAC7B,IAAI;MACF;MACA;MACA;MACA;MACA;MACApI,OAAO,CAACgI,gBAAgB,CAACrJ,IAAI,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,MAAM,CAAC;IAET,MAAM0J,QAAQ,GAAGA,CAACC,QAAoB,EAAEC,YAAkC,KAAK;MAC7E,IAAIC,SAAS,GAAG,CAAC;MACjB,MAAMC,WAAW,GAAGzI,OAAO,CAACgI,gBAAgB,CAAEU,KAAK,IAAK;QACtD,MAAMC,MAAM,GAAGC,OAAO,CAACF,KAAK,CAACG,WAAW,CAAC,IAAID,OAAO,CAACF,KAAK,CAACI,mBAAmB,CAAC;;QAE/E;QACA;QACA;QACA,IAAIN,SAAS,KAAK,CAAC,EAAE;UACnBA,SAAS,EAAE;UACX;QACF;QAEA,IAAIG,MAAM,IAAIJ,YAAY,KAAK,QAAQ,EAAED,QAAQ,CAAC,CAAC;QACnD,IAAI,CAACK,MAAM,IAAIJ,YAAY,KAAK,SAAS,EAAED,QAAQ,CAAC,CAAC;MACvD,CAAC,CAAC;MACFtG,YAAY,CAAC+G,IAAI,CAACN,WAAW,CAAC;MAC9B,OAAOA,WAAW;IACpB,CAAC;IACD,CAAAR,qBAAA,IAAAC,QAAA,GAAA3F,OAAO,EAACyG,iBAAiB,cAAAf,qBAAA,eAAzBA,qBAAA,CAAAgB,IAAA,CAAAf,QAAA,EAA6BgB,QAAQ,IAAKb,QAAQ,CAACa,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACvE,CAAAf,qBAAA,IAAAC,SAAA,GAAA7F,OAAO,EAAC4G,kBAAkB,cAAAhB,qBAAA,eAA1BA,qBAAA,CAAAc,IAAA,CAAAb,SAAA,EAA8BgB,SAAS,IAAKf,QAAQ,CAACe,SAAS,EAAE,SAAS,CAAC,CAAC;EAC7E;EACA,OAAO;IAAE7G,OAAO;IAAEP;EAAa,CAAC;AAClC,CAAC;AAED,SAASkF,mBAAmBA,CAAA,EAAG;EAC7B,QAAQvJ,QAAQ,CAAC2C,EAAE;IACjB,KAAK,SAAS;MACZ,OAAOxC,gBAAgB,CAACuL,OAAO;IACjC,KAAK,KAAK;MACR,OAAOvL,gBAAgB,CAACwL,GAAG;IAC7B,KAAK,KAAK;MACR,OAAOxL,gBAAgB,CAACyL,GAAG;IAC7B,KAAK,SAAS;MACZ,OAAOzL,gBAAgB,CAAC0L,OAAO;IACjC;MACE,OAAO3F,SAAS;EACpB;AACF;AAEA,SAAS4D,qBAAqBA,CAAA,EAAG;EAC/B,MAAM;IAAEgC,KAAK;IAAEC,KAAK;IAAEC;EAAM,CAAC,GAAGhM,QAAQ,CAACiM,SAAS,CAACC,kBAAkB;EACrE,OAAO,GAAGJ,KAAK,IAAIC,KAAK,IAAIC,KAAK,EAAE;AACrC;AAEA,MAAMhH,iBAAiB,GAAGA,CAAC;EAAEmH,gBAAgB;EAAEC,WAAW;EAAEC;AAA0C,CAAC,KAAK;EAAA,IAAAC,sBAAA,EAAAC,sBAAA;EAC1G,MAAMxH,aAAa,GAAGlF,OAAO,CAAC,MAAM;IAClC,OAAO,IAAI+B,aAAa,CAAC;MACvB4K,YAAY,EAAE,CAAAJ,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEI,YAAY,KAAI5K,aAAa,CAACiB,OAAO,CAAC4J,aAAa;MAC9EC,eAAe,EAAE,CAAAN,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEM,eAAe,KAAI9K,aAAa,CAACiB,OAAO,CAAC8J,gBAAgB;MACvFC,aAAa,EAAE,CAAAR,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEQ,aAAa,KAAIhL,aAAa,CAACiB,OAAO,CAACgK,cAAc;MACjFC,SAAS,EAAElL,aAAa,CAACiB,OAAO,CAACkK,SAAS;MAC1CC,OAAO,EAAEpL,aAAa,CAACiB,OAAO,CAACoK;IACjC,CAAC,CAAC;EACJ,CAAC,EAAE,CAACb,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEI,YAAY,EAAEJ,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEM,eAAe,EAAEN,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEQ,aAAa,CAAC,CAAC;EAEzF,MAAM/H,sBAAsB,GAAGhF,OAAO,CAAC,MAAM;IAC3C,OAAO,IAAI6B,sBAAsB,CAAC;MAChCwL,eAAe,EAAE,CAAAf,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEe,eAAe,KAAIxL,sBAAsB,CAACmB,OAAO,CAACsK,gBAAgB;MACrGC,KAAK,EAAEjB,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEiB,KAAK;MAC9BC,MAAM,EAAElB,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEkB;IAC5B,CAAC,CAAC;EACJ,CAAC,EAAE,CAAClB,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEe,eAAe,EAAEf,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEiB,KAAK,EAAEjB,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEkB,MAAM,CAAC,CAAC;EAE1F,MAAMvI,kBAAkB,GAAGjF,OAAO,CAAC,MAAM;IAAA,IAAAyN,qBAAA,EAAAC,sBAAA;IACvC,OAAO,IAAIxL,kBAAkB,CAAC;MAC5BuF,QAAQ,EAAE;QACRkG,WAAW,EAAE,CAAAnB,YAAY,aAAZA,YAAY,gBAAAiB,qBAAA,GAAZjB,YAAY,CAAE/E,QAAQ,cAAAgG,qBAAA,uBAAtBA,qBAAA,CAAwBE,WAAW,KAAIzL,kBAAkB,CAACc,OAAO,CAAC4K,QAAQ,CAACC,YAAY;QACpGC,WAAW,EAAE,CAAAtB,YAAY,aAAZA,YAAY,gBAAAkB,sBAAA,GAAZlB,YAAY,CAAE/E,QAAQ,cAAAiG,sBAAA,uBAAtBA,sBAAA,CAAwBI,WAAW,KAAI5L,kBAAkB,CAACc,OAAO,CAAC4K,QAAQ,CAACG;MAC1F;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CAACvB,YAAY,aAAZA,YAAY,gBAAAC,sBAAA,GAAZD,YAAY,CAAE/E,QAAQ,cAAAgF,sBAAA,uBAAtBA,sBAAA,CAAwBkB,WAAW,EAAEnB,YAAY,aAAZA,YAAY,gBAAAE,sBAAA,GAAZF,YAAY,CAAE/E,QAAQ,cAAAiF,sBAAA,uBAAtBA,sBAAA,CAAwBoB,WAAW,CAAC,CAAC;EAE9E,OAAO;IACL5I,aAAa;IACbF,sBAAsB;IACtBC;EACF,CAAC;AACH,CAAC;AAED,eAAe7B,sBAAsB","ignoreList":[]}
|
|
@@ -12,7 +12,8 @@ const GroupChannelSuggestedMentionList = ({
|
|
|
12
12
|
inputHeight,
|
|
13
13
|
bottomInset,
|
|
14
14
|
onPressToMention,
|
|
15
|
-
mentionedUsers
|
|
15
|
+
mentionedUsers,
|
|
16
|
+
showUserId = true
|
|
16
17
|
}) => {
|
|
17
18
|
const {
|
|
18
19
|
width: screenWidth,
|
|
@@ -89,7 +90,7 @@ const GroupChannelSuggestedMentionList = ({
|
|
|
89
90
|
color: colors.onBackground01,
|
|
90
91
|
numberOfLines: 1,
|
|
91
92
|
style: styles.userNickname
|
|
92
|
-
}, member.nickname || STRINGS.LABELS.USER_NO_NAME), /*#__PURE__*/React.createElement(Text, {
|
|
93
|
+
}, member.nickname || STRINGS.LABELS.USER_NO_NAME), !!showUserId && /*#__PURE__*/React.createElement(Text, {
|
|
93
94
|
body3: true,
|
|
94
95
|
color: colors.onBackground03,
|
|
95
96
|
numberOfLines: 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useContext","Pressable","ScrollView","View","useWindowDimensions","Avatar","Box","Divider","Icon","Text","createStyleSheet","useHeaderStyle","useUIKitTheme","conditionChaining","useSafeAreaPadding","useLocalization","useSendbirdChat","useKeyboardStatus","useMentionSuggestion","GroupChannelContexts","GroupChannelSuggestedMentionList","text","selection","inputHeight","bottomInset","onPressToMention","mentionedUsers","width","screenWidth","height","screenHeight","channel","Fragment","sdk","mentionManager","STRINGS","colors","topInset","safeArea","keyboard","members","reset","searchStringRange","searchLimited","isLandscape","isShortened","visible","canRenderMembers","length","maxHeight","styles","suggestion","renderLimitGuide","createElement","style","borderTopColor","onBackground04","icon","size","containerStyle","marginEnd","color","onBackground02","body3","GROUP_CHANNEL","MENTION_LIMITED","config","mentionLimit","renderMembers","map","member","onPress","key","userId","userContainer","uri","profileUrl","userAvatar","userInfo","body2","onBackground01","numberOfLines","userNickname","nickname","LABELS","USER_NO_NAME","onBackground03","position","bottom","pointerEvents","container","bounces","keyboardDismissMode","keyboardShouldPersistTaps","scrollView","backgroundColor","background","bottomSpace","borderTopWidth","contentContainerStyle","top","start","end","paddingStart","flexDirection","alignItems","justifyContent","flex","flexShrink","lineHeight","textAlignVertical","minWidth","paddingHorizontal"],"sources":["GroupChannelSuggestedMentionList.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { Pressable, ScrollView, View, useWindowDimensions } from 'react-native';\n\nimport {\n Avatar,\n Box,\n Divider,\n Icon,\n Text,\n createStyleSheet,\n useHeaderStyle,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport { conditionChaining, useSafeAreaPadding } from '@sendbird/uikit-utils';\n\nimport { useLocalization, useSendbirdChat } from '../../../hooks/useContext';\nimport useKeyboardStatus from '../../../hooks/useKeyboardStatus';\nimport useMentionSuggestion from '../../../hooks/useMentionSuggestion';\nimport { GroupChannelContexts } from '../module/moduleContext';\nimport type { GroupChannelProps } from '../types';\n\nconst GroupChannelSuggestedMentionList = ({\n text,\n selection,\n inputHeight,\n bottomInset,\n onPressToMention,\n mentionedUsers,\n}: GroupChannelProps['SuggestedMentionList']) => {\n const { width: screenWidth, height: screenHeight } = useWindowDimensions();\n const { channel } = useContext(GroupChannelContexts.Fragment);\n const { sdk, mentionManager } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n const { topInset } = useHeaderStyle();\n const safeArea = useSafeAreaPadding(['left', 'right']);\n\n const keyboard = useKeyboardStatus();\n\n const { members, reset, searchStringRange, searchLimited } = useMentionSuggestion({\n sdk,\n text,\n selection,\n channel,\n mentionedUsers,\n });\n\n const isLandscape = screenWidth > screenHeight;\n const isShortened = isLandscape && keyboard.visible;\n const canRenderMembers = members.length > 0;\n const maxHeight = isShortened ? screenHeight - (topInset + inputHeight + keyboard.height) : styles.suggestion.height;\n\n const renderLimitGuide = () => {\n return (\n <View style={[styles.searchLimited, { borderTopColor: colors.onBackground04 }]}>\n <Icon icon={'info'} size={20} containerStyle={{ marginEnd: 4 }} color={colors.onBackground02} />\n <Text body3 color={colors.onBackground02}>\n {STRINGS.GROUP_CHANNEL.MENTION_LIMITED(mentionManager.config.mentionLimit)}\n </Text>\n </View>\n );\n };\n\n const renderMembers = () => {\n return (\n <View>\n {members.map((member) => {\n return (\n <Pressable\n onPress={() => {\n onPressToMention(member, searchStringRange);\n reset();\n }}\n key={member.userId}\n style={styles.userContainer}\n >\n <Avatar size={28} uri={member.profileUrl} containerStyle={styles.userAvatar} />\n <Box style={styles.userInfo}>\n <Text body2 color={colors.onBackground01} numberOfLines={1} style={styles.userNickname}>\n {member.nickname || STRINGS.LABELS.USER_NO_NAME}\n </Text>\n <Text body3 color={colors.onBackground03} numberOfLines={1} style={styles.userId}>\n {member.userId}\n </Text>\n <Divider style={{ position: 'absolute', bottom: 0 }} />\n </Box>\n </Pressable>\n );\n })}\n </View>\n );\n };\n\n return (\n <Pressable\n onPress={reset}\n pointerEvents={canRenderMembers ? 'auto' : 'none'}\n style={[styles.container, { bottom: inputHeight + bottomInset }]}\n >\n <ScrollView\n bounces={false}\n keyboardDismissMode={'none'}\n keyboardShouldPersistTaps={'always'}\n style={[\n styles.scrollView,\n {\n maxHeight,\n backgroundColor: colors.background,\n bottom: keyboard.bottomSpace,\n },\n canRenderMembers && {\n borderTopWidth: 1,\n borderTopColor: colors.onBackground04,\n },\n ]}\n contentContainerStyle={safeArea}\n >\n {conditionChaining([searchLimited, canRenderMembers], [renderLimitGuide(), renderMembers(), null])}\n </ScrollView>\n </Pressable>\n );\n};\n\nconst styles = createStyleSheet({\n suggestion: {\n height: 196,\n },\n container: {\n position: 'absolute',\n top: 0,\n start: 0,\n end: 0,\n },\n scrollView: {\n position: 'absolute',\n start: 0,\n end: 0,\n },\n userContainer: {\n paddingStart: 16,\n flexDirection: 'row',\n height: 44,\n alignItems: 'center',\n justifyContent: 'center',\n },\n userAvatar: {\n marginEnd: 16,\n },\n userInfo: {\n flexDirection: 'row',\n flex: 1,\n },\n userNickname: {\n flexShrink: 1,\n lineHeight: 44,\n textAlignVertical: 'center',\n marginEnd: 6,\n },\n userId: {\n lineHeight: 44,\n textAlignVertical: 'center',\n minWidth: 32,\n flexShrink: 1,\n marginEnd: 16,\n },\n searchLimited: {\n borderTopWidth: 1,\n paddingHorizontal: 16,\n height: 44,\n flexDirection: 'row',\n alignItems: 'center',\n },\n});\nexport default GroupChannelSuggestedMentionList;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useContext","Pressable","ScrollView","View","useWindowDimensions","Avatar","Box","Divider","Icon","Text","createStyleSheet","useHeaderStyle","useUIKitTheme","conditionChaining","useSafeAreaPadding","useLocalization","useSendbirdChat","useKeyboardStatus","useMentionSuggestion","GroupChannelContexts","GroupChannelSuggestedMentionList","text","selection","inputHeight","bottomInset","onPressToMention","mentionedUsers","showUserId","width","screenWidth","height","screenHeight","channel","Fragment","sdk","mentionManager","STRINGS","colors","topInset","safeArea","keyboard","members","reset","searchStringRange","searchLimited","isLandscape","isShortened","visible","canRenderMembers","length","maxHeight","styles","suggestion","renderLimitGuide","createElement","style","borderTopColor","onBackground04","icon","size","containerStyle","marginEnd","color","onBackground02","body3","GROUP_CHANNEL","MENTION_LIMITED","config","mentionLimit","renderMembers","map","member","onPress","key","userId","userContainer","uri","profileUrl","userAvatar","userInfo","body2","onBackground01","numberOfLines","userNickname","nickname","LABELS","USER_NO_NAME","onBackground03","position","bottom","pointerEvents","container","bounces","keyboardDismissMode","keyboardShouldPersistTaps","scrollView","backgroundColor","background","bottomSpace","borderTopWidth","contentContainerStyle","top","start","end","paddingStart","flexDirection","alignItems","justifyContent","flex","flexShrink","lineHeight","textAlignVertical","minWidth","paddingHorizontal"],"sources":["GroupChannelSuggestedMentionList.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { Pressable, ScrollView, View, useWindowDimensions } from 'react-native';\n\nimport {\n Avatar,\n Box,\n Divider,\n Icon,\n Text,\n createStyleSheet,\n useHeaderStyle,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport { conditionChaining, useSafeAreaPadding } from '@sendbird/uikit-utils';\n\nimport { useLocalization, useSendbirdChat } from '../../../hooks/useContext';\nimport useKeyboardStatus from '../../../hooks/useKeyboardStatus';\nimport useMentionSuggestion from '../../../hooks/useMentionSuggestion';\nimport { GroupChannelContexts } from '../module/moduleContext';\nimport type { GroupChannelProps } from '../types';\n\nconst GroupChannelSuggestedMentionList = ({\n text,\n selection,\n inputHeight,\n bottomInset,\n onPressToMention,\n mentionedUsers,\n showUserId = true,\n}: GroupChannelProps['SuggestedMentionList']) => {\n const { width: screenWidth, height: screenHeight } = useWindowDimensions();\n const { channel } = useContext(GroupChannelContexts.Fragment);\n const { sdk, mentionManager } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n const { topInset } = useHeaderStyle();\n const safeArea = useSafeAreaPadding(['left', 'right']);\n\n const keyboard = useKeyboardStatus();\n\n const { members, reset, searchStringRange, searchLimited } = useMentionSuggestion({\n sdk,\n text,\n selection,\n channel,\n mentionedUsers,\n });\n\n const isLandscape = screenWidth > screenHeight;\n const isShortened = isLandscape && keyboard.visible;\n const canRenderMembers = members.length > 0;\n const maxHeight = isShortened ? screenHeight - (topInset + inputHeight + keyboard.height) : styles.suggestion.height;\n\n const renderLimitGuide = () => {\n return (\n <View style={[styles.searchLimited, { borderTopColor: colors.onBackground04 }]}>\n <Icon icon={'info'} size={20} containerStyle={{ marginEnd: 4 }} color={colors.onBackground02} />\n <Text body3 color={colors.onBackground02}>\n {STRINGS.GROUP_CHANNEL.MENTION_LIMITED(mentionManager.config.mentionLimit)}\n </Text>\n </View>\n );\n };\n\n const renderMembers = () => {\n return (\n <View>\n {members.map((member) => {\n return (\n <Pressable\n onPress={() => {\n onPressToMention(member, searchStringRange);\n reset();\n }}\n key={member.userId}\n style={styles.userContainer}\n >\n <Avatar size={28} uri={member.profileUrl} containerStyle={styles.userAvatar} />\n <Box style={styles.userInfo}>\n <Text body2 color={colors.onBackground01} numberOfLines={1} style={styles.userNickname}>\n {member.nickname || STRINGS.LABELS.USER_NO_NAME}\n </Text>\n {!!showUserId && (\n <Text body3 color={colors.onBackground03} numberOfLines={1} style={styles.userId}>\n {member.userId}\n </Text>\n )}\n <Divider style={{ position: 'absolute', bottom: 0 }} />\n </Box>\n </Pressable>\n );\n })}\n </View>\n );\n };\n\n return (\n <Pressable\n onPress={reset}\n pointerEvents={canRenderMembers ? 'auto' : 'none'}\n style={[styles.container, { bottom: inputHeight + bottomInset }]}\n >\n <ScrollView\n bounces={false}\n keyboardDismissMode={'none'}\n keyboardShouldPersistTaps={'always'}\n style={[\n styles.scrollView,\n {\n maxHeight,\n backgroundColor: colors.background,\n bottom: keyboard.bottomSpace,\n },\n canRenderMembers && {\n borderTopWidth: 1,\n borderTopColor: colors.onBackground04,\n },\n ]}\n contentContainerStyle={safeArea}\n >\n {conditionChaining([searchLimited, canRenderMembers], [renderLimitGuide(), renderMembers(), null])}\n </ScrollView>\n </Pressable>\n );\n};\n\nconst styles = createStyleSheet({\n suggestion: {\n height: 196,\n },\n container: {\n position: 'absolute',\n top: 0,\n start: 0,\n end: 0,\n },\n scrollView: {\n position: 'absolute',\n start: 0,\n end: 0,\n },\n userContainer: {\n paddingStart: 16,\n flexDirection: 'row',\n height: 44,\n alignItems: 'center',\n justifyContent: 'center',\n },\n userAvatar: {\n marginEnd: 16,\n },\n userInfo: {\n flexDirection: 'row',\n flex: 1,\n },\n userNickname: {\n flexShrink: 1,\n lineHeight: 44,\n textAlignVertical: 'center',\n marginEnd: 6,\n },\n userId: {\n lineHeight: 44,\n textAlignVertical: 'center',\n minWidth: 32,\n flexShrink: 1,\n marginEnd: 16,\n },\n searchLimited: {\n borderTopWidth: 1,\n paddingHorizontal: 16,\n height: 44,\n flexDirection: 'row',\n alignItems: 'center',\n },\n});\nexport default GroupChannelSuggestedMentionList;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/module/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js
CHANGED
|
@@ -12,7 +12,8 @@ const GroupChannelThreadSuggestedMentionList = ({
|
|
|
12
12
|
inputHeight,
|
|
13
13
|
bottomInset,
|
|
14
14
|
onPressToMention,
|
|
15
|
-
mentionedUsers
|
|
15
|
+
mentionedUsers,
|
|
16
|
+
showUserId = true
|
|
16
17
|
}) => {
|
|
17
18
|
const {
|
|
18
19
|
width: screenWidth,
|
|
@@ -89,7 +90,7 @@ const GroupChannelThreadSuggestedMentionList = ({
|
|
|
89
90
|
color: colors.onBackground01,
|
|
90
91
|
numberOfLines: 1,
|
|
91
92
|
style: styles.userNickname
|
|
92
|
-
}, member.nickname || STRINGS.LABELS.USER_NO_NAME), /*#__PURE__*/React.createElement(Text, {
|
|
93
|
+
}, member.nickname || STRINGS.LABELS.USER_NO_NAME), !!showUserId && /*#__PURE__*/React.createElement(Text, {
|
|
93
94
|
body3: true,
|
|
94
95
|
color: colors.onBackground03,
|
|
95
96
|
numberOfLines: 1,
|
package/lib/module/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useContext","Pressable","ScrollView","View","useWindowDimensions","Avatar","Divider","Icon","Text","createStyleSheet","useHeaderStyle","useUIKitTheme","conditionChaining","useSafeAreaPadding","useLocalization","useSendbirdChat","useKeyboardStatus","useMentionSuggestion","GroupChannelThreadContexts","GroupChannelThreadSuggestedMentionList","text","selection","inputHeight","bottomInset","onPressToMention","mentionedUsers","width","screenWidth","height","screenHeight","channel","Fragment","sdk","mentionManager","STRINGS","colors","topInset","safeArea","keyboard","members","reset","searchStringRange","searchLimited","isLandscape","isShortened","visible","canRenderMembers","length","maxHeight","styles","suggestion","renderLimitGuide","createElement","style","borderTopColor","onBackground04","icon","size","containerStyle","marginEnd","color","onBackground02","body3","GROUP_CHANNEL_THREAD","MENTION_LIMITED","config","mentionLimit","renderMembers","map","member","onPress","key","userId","userContainer","uri","profileUrl","userAvatar","userInfo","body2","onBackground01","numberOfLines","userNickname","nickname","LABELS","USER_NO_NAME","onBackground03","position","bottom","pointerEvents","container","bounces","keyboardDismissMode","keyboardShouldPersistTaps","scrollView","backgroundColor","background","bottomSpace","borderTopWidth","contentContainerStyle","top","start","end","paddingStart","flexDirection","alignItems","justifyContent","flex","flexShrink","lineHeight","textAlignVertical","minWidth","paddingHorizontal"],"sources":["GroupChannelThreadSuggestedMentionList.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { Pressable, ScrollView, View, useWindowDimensions } from 'react-native';\n\nimport {\n Avatar,\n Divider,\n Icon,\n Text,\n createStyleSheet,\n useHeaderStyle,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport { conditionChaining, useSafeAreaPadding } from '@sendbird/uikit-utils';\n\nimport { useLocalization, useSendbirdChat } from '../../../hooks/useContext';\nimport useKeyboardStatus from '../../../hooks/useKeyboardStatus';\nimport useMentionSuggestion from '../../../hooks/useMentionSuggestion';\nimport { GroupChannelThreadContexts } from '../module/moduleContext';\nimport type { GroupChannelThreadProps } from '../types';\n\nconst GroupChannelThreadSuggestedMentionList = ({\n text,\n selection,\n inputHeight,\n bottomInset,\n onPressToMention,\n mentionedUsers,\n}: GroupChannelThreadProps['SuggestedMentionList']) => {\n const { width: screenWidth, height: screenHeight } = useWindowDimensions();\n const { channel } = useContext(GroupChannelThreadContexts.Fragment);\n const { sdk, mentionManager } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n const { topInset } = useHeaderStyle();\n const safeArea = useSafeAreaPadding(['left', 'right']);\n\n const keyboard = useKeyboardStatus();\n\n const { members, reset, searchStringRange, searchLimited } = useMentionSuggestion({\n sdk,\n text,\n selection,\n channel,\n mentionedUsers,\n });\n\n const isLandscape = screenWidth > screenHeight;\n const isShortened = isLandscape && keyboard.visible;\n const canRenderMembers = members.length > 0;\n const maxHeight = isShortened ? screenHeight - (topInset + inputHeight + keyboard.height) : styles.suggestion.height;\n\n const renderLimitGuide = () => {\n return (\n <View style={[styles.searchLimited, { borderTopColor: colors.onBackground04 }]}>\n <Icon icon={'info'} size={20} containerStyle={{ marginEnd: 4 }} color={colors.onBackground02} />\n <Text body3 color={colors.onBackground02}>\n {STRINGS.GROUP_CHANNEL_THREAD.MENTION_LIMITED(mentionManager.config.mentionLimit)}\n </Text>\n </View>\n );\n };\n\n const renderMembers = () => {\n return (\n <View>\n {members.map((member) => {\n return (\n <Pressable\n onPress={() => {\n onPressToMention(member, searchStringRange);\n reset();\n }}\n key={member.userId}\n style={styles.userContainer}\n >\n <Avatar size={28} uri={member.profileUrl} containerStyle={styles.userAvatar} />\n <View style={styles.userInfo}>\n <Text body2 color={colors.onBackground01} numberOfLines={1} style={styles.userNickname}>\n {member.nickname || STRINGS.LABELS.USER_NO_NAME}\n </Text>\n <Text body3 color={colors.onBackground03} numberOfLines={1} style={styles.userId}>\n {member.userId}\n </Text>\n <Divider style={{ position: 'absolute', bottom: 0 }} />\n </View>\n </Pressable>\n );\n })}\n </View>\n );\n };\n\n return (\n <Pressable\n onPress={reset}\n pointerEvents={canRenderMembers ? 'auto' : 'none'}\n style={[styles.container, { bottom: inputHeight + bottomInset }]}\n >\n <ScrollView\n bounces={false}\n keyboardDismissMode={'none'}\n keyboardShouldPersistTaps={'always'}\n style={[\n styles.scrollView,\n {\n maxHeight,\n backgroundColor: colors.background,\n bottom: keyboard.bottomSpace,\n },\n canRenderMembers && {\n borderTopWidth: 1,\n borderTopColor: colors.onBackground04,\n },\n ]}\n contentContainerStyle={safeArea}\n >\n {conditionChaining([searchLimited, canRenderMembers], [renderLimitGuide(), renderMembers(), null])}\n </ScrollView>\n </Pressable>\n );\n};\n\nconst styles = createStyleSheet({\n suggestion: {\n height: 196,\n },\n container: {\n position: 'absolute',\n top: 0,\n start: 0,\n end: 0,\n },\n scrollView: {\n position: 'absolute',\n start: 0,\n end: 0,\n },\n userContainer: {\n paddingStart: 16,\n flexDirection: 'row',\n height: 44,\n alignItems: 'center',\n justifyContent: 'center',\n },\n userAvatar: {\n marginEnd: 16,\n },\n userInfo: {\n flexDirection: 'row',\n flex: 1,\n },\n userNickname: {\n flexShrink: 1,\n lineHeight: 44,\n textAlignVertical: 'center',\n marginEnd: 6,\n },\n userId: {\n lineHeight: 44,\n textAlignVertical: 'center',\n minWidth: 32,\n flexShrink: 1,\n marginEnd: 16,\n },\n searchLimited: {\n borderTopWidth: 1,\n paddingHorizontal: 16,\n height: 44,\n flexDirection: 'row',\n alignItems: 'center',\n },\n});\nexport default GroupChannelThreadSuggestedMentionList;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useContext","Pressable","ScrollView","View","useWindowDimensions","Avatar","Divider","Icon","Text","createStyleSheet","useHeaderStyle","useUIKitTheme","conditionChaining","useSafeAreaPadding","useLocalization","useSendbirdChat","useKeyboardStatus","useMentionSuggestion","GroupChannelThreadContexts","GroupChannelThreadSuggestedMentionList","text","selection","inputHeight","bottomInset","onPressToMention","mentionedUsers","showUserId","width","screenWidth","height","screenHeight","channel","Fragment","sdk","mentionManager","STRINGS","colors","topInset","safeArea","keyboard","members","reset","searchStringRange","searchLimited","isLandscape","isShortened","visible","canRenderMembers","length","maxHeight","styles","suggestion","renderLimitGuide","createElement","style","borderTopColor","onBackground04","icon","size","containerStyle","marginEnd","color","onBackground02","body3","GROUP_CHANNEL_THREAD","MENTION_LIMITED","config","mentionLimit","renderMembers","map","member","onPress","key","userId","userContainer","uri","profileUrl","userAvatar","userInfo","body2","onBackground01","numberOfLines","userNickname","nickname","LABELS","USER_NO_NAME","onBackground03","position","bottom","pointerEvents","container","bounces","keyboardDismissMode","keyboardShouldPersistTaps","scrollView","backgroundColor","background","bottomSpace","borderTopWidth","contentContainerStyle","top","start","end","paddingStart","flexDirection","alignItems","justifyContent","flex","flexShrink","lineHeight","textAlignVertical","minWidth","paddingHorizontal"],"sources":["GroupChannelThreadSuggestedMentionList.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { Pressable, ScrollView, View, useWindowDimensions } from 'react-native';\n\nimport {\n Avatar,\n Divider,\n Icon,\n Text,\n createStyleSheet,\n useHeaderStyle,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport { conditionChaining, useSafeAreaPadding } from '@sendbird/uikit-utils';\n\nimport { useLocalization, useSendbirdChat } from '../../../hooks/useContext';\nimport useKeyboardStatus from '../../../hooks/useKeyboardStatus';\nimport useMentionSuggestion from '../../../hooks/useMentionSuggestion';\nimport { GroupChannelThreadContexts } from '../module/moduleContext';\nimport type { GroupChannelThreadProps } from '../types';\n\nconst GroupChannelThreadSuggestedMentionList = ({\n text,\n selection,\n inputHeight,\n bottomInset,\n onPressToMention,\n mentionedUsers,\n showUserId = true,\n}: GroupChannelThreadProps['SuggestedMentionList']) => {\n const { width: screenWidth, height: screenHeight } = useWindowDimensions();\n const { channel } = useContext(GroupChannelThreadContexts.Fragment);\n const { sdk, mentionManager } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { colors } = useUIKitTheme();\n const { topInset } = useHeaderStyle();\n const safeArea = useSafeAreaPadding(['left', 'right']);\n\n const keyboard = useKeyboardStatus();\n\n const { members, reset, searchStringRange, searchLimited } = useMentionSuggestion({\n sdk,\n text,\n selection,\n channel,\n mentionedUsers,\n });\n\n const isLandscape = screenWidth > screenHeight;\n const isShortened = isLandscape && keyboard.visible;\n const canRenderMembers = members.length > 0;\n const maxHeight = isShortened ? screenHeight - (topInset + inputHeight + keyboard.height) : styles.suggestion.height;\n\n const renderLimitGuide = () => {\n return (\n <View style={[styles.searchLimited, { borderTopColor: colors.onBackground04 }]}>\n <Icon icon={'info'} size={20} containerStyle={{ marginEnd: 4 }} color={colors.onBackground02} />\n <Text body3 color={colors.onBackground02}>\n {STRINGS.GROUP_CHANNEL_THREAD.MENTION_LIMITED(mentionManager.config.mentionLimit)}\n </Text>\n </View>\n );\n };\n\n const renderMembers = () => {\n return (\n <View>\n {members.map((member) => {\n return (\n <Pressable\n onPress={() => {\n onPressToMention(member, searchStringRange);\n reset();\n }}\n key={member.userId}\n style={styles.userContainer}\n >\n <Avatar size={28} uri={member.profileUrl} containerStyle={styles.userAvatar} />\n <View style={styles.userInfo}>\n <Text body2 color={colors.onBackground01} numberOfLines={1} style={styles.userNickname}>\n {member.nickname || STRINGS.LABELS.USER_NO_NAME}\n </Text>\n {!!showUserId && (\n <Text body3 color={colors.onBackground03} numberOfLines={1} style={styles.userId}>\n {member.userId}\n </Text>\n )}\n <Divider style={{ position: 'absolute', bottom: 0 }} />\n </View>\n </Pressable>\n );\n })}\n </View>\n );\n };\n\n return (\n <Pressable\n onPress={reset}\n pointerEvents={canRenderMembers ? 'auto' : 'none'}\n style={[styles.container, { bottom: inputHeight + bottomInset }]}\n >\n <ScrollView\n bounces={false}\n keyboardDismissMode={'none'}\n keyboardShouldPersistTaps={'always'}\n style={[\n styles.scrollView,\n {\n maxHeight,\n backgroundColor: colors.background,\n bottom: keyboard.bottomSpace,\n },\n canRenderMembers && {\n borderTopWidth: 1,\n borderTopColor: colors.onBackground04,\n },\n ]}\n contentContainerStyle={safeArea}\n >\n {conditionChaining([searchLimited, canRenderMembers], [renderLimitGuide(), renderMembers(), null])}\n </ScrollView>\n </Pressable>\n );\n};\n\nconst styles = createStyleSheet({\n suggestion: {\n height: 196,\n },\n container: {\n position: 'absolute',\n top: 0,\n start: 0,\n end: 0,\n },\n scrollView: {\n position: 'absolute',\n start: 0,\n end: 0,\n },\n userContainer: {\n paddingStart: 16,\n flexDirection: 'row',\n height: 44,\n alignItems: 'center',\n justifyContent: 'center',\n },\n userAvatar: {\n marginEnd: 16,\n },\n userInfo: {\n flexDirection: 'row',\n flex: 1,\n },\n userNickname: {\n flexShrink: 1,\n lineHeight: 44,\n textAlignVertical: 'center',\n marginEnd: 6,\n },\n userId: {\n lineHeight: 44,\n textAlignVertical: 'center',\n minWidth: 32,\n flexShrink: 1,\n marginEnd: 16,\n },\n searchLimited: {\n borderTopWidth: 1,\n paddingHorizontal: 16,\n height: 44,\n flexDirection: 'row',\n alignItems: 'center',\n },\n});\nexport default GroupChannelThreadSuggestedMentionList;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
2
2
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
3
3
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
4
|
+
import { Icon } from '@sendbird/uikit-react-native-foundation';
|
|
4
5
|
import InternalLocalCacheStorage from './InternalLocalCacheStorage';
|
|
5
6
|
class MemoryStorage {
|
|
6
7
|
constructor() {
|
|
@@ -62,6 +63,11 @@ class EmojiManager {
|
|
|
62
63
|
get allEmoji() {
|
|
63
64
|
return this._allEmoji;
|
|
64
65
|
}
|
|
66
|
+
getEmojiIconSource(emoji) {
|
|
67
|
+
return emoji !== null && emoji !== void 0 && emoji.url ? {
|
|
68
|
+
uri: emoji.url
|
|
69
|
+
} : Icon.Assets.question;
|
|
70
|
+
}
|
|
65
71
|
get emojiHash() {
|
|
66
72
|
var _this$emojiStorage$co;
|
|
67
73
|
return (_this$emojiStorage$co = this.emojiStorage.container) === null || _this$emojiStorage$co === void 0 ? void 0 : _this$emojiStorage$co.emojiHash;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["InternalLocalCacheStorage","MemoryStorage","constructor","_defineProperty","getAllKeys","Object","keys","_data","getItem","key","removeItem","setItem","value","EmojiManager","internalStorage","container","get","emojiStorage","strItem","freeze","JSON","parse","set","stringify","emojiContainer","category","emojiCategories","_emojiCategoryMap","id","emoji","emojis","_allEmojiMap","_allEmoji","values","emojiCategoryMap","allEmojiMap","allEmoji","emojiHash","_this$emojiStorage$co"],"sources":["EmojiManager.ts"],"sourcesContent":["import type { SendbirdEmoji, SendbirdEmojiCategory, SendbirdEmojiContainer } from '@sendbird/uikit-utils';\n\nimport type { AsyncLocalCacheStorage } from '../types';\nimport InternalLocalCacheStorage from './InternalLocalCacheStorage';\n\nclass MemoryStorage implements AsyncLocalCacheStorage {\n _data: Record<string, string> = {};\n\n async getAllKeys(): Promise<readonly string[] | string[]> {\n return Object.keys(this._data);\n }\n\n async getItem(key: string): Promise<string | null> {\n return this._data[key];\n }\n\n async removeItem(key: string): Promise<void> {\n delete this._data[key];\n }\n\n async setItem(key: string, value: string): Promise<void> {\n this._data[key] = value;\n }\n}\
|
|
1
|
+
{"version":3,"names":["Icon","InternalLocalCacheStorage","MemoryStorage","constructor","_defineProperty","getAllKeys","Object","keys","_data","getItem","key","removeItem","setItem","value","EmojiManager","internalStorage","container","get","emojiStorage","strItem","freeze","JSON","parse","set","stringify","emojiContainer","category","emojiCategories","_emojiCategoryMap","id","emoji","emojis","_allEmojiMap","_allEmoji","values","emojiCategoryMap","allEmojiMap","allEmoji","getEmojiIconSource","url","uri","Assets","question","emojiHash","_this$emojiStorage$co"],"sources":["EmojiManager.ts"],"sourcesContent":["import { ImageProps } from 'react-native';\n\nimport { Icon } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdEmoji, SendbirdEmojiCategory, SendbirdEmojiContainer } from '@sendbird/uikit-utils';\n\nimport type { AsyncLocalCacheStorage } from '../types';\nimport InternalLocalCacheStorage from './InternalLocalCacheStorage';\n\nclass MemoryStorage implements AsyncLocalCacheStorage {\n _data: Record<string, string> = {};\n\n async getAllKeys(): Promise<readonly string[] | string[]> {\n return Object.keys(this._data);\n }\n\n async getItem(key: string): Promise<string | null> {\n return this._data[key];\n }\n\n async removeItem(key: string): Promise<void> {\n delete this._data[key];\n }\n\n async setItem(key: string, value: string): Promise<void> {\n this._data[key] = value;\n }\n}\ntype EmojiCategoryId = string;\ntype EmojiKey = string;\nclass EmojiManager {\n static key = 'sendbird-uikit@emoji-manager';\n\n constructor(\n private internalStorage: InternalLocalCacheStorage = new InternalLocalCacheStorage(new MemoryStorage()),\n ) {}\n\n private emojiStorage = {\n container: null as null | SendbirdEmojiContainer,\n get: async () => {\n if (!this.emojiStorage.container) {\n const strItem = await this.internalStorage.getItem(EmojiManager.key);\n if (strItem) this.emojiStorage.container = Object.freeze(JSON.parse(strItem));\n }\n return this.emojiStorage.container;\n },\n set: async (container: SendbirdEmojiContainer) => {\n this.emojiStorage.container = Object.freeze(container);\n await this.internalStorage.setItem(EmojiManager.key, JSON.stringify(container));\n },\n };\n\n private _emojiCategoryMap: Record<EmojiCategoryId, SendbirdEmojiCategory> = {};\n public get emojiCategoryMap() {\n return this._emojiCategoryMap;\n }\n\n private _allEmojiMap: Record<EmojiKey, SendbirdEmoji> = {};\n public get allEmojiMap() {\n return this._allEmojiMap;\n }\n\n private _allEmoji: SendbirdEmoji[] = [];\n public get allEmoji() {\n return this._allEmoji;\n }\n\n public getEmojiIconSource(emoji?: SendbirdEmoji | null | undefined): ImageProps['source'] {\n return emoji?.url ? { uri: emoji.url } : Icon.Assets.question;\n }\n\n public init = async (emojiContainer?: SendbirdEmojiContainer) => {\n if (emojiContainer) await this.emojiStorage.set(emojiContainer);\n\n const container = await this.emojiStorage.get();\n\n if (container) {\n for (const category of container.emojiCategories) {\n this._emojiCategoryMap[category.id] = category;\n for (const emoji of category.emojis) {\n this._allEmojiMap[emoji.key] = emoji;\n }\n }\n this._allEmoji = Object.values(this._allEmojiMap);\n }\n };\n\n public get emojiHash() {\n return this.emojiStorage.container?.emojiHash;\n }\n}\n\nexport default EmojiManager;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/module/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["VERSION"],"sources":["version.ts"],"sourcesContent":["const VERSION = '3.8.
|
|
1
|
+
{"version":3,"names":["VERSION"],"sources":["version.ts"],"sourcesContent":["const VERSION = '3.8.2';\nexport default VERSION;\n"],"mappings":"AAAA,MAAMA,OAAO,GAAG,OAAO;AACvB,eAAeA,OAAO","ignoreList":[]}
|
|
@@ -13,6 +13,10 @@ export type SuggestedMentionListProps = {
|
|
|
13
13
|
inputHeight: number;
|
|
14
14
|
onPressToMention: (user: SendbirdMember, searchStringRange: Range) => void;
|
|
15
15
|
mentionedUsers: MentionedUser[];
|
|
16
|
+
/**
|
|
17
|
+
* Whether to show user id information on each item.
|
|
18
|
+
* */
|
|
19
|
+
showUserId?: boolean;
|
|
16
20
|
};
|
|
17
21
|
export type ChannelInputProps = {
|
|
18
22
|
style?: StyleProp<TextStyle>;
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { StyleProp, ViewStyle } from 'react-native';
|
|
2
|
+
import { ImageProps, StyleProp, ViewStyle } from 'react-native';
|
|
3
3
|
type Props = {
|
|
4
|
-
|
|
4
|
+
source: ImageProps['source'];
|
|
5
5
|
count: number;
|
|
6
6
|
reacted: boolean;
|
|
7
7
|
style: StyleProp<ViewStyle>;
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated Please use `source` instead
|
|
10
|
+
* */
|
|
11
|
+
url?: string;
|
|
8
12
|
};
|
|
9
13
|
declare const ReactionRoundedButton: {
|
|
10
|
-
({
|
|
14
|
+
({ source, count, reacted, style, url }: Props): React.JSX.Element;
|
|
11
15
|
More({ pressed }: {
|
|
12
16
|
pressed: boolean;
|
|
13
17
|
}): React.JSX.Element;
|
|
@@ -14,7 +14,7 @@ import type { StringSet } from '../localization/StringSet.type';
|
|
|
14
14
|
import type { ClipboardServiceInterface, FileServiceInterface, MediaServiceInterface, NotificationServiceInterface, PlayerServiceInterface, RecorderServiceInterface } from '../platform/types';
|
|
15
15
|
import { ErrorBoundaryProps, LocalCacheStorage } from '../types';
|
|
16
16
|
export declare const SendbirdUIKit: Readonly<{
|
|
17
|
-
VERSION: "3.8.
|
|
17
|
+
VERSION: "3.8.2";
|
|
18
18
|
PLATFORM: string;
|
|
19
19
|
DEFAULT: {
|
|
20
20
|
AUTO_PUSH_TOKEN_REGISTRATION: boolean;
|
|
@@ -22,8 +22,7 @@ export declare const SendbirdUIKit: Readonly<{
|
|
|
22
22
|
IMAGE_COMPRESSION: boolean;
|
|
23
23
|
};
|
|
24
24
|
}>;
|
|
25
|
-
export type ChatOmittedInitParams =
|
|
26
|
-
declare const chatOmitKeys: readonly ["appId", "newInstance", "modules", "debugMode", "appVersion", "localCacheEnabled", "useAsyncStorageStore", "useMMKVStorageStore"];
|
|
25
|
+
export type ChatOmittedInitParams = SendbirdChatParams<[GroupChannelModule, OpenChannelModule]>;
|
|
27
26
|
export type SendbirdUIKitContainerProps = React.PropsWithChildren<{
|
|
28
27
|
appId: string;
|
|
29
28
|
platformServices: {
|
package/lib/typescript/src/domain/groupChannel/component/GroupChannelSuggestedMentionList.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { GroupChannelProps } from '../types';
|
|
3
|
-
declare const GroupChannelSuggestedMentionList: ({ text, selection, inputHeight, bottomInset, onPressToMention, mentionedUsers, }: GroupChannelProps['SuggestedMentionList']) => React.JSX.Element;
|
|
3
|
+
declare const GroupChannelSuggestedMentionList: ({ text, selection, inputHeight, bottomInset, onPressToMention, mentionedUsers, showUserId, }: GroupChannelProps['SuggestedMentionList']) => React.JSX.Element;
|
|
4
4
|
export default GroupChannelSuggestedMentionList;
|