@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
|
@@ -21,7 +21,8 @@ const GroupChannelSuggestedMentionList = ({
|
|
|
21
21
|
inputHeight,
|
|
22
22
|
bottomInset,
|
|
23
23
|
onPressToMention,
|
|
24
|
-
mentionedUsers
|
|
24
|
+
mentionedUsers,
|
|
25
|
+
showUserId = true
|
|
25
26
|
}) => {
|
|
26
27
|
const {
|
|
27
28
|
width: screenWidth,
|
|
@@ -98,7 +99,7 @@ const GroupChannelSuggestedMentionList = ({
|
|
|
98
99
|
color: colors.onBackground01,
|
|
99
100
|
numberOfLines: 1,
|
|
100
101
|
style: styles.userNickname
|
|
101
|
-
}, member.nickname || STRINGS.LABELS.USER_NO_NAME), /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Text, {
|
|
102
|
+
}, member.nickname || STRINGS.LABELS.USER_NO_NAME), !!showUserId && /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Text, {
|
|
102
103
|
body3: true,
|
|
103
104
|
color: colors.onBackground03,
|
|
104
105
|
numberOfLines: 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_uikitReactNativeFoundation","_uikitUtils","_useContext","_useKeyboardStatus","_interopRequireDefault","_useMentionSuggestion","_moduleContext","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","GroupChannelSuggestedMentionList","text","selection","inputHeight","bottomInset","onPressToMention","mentionedUsers","width","screenWidth","height","screenHeight","useWindowDimensions","channel","useContext","GroupChannelContexts","Fragment","sdk","mentionManager","useSendbirdChat","STRINGS","useLocalization","colors","useUIKitTheme","topInset","useHeaderStyle","safeArea","useSafeAreaPadding","keyboard","useKeyboardStatus","members","reset","searchStringRange","searchLimited","useMentionSuggestion","isLandscape","isShortened","visible","canRenderMembers","length","maxHeight","styles","suggestion","renderLimitGuide","createElement","View","style","borderTopColor","onBackground04","Icon","icon","size","containerStyle","marginEnd","color","onBackground02","Text","body3","GROUP_CHANNEL","MENTION_LIMITED","config","mentionLimit","renderMembers","map","member","Pressable","onPress","key","userId","userContainer","Avatar","uri","profileUrl","userAvatar","Box","userInfo","body2","onBackground01","numberOfLines","userNickname","nickname","LABELS","USER_NO_NAME","onBackground03","Divider","position","bottom","pointerEvents","container","ScrollView","bounces","keyboardDismissMode","keyboardShouldPersistTaps","scrollView","backgroundColor","background","bottomSpace","borderTopWidth","contentContainerStyle","conditionChaining","createStyleSheet","top","start","end","paddingStart","flexDirection","alignItems","justifyContent","flex","flexShrink","lineHeight","textAlignVertical","minWidth","paddingHorizontal","_default","exports"],"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","_interopRequireWildcard","require","_reactNative","_uikitReactNativeFoundation","_uikitUtils","_useContext","_useKeyboardStatus","_interopRequireDefault","_useMentionSuggestion","_moduleContext","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","GroupChannelSuggestedMentionList","text","selection","inputHeight","bottomInset","onPressToMention","mentionedUsers","showUserId","width","screenWidth","height","screenHeight","useWindowDimensions","channel","useContext","GroupChannelContexts","Fragment","sdk","mentionManager","useSendbirdChat","STRINGS","useLocalization","colors","useUIKitTheme","topInset","useHeaderStyle","safeArea","useSafeAreaPadding","keyboard","useKeyboardStatus","members","reset","searchStringRange","searchLimited","useMentionSuggestion","isLandscape","isShortened","visible","canRenderMembers","length","maxHeight","styles","suggestion","renderLimitGuide","createElement","View","style","borderTopColor","onBackground04","Icon","icon","size","containerStyle","marginEnd","color","onBackground02","Text","body3","GROUP_CHANNEL","MENTION_LIMITED","config","mentionLimit","renderMembers","map","member","Pressable","onPress","key","userId","userContainer","Avatar","uri","profileUrl","userAvatar","Box","userInfo","body2","onBackground01","numberOfLines","userNickname","nickname","LABELS","USER_NO_NAME","onBackground03","Divider","position","bottom","pointerEvents","container","ScrollView","bounces","keyboardDismissMode","keyboardShouldPersistTaps","scrollView","backgroundColor","background","bottomSpace","borderTopWidth","contentContainerStyle","conditionChaining","createStyleSheet","top","start","end","paddingStart","flexDirection","alignItems","justifyContent","flex","flexShrink","lineHeight","textAlignVertical","minWidth","paddingHorizontal","_default","exports"],"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/commonjs/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js
CHANGED
|
@@ -21,7 +21,8 @@ const GroupChannelThreadSuggestedMentionList = ({
|
|
|
21
21
|
inputHeight,
|
|
22
22
|
bottomInset,
|
|
23
23
|
onPressToMention,
|
|
24
|
-
mentionedUsers
|
|
24
|
+
mentionedUsers,
|
|
25
|
+
showUserId = true
|
|
25
26
|
}) => {
|
|
26
27
|
const {
|
|
27
28
|
width: screenWidth,
|
|
@@ -98,7 +99,7 @@ const GroupChannelThreadSuggestedMentionList = ({
|
|
|
98
99
|
color: colors.onBackground01,
|
|
99
100
|
numberOfLines: 1,
|
|
100
101
|
style: styles.userNickname
|
|
101
|
-
}, member.nickname || STRINGS.LABELS.USER_NO_NAME), /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Text, {
|
|
102
|
+
}, member.nickname || STRINGS.LABELS.USER_NO_NAME), !!showUserId && /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Text, {
|
|
102
103
|
body3: true,
|
|
103
104
|
color: colors.onBackground03,
|
|
104
105
|
numberOfLines: 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_uikitReactNativeFoundation","_uikitUtils","_useContext","_useKeyboardStatus","_interopRequireDefault","_useMentionSuggestion","_moduleContext","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","GroupChannelThreadSuggestedMentionList","text","selection","inputHeight","bottomInset","onPressToMention","mentionedUsers","width","screenWidth","height","screenHeight","useWindowDimensions","channel","useContext","GroupChannelThreadContexts","Fragment","sdk","mentionManager","useSendbirdChat","STRINGS","useLocalization","colors","useUIKitTheme","topInset","useHeaderStyle","safeArea","useSafeAreaPadding","keyboard","useKeyboardStatus","members","reset","searchStringRange","searchLimited","useMentionSuggestion","isLandscape","isShortened","visible","canRenderMembers","length","maxHeight","styles","suggestion","renderLimitGuide","createElement","View","style","borderTopColor","onBackground04","Icon","icon","size","containerStyle","marginEnd","color","onBackground02","Text","body3","GROUP_CHANNEL_THREAD","MENTION_LIMITED","config","mentionLimit","renderMembers","map","member","Pressable","onPress","key","userId","userContainer","Avatar","uri","profileUrl","userAvatar","userInfo","body2","onBackground01","numberOfLines","userNickname","nickname","LABELS","USER_NO_NAME","onBackground03","Divider","position","bottom","pointerEvents","container","ScrollView","bounces","keyboardDismissMode","keyboardShouldPersistTaps","scrollView","backgroundColor","background","bottomSpace","borderTopWidth","contentContainerStyle","conditionChaining","createStyleSheet","top","start","end","paddingStart","flexDirection","alignItems","justifyContent","flex","flexShrink","lineHeight","textAlignVertical","minWidth","paddingHorizontal","_default","exports"],"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":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,2BAAA,GAAAF,OAAA;AASA,IAAAG,WAAA,GAAAH,OAAA;AAEA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,kBAAA,GAAAC,sBAAA,CAAAN,OAAA;AACA,IAAAO,qBAAA,GAAAD,sBAAA,CAAAN,OAAA;AACA,IAAAQ,cAAA,GAAAR,OAAA;AAAqE,SAAAM,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,yBAAAH,CAAA,6BAAAI,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAD,wBAAA,YAAAA,CAAAH,CAAA,WAAAA,CAAA,GAAAM,CAAA,GAAAD,CAAA,KAAAL,CAAA;AAAA,SAAAV,wBAAAU,CAAA,EAAAK,CAAA,SAAAA,CAAA,IAAAL,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAE,OAAA,EAAAF,CAAA,QAAAM,CAAA,GAAAH,wBAAA,CAAAE,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAP,CAAA,UAAAM,CAAA,CAAAE,GAAA,CAAAR,CAAA,OAAAS,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAf,CAAA,oBAAAe,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAe,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAd,CAAA,EAAAe,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAf,CAAA,CAAAe,CAAA,YAAAN,CAAA,CAAAP,OAAA,GAAAF,CAAA,EAAAM,CAAA,IAAAA,CAAA,CAAAa,GAAA,CAAAnB,CAAA,EAAAS,CAAA,GAAAA,CAAA;AAGrE,MAAMW,sCAAsC,GAAGA,CAAC;EAC9CC,IAAI;EACJC,SAAS;EACTC,WAAW;EACXC,WAAW;EACXC,gBAAgB;EAChBC;AAC+C,CAAC,KAAK;EACrD,MAAM;IAAEC,KAAK,EAAEC,WAAW;IAAEC,MAAM,EAAEC;EAAa,CAAC,GAAG,IAAAC,gCAAmB,EAAC,CAAC;EAC1E,MAAM;IAAEC;EAAQ,CAAC,GAAG,IAAAC,iBAAU,EAACC,yCAA0B,CAACC,QAAQ,CAAC;EACnE,MAAM;IAAEC,GAAG;IAAEC;EAAe,CAAC,GAAG,IAAAC,2BAAe,EAAC,CAAC;EACjD,MAAM;IAAEC;EAAQ,CAAC,GAAG,IAAAC,2BAAe,EAAC,CAAC;EACrC,MAAM;IAAEC;EAAO,CAAC,GAAG,IAAAC,yCAAa,EAAC,CAAC;EAClC,MAAM;IAAEC;EAAS,CAAC,GAAG,IAAAC,0CAAc,EAAC,CAAC;EACrC,MAAMC,QAAQ,GAAG,IAAAC,8BAAkB,EAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;EAEtD,MAAMC,QAAQ,GAAG,IAAAC,0BAAiB,EAAC,CAAC;EAEpC,MAAM;IAAEC,OAAO;IAAEC,KAAK;IAAEC,iBAAiB;IAAEC;EAAc,CAAC,GAAG,IAAAC,6BAAoB,EAAC;IAChFjB,GAAG;IACHf,IAAI;IACJC,SAAS;IACTU,OAAO;IACPN;EACF,CAAC,CAAC;EAEF,MAAM4B,WAAW,GAAG1B,WAAW,GAAGE,YAAY;EAC9C,MAAMyB,WAAW,GAAGD,WAAW,IAAIP,QAAQ,CAACS,OAAO;EACnD,MAAMC,gBAAgB,GAAGR,OAAO,CAACS,MAAM,GAAG,CAAC;EAC3C,MAAMC,SAAS,GAAGJ,WAAW,GAAGzB,YAAY,IAAIa,QAAQ,GAAGpB,WAAW,GAAGwB,QAAQ,CAAClB,MAAM,CAAC,GAAG+B,MAAM,CAACC,UAAU,CAAChC,MAAM;EAEpH,MAAMiC,gBAAgB,GAAGA,CAAA,KAAM;IAC7B,oBACEzE,MAAA,CAAAa,OAAA,CAAA6D,aAAA,CAACvE,YAAA,CAAAwE,IAAI;MAACC,KAAK,EAAE,CAACL,MAAM,CAACR,aAAa,EAAE;QAAEc,cAAc,EAAEzB,MAAM,CAAC0B;MAAe,CAAC;IAAE,gBAC7E9E,MAAA,CAAAa,OAAA,CAAA6D,aAAA,CAACtE,2BAAA,CAAA2E,IAAI;MAACC,IAAI,EAAE,MAAO;MAACC,IAAI,EAAE,EAAG;MAACC,cAAc,EAAE;QAAEC,SAAS,EAAE;MAAE,CAAE;MAACC,KAAK,EAAEhC,MAAM,CAACiC;IAAe,CAAE,CAAC,eAChGrF,MAAA,CAAAa,OAAA,CAAA6D,aAAA,CAACtE,2BAAA,CAAAkF,IAAI;MAACC,KAAK;MAACH,KAAK,EAAEhC,MAAM,CAACiC;IAAe,GACtCnC,OAAO,CAACsC,oBAAoB,CAACC,eAAe,CAACzC,cAAc,CAAC0C,MAAM,CAACC,YAAY,CAC5E,CACF,CAAC;EAEX,CAAC;EAED,MAAMC,aAAa,GAAGA,CAAA,KAAM;IAC1B,oBACE5F,MAAA,CAAAa,OAAA,CAAA6D,aAAA,CAACvE,YAAA,CAAAwE,IAAI,QACFf,OAAO,CAACiC,GAAG,CAAEC,MAAM,IAAK;MACvB,oBACE9F,MAAA,CAAAa,OAAA,CAAA6D,aAAA,CAACvE,YAAA,CAAA4F,SAAS;QACRC,OAAO,EAAEA,CAAA,KAAM;UACb5D,gBAAgB,CAAC0D,MAAM,EAAEhC,iBAAiB,CAAC;UAC3CD,KAAK,CAAC,CAAC;QACT,CAAE;QACFoC,GAAG,EAAEH,MAAM,CAACI,MAAO;QACnBtB,KAAK,EAAEL,MAAM,CAAC4B;MAAc,gBAE5BnG,MAAA,CAAAa,OAAA,CAAA6D,aAAA,CAACtE,2BAAA,CAAAgG,MAAM;QAACnB,IAAI,EAAE,EAAG;QAACoB,GAAG,EAAEP,MAAM,CAACQ,UAAW;QAACpB,cAAc,EAAEX,MAAM,CAACgC;MAAW,CAAE,CAAC,eAC/EvG,MAAA,CAAAa,OAAA,CAAA6D,aAAA,CAACvE,YAAA,CAAAwE,IAAI;QAACC,KAAK,EAAEL,MAAM,CAACiC;MAAS,gBAC3BxG,MAAA,CAAAa,OAAA,CAAA6D,aAAA,CAACtE,2BAAA,CAAAkF,IAAI;QAACmB,KAAK;QAACrB,KAAK,EAAEhC,MAAM,CAACsD,cAAe;QAACC,aAAa,EAAE,CAAE;QAAC/B,KAAK,EAAEL,MAAM,CAACqC;MAAa,GACpFd,MAAM,CAACe,QAAQ,IAAI3D,OAAO,CAAC4D,MAAM,CAACC,YAC/B,CAAC,eACP/G,MAAA,CAAAa,OAAA,CAAA6D,aAAA,CAACtE,2BAAA,CAAAkF,IAAI;QAACC,KAAK;QAACH,KAAK,EAAEhC,MAAM,CAAC4D,cAAe;QAACL,aAAa,EAAE,CAAE;QAAC/B,KAAK,EAAEL,MAAM,CAAC2B;MAAO,GAC9EJ,MAAM,CAACI,MACJ,CAAC,eACPlG,MAAA,CAAAa,OAAA,CAAA6D,aAAA,CAACtE,2BAAA,CAAA6G,OAAO;QAACrC,KAAK,EAAE;UAAEsC,QAAQ,EAAE,UAAU;UAAEC,MAAM,EAAE;QAAE;MAAE,CAAE,CAClD,CACG,CAAC;IAEhB,CAAC,CACG,CAAC;EAEX,CAAC;EAED,oBACEnH,MAAA,CAAAa,OAAA,CAAA6D,aAAA,CAACvE,YAAA,CAAA4F,SAAS;IACRC,OAAO,EAAEnC,KAAM;IACfuD,aAAa,EAAEhD,gBAAgB,GAAG,MAAM,GAAG,MAAO;IAClDQ,KAAK,EAAE,CAACL,MAAM,CAAC8C,SAAS,EAAE;MAAEF,MAAM,EAAEjF,WAAW,GAAGC;IAAY,CAAC;EAAE,gBAEjEnC,MAAA,CAAAa,OAAA,CAAA6D,aAAA,CAACvE,YAAA,CAAAmH,UAAU;IACTC,OAAO,EAAE,KAAM;IACfC,mBAAmB,EAAE,MAAO;IAC5BC,yBAAyB,EAAE,QAAS;IACpC7C,KAAK,EAAE,CACLL,MAAM,CAACmD,UAAU,EACjB;MACEpD,SAAS;MACTqD,eAAe,EAAEvE,MAAM,CAACwE,UAAU;MAClCT,MAAM,EAAEzD,QAAQ,CAACmE;IACnB,CAAC,EACDzD,gBAAgB,IAAI;MAClB0D,cAAc,EAAE,CAAC;MACjBjD,cAAc,EAAEzB,MAAM,CAAC0B;IACzB,CAAC,CACD;IACFiD,qBAAqB,EAAEvE;EAAS,GAE/B,IAAAwE,6BAAiB,EAAC,CAACjE,aAAa,EAAEK,gBAAgB,CAAC,EAAE,CAACK,gBAAgB,CAAC,CAAC,EAAEmB,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CACvF,CACH,CAAC;AAEhB,CAAC;AAED,MAAMrB,MAAM,GAAG,IAAA0D,4CAAgB,EAAC;EAC9BzD,UAAU,EAAE;IACVhC,MAAM,EAAE;EACV,CAAC;EACD6E,SAAS,EAAE;IACTH,QAAQ,EAAE,UAAU;IACpBgB,GAAG,EAAE,CAAC;IACNC,KAAK,EAAE,CAAC;IACRC,GAAG,EAAE;EACP,CAAC;EACDV,UAAU,EAAE;IACVR,QAAQ,EAAE,UAAU;IACpBiB,KAAK,EAAE,CAAC;IACRC,GAAG,EAAE;EACP,CAAC;EACDjC,aAAa,EAAE;IACbkC,YAAY,EAAE,EAAE;IAChBC,aAAa,EAAE,KAAK;IACpB9F,MAAM,EAAE,EAAE;IACV+F,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDjC,UAAU,EAAE;IACVpB,SAAS,EAAE;EACb,CAAC;EACDqB,QAAQ,EAAE;IACR8B,aAAa,EAAE,KAAK;IACpBG,IAAI,EAAE;EACR,CAAC;EACD7B,YAAY,EAAE;IACZ8B,UAAU,EAAE,CAAC;IACbC,UAAU,EAAE,EAAE;IACdC,iBAAiB,EAAE,QAAQ;IAC3BzD,SAAS,EAAE;EACb,CAAC;EACDe,MAAM,EAAE;IACNyC,UAAU,EAAE,EAAE;IACdC,iBAAiB,EAAE,QAAQ;IAC3BC,QAAQ,EAAE,EAAE;IACZH,UAAU,EAAE,CAAC;IACbvD,SAAS,EAAE;EACb,CAAC;EACDpB,aAAa,EAAE;IACb+D,cAAc,EAAE,CAAC;IACjBgB,iBAAiB,EAAE,EAAE;IACrBtG,MAAM,EAAE,EAAE;IACV8F,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE;EACd;AACF,CAAC,CAAC;AAAC,IAAAQ,QAAA,GAAAC,OAAA,CAAAnI,OAAA,GACYkB,sCAAsC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_uikitReactNativeFoundation","_uikitUtils","_useContext","_useKeyboardStatus","_interopRequireDefault","_useMentionSuggestion","_moduleContext","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","GroupChannelThreadSuggestedMentionList","text","selection","inputHeight","bottomInset","onPressToMention","mentionedUsers","showUserId","width","screenWidth","height","screenHeight","useWindowDimensions","channel","useContext","GroupChannelThreadContexts","Fragment","sdk","mentionManager","useSendbirdChat","STRINGS","useLocalization","colors","useUIKitTheme","topInset","useHeaderStyle","safeArea","useSafeAreaPadding","keyboard","useKeyboardStatus","members","reset","searchStringRange","searchLimited","useMentionSuggestion","isLandscape","isShortened","visible","canRenderMembers","length","maxHeight","styles","suggestion","renderLimitGuide","createElement","View","style","borderTopColor","onBackground04","Icon","icon","size","containerStyle","marginEnd","color","onBackground02","Text","body3","GROUP_CHANNEL_THREAD","MENTION_LIMITED","config","mentionLimit","renderMembers","map","member","Pressable","onPress","key","userId","userContainer","Avatar","uri","profileUrl","userAvatar","userInfo","body2","onBackground01","numberOfLines","userNickname","nickname","LABELS","USER_NO_NAME","onBackground03","Divider","position","bottom","pointerEvents","container","ScrollView","bounces","keyboardDismissMode","keyboardShouldPersistTaps","scrollView","backgroundColor","background","bottomSpace","borderTopWidth","contentContainerStyle","conditionChaining","createStyleSheet","top","start","end","paddingStart","flexDirection","alignItems","justifyContent","flex","flexShrink","lineHeight","textAlignVertical","minWidth","paddingHorizontal","_default","exports"],"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":[]}
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
+
var _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundation");
|
|
7
8
|
var _InternalLocalCacheStorage = _interopRequireDefault(require("./InternalLocalCacheStorage"));
|
|
8
9
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
10
|
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; }
|
|
@@ -69,6 +70,11 @@ class EmojiManager {
|
|
|
69
70
|
get allEmoji() {
|
|
70
71
|
return this._allEmoji;
|
|
71
72
|
}
|
|
73
|
+
getEmojiIconSource(emoji) {
|
|
74
|
+
return emoji !== null && emoji !== void 0 && emoji.url ? {
|
|
75
|
+
uri: emoji.url
|
|
76
|
+
} : _uikitReactNativeFoundation.Icon.Assets.question;
|
|
77
|
+
}
|
|
72
78
|
get emojiHash() {
|
|
73
79
|
var _this$emojiStorage$co;
|
|
74
80
|
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":["
|
|
1
|
+
{"version":3,"names":["_uikitReactNativeFoundation","require","_InternalLocalCacheStorage","_interopRequireDefault","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","MemoryStorage","constructor","getAllKeys","keys","_data","getItem","key","removeItem","setItem","EmojiManager","internalStorage","InternalLocalCacheStorage","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","Icon","Assets","question","emojiHash","_this$emojiStorage$co","_default","exports"],"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/commonjs/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["VERSION","_default","exports","default"],"sources":["version.ts"],"sourcesContent":["const VERSION = '3.8.
|
|
1
|
+
{"version":3,"names":["VERSION","_default","exports","default"],"sources":["version.ts"],"sourcesContent":["const VERSION = '3.8.2';\nexport default VERSION;\n"],"mappings":";;;;;;AAAA,MAAMA,OAAO,GAAG,OAAO;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GACTH,OAAO","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useMemo","useState","KeyboardAvoidingView","Platform","StyleSheet","View","createStyleSheet","useUIKitTheme","Logger","replace","useIIFE","useSafeAreaPadding","useSendbirdChat","useMentionTextInput","AttachmentsButton","EditInput","MessageToReplyPreview","SendInput","VoiceMessageInput","AUTO_FOCUS","select","ios","android","default","KEYBOARD_AVOID_VIEW_BEHAVIOR","undefined","ChannelInput","props","channel","keyboardAvoidOffset","messageToEdit","setMessageToEdit","safeArea","colors","typography","sbOptions","mentionManager","selection","onSelectionChange","textInputRef","text","onChangeText","mentionedUsers","inputMode","isFileMessage","mentionAvailable","uikit","groupChannel","enableMention","isGroupChannel","isBroadcast","inputKeyToRemount","inputHeight","setInputHeight","styles","inputDefault","height","fontStyle","body3","fontSize","lineHeight","textAlignVertical","textInputStyle","flatten","input","style","useTypingTrigger","useTextClearOnDisabled","inputDisabled","useAutoFocusOnEditMode","onPressToMention","user","searchStringRange","mentionedMessageText","asMentionedMessageText","range","start","end","length","shouldRenderInput","createElement","SafeAreaBottom","paddingBottom","Fragment","keyboardVerticalOffset","behavior","paddingStart","paddingEnd","backgroundColor","background","onLayout","e","nativeEvent","layout","inputContainer","_extends","key","ref","autoFocus","SuggestedMentionList","topInset","paddingTop","bottomInset","triggerTyping","action","endTyping","startTyping","catch","error","debug","setText","chatDisabled","isUserMessage","setTimeout","_textInputRef$current","current","focus","justifyContent","width","flex","marginEnd","borderRadius","minHeight","maxHeight","memo"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { KeyboardAvoidingView, Platform, StyleProp, StyleSheet, TextInput, TextStyle, View } from 'react-native';\n\nimport { createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport {\n Logger,\n SendbirdBaseChannel,\n SendbirdBaseMessage,\n SendbirdFileMessage,\n SendbirdFileMessageCreateParams,\n SendbirdFileMessageUpdateParams,\n SendbirdMember,\n SendbirdUserMessage,\n SendbirdUserMessageCreateParams,\n SendbirdUserMessageUpdateParams,\n replace,\n useIIFE,\n useSafeAreaPadding,\n} from '@sendbird/uikit-utils';\n\nimport { useSendbirdChat } from '../../hooks/useContext';\nimport useMentionTextInput from '../../hooks/useMentionTextInput';\nimport type { CommonComponent, MentionedUser, Range } from '../../types';\nimport type { AttachmentsButtonProps } from './AttachmentsButton';\nimport AttachmentsButton from './AttachmentsButton';\nimport EditInput from './EditInput';\nimport type { MessageToReplyPreviewProps } from './MessageToReplyPreview';\nimport { MessageToReplyPreview } from './MessageToReplyPreview';\nimport SendInput from './SendInput';\nimport VoiceMessageInput, { VoiceMessageInputProps } from './VoiceMessageInput';\n\nexport type SuggestedMentionListProps = {\n text: string;\n selection: Range;\n topInset: number;\n bottomInset: number;\n inputHeight: number;\n onPressToMention: (user: SendbirdMember, searchStringRange: Range) => void;\n mentionedUsers: MentionedUser[];\n};\n\nexport type ChannelInputProps = {\n // style\n style?: StyleProp<TextStyle>;\n\n // default\n channel: SendbirdBaseChannel;\n shouldRenderInput: boolean;\n keyboardAvoidOffset: number;\n\n // default actions\n onPressSendUserMessage: (params: SendbirdUserMessageCreateParams) => Promise<void>;\n onPressSendFileMessage: (params: SendbirdFileMessageCreateParams) => Promise<void>;\n onPressUpdateUserMessage: (message: SendbirdUserMessage, params: SendbirdUserMessageUpdateParams) => Promise<void>;\n onPressUpdateFileMessage: (message: SendbirdFileMessage, params: SendbirdFileMessageUpdateParams) => Promise<void>;\n\n // input status\n inputFrozen: boolean;\n inputMuted: boolean;\n inputDisabled: boolean;\n\n // edit\n messageToEdit: undefined | SendbirdUserMessage | SendbirdFileMessage;\n setMessageToEdit: (message?: undefined | SendbirdUserMessage | SendbirdFileMessage) => void;\n\n // reply - only available on group channel\n messageToReply?: undefined | SendbirdUserMessage | SendbirdFileMessage;\n setMessageToReply?: (message?: undefined | SendbirdUserMessage | SendbirdFileMessage) => void;\n messageForThread?: undefined | SendbirdUserMessage | SendbirdFileMessage;\n\n // mention\n SuggestedMentionList?: CommonComponent<SuggestedMentionListProps>;\n\n // sub-components\n AttachmentsButton?: (props: AttachmentsButtonProps) => React.ReactNode | null;\n MessageToReplyPreview?: (props: MessageToReplyPreviewProps) => React.ReactNode | null;\n VoiceMessageInput?: (props: VoiceMessageInputProps) => React.ReactNode | null;\n};\n\nconst AUTO_FOCUS = Platform.select({ ios: false, android: true, default: false });\nconst KEYBOARD_AVOID_VIEW_BEHAVIOR = Platform.select({ ios: 'padding' as const, default: undefined });\n\n// FIXME(iOS): Dynamic style does not work properly when typing the CJK. (https://github.com/facebook/react-native/issues/26107)\n// To workaround temporarily, change the key for re-mount the component.\n// -> This will affect to keyboard blur when add/remove first mentioned user.\n// const GET_INPUT_KEY = (shouldReset: boolean) => {\n// return Platform.OS === 'ios' && shouldReset ? 'uikit-input-clear' : 'uikit-input';\n// };\n\n// TODO: Refactor 'Edit' mode to clearly\nconst ChannelInput = (props: ChannelInputProps) => {\n const { channel, keyboardAvoidOffset, messageToEdit, setMessageToEdit } = props;\n\n const safeArea = useSafeAreaPadding(['top', 'left', 'right', 'bottom']);\n const { colors, typography } = useUIKitTheme();\n const { sbOptions, mentionManager } = useSendbirdChat();\n\n const { selection, onSelectionChange, textInputRef, text, onChangeText, mentionedUsers } = useMentionTextInput({\n messageToEdit,\n });\n const inputMode = useIIFE(() => {\n if (messageToEdit && !messageToEdit.isFileMessage()) return 'edit';\n else return 'send';\n });\n\n const mentionAvailable =\n sbOptions.uikit.groupChannel.channel.enableMention && channel.isGroupChannel() && !channel.isBroadcast;\n const inputKeyToRemount = 'input'; //GET_INPUT_KEY(mentionAvailable ? mentionedUsers.length === 0 : false);\n\n const [inputHeight, setInputHeight] = useState(styles.inputDefault.height);\n\n const fontStyle = useMemo(() => {\n if (!typography.body3.fontSize) return typography.body3;\n // NOTE: iOS does not support textAlignVertical, so we should adjust lineHeight to center the text in multiline TextInput.\n return { ...typography.body3, lineHeight: typography.body3.fontSize * 1.275, textAlignVertical: 'center' };\n }, [typography.body3.fontSize]);\n\n const textInputStyle = StyleSheet.flatten([styles.input, fontStyle, props.style]);\n\n useTypingTrigger(text, channel);\n useTextClearOnDisabled(onChangeText, props.inputDisabled);\n useAutoFocusOnEditMode(textInputRef, messageToEdit);\n\n const onPressToMention = (user: SendbirdMember, searchStringRange: Range) => {\n const mentionedMessageText = mentionManager.asMentionedMessageText(user, true);\n const range = { start: searchStringRange.start, end: searchStringRange.start + mentionedMessageText.length - 1 };\n\n onChangeText(replace(text, searchStringRange.start, searchStringRange.end, mentionedMessageText), { user, range });\n };\n\n if (!props.shouldRenderInput) {\n return <SafeAreaBottom height={safeArea.paddingBottom} />;\n }\n\n return (\n <>\n <KeyboardAvoidingView\n keyboardVerticalOffset={-safeArea.paddingBottom + keyboardAvoidOffset}\n behavior={KEYBOARD_AVOID_VIEW_BEHAVIOR}\n >\n <View\n style={{\n paddingStart: safeArea.paddingStart,\n paddingEnd: safeArea.paddingEnd,\n backgroundColor: colors.background,\n }}\n >\n <View onLayout={(e) => setInputHeight(e.nativeEvent.layout.height)} style={styles.inputContainer}>\n {inputMode === 'send' && (\n <SendInput\n {...props}\n key={inputKeyToRemount}\n ref={textInputRef as never}\n text={text}\n onChangeText={onChangeText}\n onSelectionChange={onSelectionChange}\n mentionedUsers={mentionedUsers}\n VoiceMessageInput={props.VoiceMessageInput ?? VoiceMessageInput}\n AttachmentsButton={props.AttachmentsButton ?? AttachmentsButton}\n MessageToReplyPreview={props.MessageToReplyPreview ?? MessageToReplyPreview}\n style={textInputStyle}\n />\n )}\n {inputMode === 'edit' && messageToEdit && (\n <EditInput\n {...props}\n key={inputKeyToRemount}\n ref={textInputRef as never}\n text={text}\n onChangeText={onChangeText}\n autoFocus={AUTO_FOCUS}\n onSelectionChange={onSelectionChange}\n mentionedUsers={mentionedUsers}\n messageToEdit={messageToEdit}\n setMessageToEdit={setMessageToEdit}\n style={textInputStyle}\n />\n )}\n </View>\n <SafeAreaBottom height={safeArea.paddingBottom} />\n </View>\n </KeyboardAvoidingView>\n {mentionAvailable && props.SuggestedMentionList && (\n <props.SuggestedMentionList\n text={text}\n selection={selection}\n inputHeight={inputHeight}\n topInset={safeArea.paddingTop}\n bottomInset={safeArea.paddingBottom}\n onPressToMention={onPressToMention}\n mentionedUsers={mentionedUsers}\n />\n )}\n </>\n );\n};\n\nconst useTypingTrigger = (text: string, channel: SendbirdBaseChannel) => {\n useEffect(\n () => {\n function triggerTyping() {\n if (channel.isGroupChannel()) {\n const action = () => (text.length === 0 ? channel.endTyping() : channel.startTyping());\n action().catch((error) => {\n Logger.debug('ChannelInput: Failed to trigger typing', error);\n });\n }\n }\n\n triggerTyping();\n },\n channel.isGroupChannel() ? [text] : [],\n );\n};\n\nconst useTextClearOnDisabled = (setText: (val: string) => void, chatDisabled: boolean) => {\n useEffect(() => {\n if (chatDisabled) setText('');\n }, [chatDisabled]);\n};\n\nconst useAutoFocusOnEditMode = (\n textInputRef: React.MutableRefObject<TextInput | undefined>,\n messageToEdit?: SendbirdBaseMessage,\n) => {\n useEffect(() => {\n if (messageToEdit?.isUserMessage()) {\n if (!AUTO_FOCUS) setTimeout(() => textInputRef.current?.focus(), 500);\n }\n }, [messageToEdit]);\n};\n\nconst SafeAreaBottom = ({ height }: { height: number }) => {\n return <View style={{ height }} />;\n};\n\nconst styles = createStyleSheet({\n inputContainer: {\n justifyContent: 'center',\n width: '100%',\n },\n inputDefault: {\n height: 56,\n },\n input: {\n flex: 1,\n marginEnd: 4,\n borderRadius: 20,\n paddingTop: 8,\n paddingBottom: 8,\n minHeight: 36,\n // Android - padding area is hidden\n // iOS - padding area is visible\n maxHeight: Platform.select({ ios: 36 * 2 + 16, android: 36 * 2 }),\n },\n});\n\nexport default React.memo(ChannelInput);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useEffect","useMemo","useState","KeyboardAvoidingView","Platform","StyleSheet","View","createStyleSheet","useUIKitTheme","Logger","replace","useIIFE","useSafeAreaPadding","useSendbirdChat","useMentionTextInput","AttachmentsButton","EditInput","MessageToReplyPreview","SendInput","VoiceMessageInput","AUTO_FOCUS","select","ios","android","default","KEYBOARD_AVOID_VIEW_BEHAVIOR","undefined","ChannelInput","props","channel","keyboardAvoidOffset","messageToEdit","setMessageToEdit","safeArea","colors","typography","sbOptions","mentionManager","selection","onSelectionChange","textInputRef","text","onChangeText","mentionedUsers","inputMode","isFileMessage","mentionAvailable","uikit","groupChannel","enableMention","isGroupChannel","isBroadcast","inputKeyToRemount","inputHeight","setInputHeight","styles","inputDefault","height","fontStyle","body3","fontSize","lineHeight","textAlignVertical","textInputStyle","flatten","input","style","useTypingTrigger","useTextClearOnDisabled","inputDisabled","useAutoFocusOnEditMode","onPressToMention","user","searchStringRange","mentionedMessageText","asMentionedMessageText","range","start","end","length","shouldRenderInput","createElement","SafeAreaBottom","paddingBottom","Fragment","keyboardVerticalOffset","behavior","paddingStart","paddingEnd","backgroundColor","background","onLayout","e","nativeEvent","layout","inputContainer","_extends","key","ref","autoFocus","SuggestedMentionList","topInset","paddingTop","bottomInset","triggerTyping","action","endTyping","startTyping","catch","error","debug","setText","chatDisabled","isUserMessage","setTimeout","_textInputRef$current","current","focus","justifyContent","width","flex","marginEnd","borderRadius","minHeight","maxHeight","memo"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { KeyboardAvoidingView, Platform, StyleProp, StyleSheet, TextInput, TextStyle, View } from 'react-native';\n\nimport { createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport {\n Logger,\n SendbirdBaseChannel,\n SendbirdBaseMessage,\n SendbirdFileMessage,\n SendbirdFileMessageCreateParams,\n SendbirdFileMessageUpdateParams,\n SendbirdMember,\n SendbirdUserMessage,\n SendbirdUserMessageCreateParams,\n SendbirdUserMessageUpdateParams,\n replace,\n useIIFE,\n useSafeAreaPadding,\n} from '@sendbird/uikit-utils';\n\nimport { useSendbirdChat } from '../../hooks/useContext';\nimport useMentionTextInput from '../../hooks/useMentionTextInput';\nimport type { CommonComponent, MentionedUser, Range } from '../../types';\nimport type { AttachmentsButtonProps } from './AttachmentsButton';\nimport AttachmentsButton from './AttachmentsButton';\nimport EditInput from './EditInput';\nimport type { MessageToReplyPreviewProps } from './MessageToReplyPreview';\nimport { MessageToReplyPreview } from './MessageToReplyPreview';\nimport SendInput from './SendInput';\nimport VoiceMessageInput, { VoiceMessageInputProps } from './VoiceMessageInput';\n\nexport type SuggestedMentionListProps = {\n text: string;\n selection: Range;\n topInset: number;\n bottomInset: number;\n inputHeight: number;\n onPressToMention: (user: SendbirdMember, searchStringRange: Range) => void;\n mentionedUsers: MentionedUser[];\n /**\n * Whether to show user id information on each item.\n * */\n showUserId?: boolean;\n};\n\nexport type ChannelInputProps = {\n // style\n style?: StyleProp<TextStyle>;\n\n // default\n channel: SendbirdBaseChannel;\n shouldRenderInput: boolean;\n keyboardAvoidOffset: number;\n\n // default actions\n onPressSendUserMessage: (params: SendbirdUserMessageCreateParams) => Promise<void>;\n onPressSendFileMessage: (params: SendbirdFileMessageCreateParams) => Promise<void>;\n onPressUpdateUserMessage: (message: SendbirdUserMessage, params: SendbirdUserMessageUpdateParams) => Promise<void>;\n onPressUpdateFileMessage: (message: SendbirdFileMessage, params: SendbirdFileMessageUpdateParams) => Promise<void>;\n\n // input status\n inputFrozen: boolean;\n inputMuted: boolean;\n inputDisabled: boolean;\n\n // edit\n messageToEdit: undefined | SendbirdUserMessage | SendbirdFileMessage;\n setMessageToEdit: (message?: undefined | SendbirdUserMessage | SendbirdFileMessage) => void;\n\n // reply - only available on group channel\n messageToReply?: undefined | SendbirdUserMessage | SendbirdFileMessage;\n setMessageToReply?: (message?: undefined | SendbirdUserMessage | SendbirdFileMessage) => void;\n messageForThread?: undefined | SendbirdUserMessage | SendbirdFileMessage;\n\n // mention\n SuggestedMentionList?: CommonComponent<SuggestedMentionListProps>;\n\n // sub-components\n AttachmentsButton?: (props: AttachmentsButtonProps) => React.ReactNode | null;\n MessageToReplyPreview?: (props: MessageToReplyPreviewProps) => React.ReactNode | null;\n VoiceMessageInput?: (props: VoiceMessageInputProps) => React.ReactNode | null;\n};\n\nconst AUTO_FOCUS = Platform.select({ ios: false, android: true, default: false });\nconst KEYBOARD_AVOID_VIEW_BEHAVIOR = Platform.select({ ios: 'padding' as const, default: undefined });\n\n// FIXME(iOS): Dynamic style does not work properly when typing the CJK. (https://github.com/facebook/react-native/issues/26107)\n// To workaround temporarily, change the key for re-mount the component.\n// -> This will affect to keyboard blur when add/remove first mentioned user.\n// const GET_INPUT_KEY = (shouldReset: boolean) => {\n// return Platform.OS === 'ios' && shouldReset ? 'uikit-input-clear' : 'uikit-input';\n// };\n\n// TODO: Refactor 'Edit' mode to clearly\nconst ChannelInput = (props: ChannelInputProps) => {\n const { channel, keyboardAvoidOffset, messageToEdit, setMessageToEdit } = props;\n\n const safeArea = useSafeAreaPadding(['top', 'left', 'right', 'bottom']);\n const { colors, typography } = useUIKitTheme();\n const { sbOptions, mentionManager } = useSendbirdChat();\n\n const { selection, onSelectionChange, textInputRef, text, onChangeText, mentionedUsers } = useMentionTextInput({\n messageToEdit,\n });\n const inputMode = useIIFE(() => {\n if (messageToEdit && !messageToEdit.isFileMessage()) return 'edit';\n else return 'send';\n });\n\n const mentionAvailable =\n sbOptions.uikit.groupChannel.channel.enableMention && channel.isGroupChannel() && !channel.isBroadcast;\n const inputKeyToRemount = 'input'; //GET_INPUT_KEY(mentionAvailable ? mentionedUsers.length === 0 : false);\n\n const [inputHeight, setInputHeight] = useState(styles.inputDefault.height);\n\n const fontStyle = useMemo(() => {\n if (!typography.body3.fontSize) return typography.body3;\n // NOTE: iOS does not support textAlignVertical, so we should adjust lineHeight to center the text in multiline TextInput.\n return { ...typography.body3, lineHeight: typography.body3.fontSize * 1.275, textAlignVertical: 'center' };\n }, [typography.body3.fontSize]);\n\n const textInputStyle = StyleSheet.flatten([styles.input, fontStyle, props.style]);\n\n useTypingTrigger(text, channel);\n useTextClearOnDisabled(onChangeText, props.inputDisabled);\n useAutoFocusOnEditMode(textInputRef, messageToEdit);\n\n const onPressToMention = (user: SendbirdMember, searchStringRange: Range) => {\n const mentionedMessageText = mentionManager.asMentionedMessageText(user, true);\n const range = { start: searchStringRange.start, end: searchStringRange.start + mentionedMessageText.length - 1 };\n\n onChangeText(replace(text, searchStringRange.start, searchStringRange.end, mentionedMessageText), { user, range });\n };\n\n if (!props.shouldRenderInput) {\n return <SafeAreaBottom height={safeArea.paddingBottom} />;\n }\n\n return (\n <>\n <KeyboardAvoidingView\n keyboardVerticalOffset={-safeArea.paddingBottom + keyboardAvoidOffset}\n behavior={KEYBOARD_AVOID_VIEW_BEHAVIOR}\n >\n <View\n style={{\n paddingStart: safeArea.paddingStart,\n paddingEnd: safeArea.paddingEnd,\n backgroundColor: colors.background,\n }}\n >\n <View onLayout={(e) => setInputHeight(e.nativeEvent.layout.height)} style={styles.inputContainer}>\n {inputMode === 'send' && (\n <SendInput\n {...props}\n key={inputKeyToRemount}\n ref={textInputRef as never}\n text={text}\n onChangeText={onChangeText}\n onSelectionChange={onSelectionChange}\n mentionedUsers={mentionedUsers}\n VoiceMessageInput={props.VoiceMessageInput ?? VoiceMessageInput}\n AttachmentsButton={props.AttachmentsButton ?? AttachmentsButton}\n MessageToReplyPreview={props.MessageToReplyPreview ?? MessageToReplyPreview}\n style={textInputStyle}\n />\n )}\n {inputMode === 'edit' && messageToEdit && (\n <EditInput\n {...props}\n key={inputKeyToRemount}\n ref={textInputRef as never}\n text={text}\n onChangeText={onChangeText}\n autoFocus={AUTO_FOCUS}\n onSelectionChange={onSelectionChange}\n mentionedUsers={mentionedUsers}\n messageToEdit={messageToEdit}\n setMessageToEdit={setMessageToEdit}\n style={textInputStyle}\n />\n )}\n </View>\n <SafeAreaBottom height={safeArea.paddingBottom} />\n </View>\n </KeyboardAvoidingView>\n {mentionAvailable && props.SuggestedMentionList && (\n <props.SuggestedMentionList\n text={text}\n selection={selection}\n inputHeight={inputHeight}\n topInset={safeArea.paddingTop}\n bottomInset={safeArea.paddingBottom}\n onPressToMention={onPressToMention}\n mentionedUsers={mentionedUsers}\n />\n )}\n </>\n );\n};\n\nconst useTypingTrigger = (text: string, channel: SendbirdBaseChannel) => {\n useEffect(\n () => {\n function triggerTyping() {\n if (channel.isGroupChannel()) {\n const action = () => (text.length === 0 ? channel.endTyping() : channel.startTyping());\n action().catch((error) => {\n Logger.debug('ChannelInput: Failed to trigger typing', error);\n });\n }\n }\n\n triggerTyping();\n },\n channel.isGroupChannel() ? [text] : [],\n );\n};\n\nconst useTextClearOnDisabled = (setText: (val: string) => void, chatDisabled: boolean) => {\n useEffect(() => {\n if (chatDisabled) setText('');\n }, [chatDisabled]);\n};\n\nconst useAutoFocusOnEditMode = (\n textInputRef: React.MutableRefObject<TextInput | undefined>,\n messageToEdit?: SendbirdBaseMessage,\n) => {\n useEffect(() => {\n if (messageToEdit?.isUserMessage()) {\n if (!AUTO_FOCUS) setTimeout(() => textInputRef.current?.focus(), 500);\n }\n }, [messageToEdit]);\n};\n\nconst SafeAreaBottom = ({ height }: { height: number }) => {\n return <View style={{ height }} />;\n};\n\nconst styles = createStyleSheet({\n inputContainer: {\n justifyContent: 'center',\n width: '100%',\n },\n inputDefault: {\n height: 56,\n },\n input: {\n flex: 1,\n marginEnd: 4,\n borderRadius: 20,\n paddingTop: 8,\n paddingBottom: 8,\n minHeight: 36,\n // Android - padding area is hidden\n // iOS - padding area is visible\n maxHeight: Platform.select({ ios: 36 * 2 + 16, android: 36 * 2 }),\n },\n});\n\nexport default React.memo(ChannelInput);\n"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAC3D,SAASC,oBAAoB,EAAEC,QAAQ,EAAaC,UAAU,EAAwBC,IAAI,QAAQ,cAAc;AAEhH,SAASC,gBAAgB,EAAEC,aAAa,QAAQ,yCAAyC;AACzF,SACEC,MAAM,EAUNC,OAAO,EACPC,OAAO,EACPC,kBAAkB,QACb,uBAAuB;AAE9B,SAASC,eAAe,QAAQ,wBAAwB;AACxD,OAAOC,mBAAmB,MAAM,iCAAiC;AAGjE,OAAOC,iBAAiB,MAAM,qBAAqB;AACnD,OAAOC,SAAS,MAAM,aAAa;AAEnC,SAASC,qBAAqB,QAAQ,yBAAyB;AAC/D,OAAOC,SAAS,MAAM,aAAa;AACnC,OAAOC,iBAAiB,MAAkC,qBAAqB;AAsD/E,MAAMC,UAAU,GAAGhB,QAAQ,CAACiB,MAAM,CAAC;EAAEC,GAAG,EAAE,KAAK;EAAEC,OAAO,EAAE,IAAI;EAAEC,OAAO,EAAE;AAAM,CAAC,CAAC;AACjF,MAAMC,4BAA4B,GAAGrB,QAAQ,CAACiB,MAAM,CAAC;EAAEC,GAAG,EAAE,SAAkB;EAAEE,OAAO,EAAEE;AAAU,CAAC,CAAC;;AAErG;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAMC,YAAY,GAAIC,KAAwB,IAAK;EACjD,MAAM;IAAEC,OAAO;IAAEC,mBAAmB;IAAEC,aAAa;IAAEC;EAAiB,CAAC,GAAGJ,KAAK;EAE/E,MAAMK,QAAQ,GAAGrB,kBAAkB,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;EACvE,MAAM;IAAEsB,MAAM;IAAEC;EAAW,CAAC,GAAG3B,aAAa,CAAC,CAAC;EAC9C,MAAM;IAAE4B,SAAS;IAAEC;EAAe,CAAC,GAAGxB,eAAe,CAAC,CAAC;EAEvD,MAAM;IAAEyB,SAAS;IAAEC,iBAAiB;IAAEC,YAAY;IAAEC,IAAI;IAAEC,YAAY;IAAEC;EAAe,CAAC,GAAG7B,mBAAmB,CAAC;IAC7GiB;EACF,CAAC,CAAC;EACF,MAAMa,SAAS,GAAGjC,OAAO,CAAC,MAAM;IAC9B,IAAIoB,aAAa,IAAI,CAACA,aAAa,CAACc,aAAa,CAAC,CAAC,EAAE,OAAO,MAAM,CAAC,KAC9D,OAAO,MAAM;EACpB,CAAC,CAAC;EAEF,MAAMC,gBAAgB,GACpBV,SAAS,CAACW,KAAK,CAACC,YAAY,CAACnB,OAAO,CAACoB,aAAa,IAAIpB,OAAO,CAACqB,cAAc,CAAC,CAAC,IAAI,CAACrB,OAAO,CAACsB,WAAW;EACxG,MAAMC,iBAAiB,GAAG,OAAO,CAAC,CAAC;;EAEnC,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGpD,QAAQ,CAACqD,MAAM,CAACC,YAAY,CAACC,MAAM,CAAC;EAE1E,MAAMC,SAAS,GAAGzD,OAAO,CAAC,MAAM;IAC9B,IAAI,CAACkC,UAAU,CAACwB,KAAK,CAACC,QAAQ,EAAE,OAAOzB,UAAU,CAACwB,KAAK;IACvD;IACA,OAAO;MAAE,GAAGxB,UAAU,CAACwB,KAAK;MAAEE,UAAU,EAAE1B,UAAU,CAACwB,KAAK,CAACC,QAAQ,GAAG,KAAK;MAAEE,iBAAiB,EAAE;IAAS,CAAC;EAC5G,CAAC,EAAE,CAAC3B,UAAU,CAACwB,KAAK,CAACC,QAAQ,CAAC,CAAC;EAE/B,MAAMG,cAAc,GAAG1D,UAAU,CAAC2D,OAAO,CAAC,CAACT,MAAM,CAACU,KAAK,EAAEP,SAAS,EAAE9B,KAAK,CAACsC,KAAK,CAAC,CAAC;EAEjFC,gBAAgB,CAAC1B,IAAI,EAAEZ,OAAO,CAAC;EAC/BuC,sBAAsB,CAAC1B,YAAY,EAAEd,KAAK,CAACyC,aAAa,CAAC;EACzDC,sBAAsB,CAAC9B,YAAY,EAAET,aAAa,CAAC;EAEnD,MAAMwC,gBAAgB,GAAGA,CAACC,IAAoB,EAAEC,iBAAwB,KAAK;IAC3E,MAAMC,oBAAoB,GAAGrC,cAAc,CAACsC,sBAAsB,CAACH,IAAI,EAAE,IAAI,CAAC;IAC9E,MAAMI,KAAK,GAAG;MAAEC,KAAK,EAAEJ,iBAAiB,CAACI,KAAK;MAAEC,GAAG,EAAEL,iBAAiB,CAACI,KAAK,GAAGH,oBAAoB,CAACK,MAAM,GAAG;IAAE,CAAC;IAEhHrC,YAAY,CAAChC,OAAO,CAAC+B,IAAI,EAAEgC,iBAAiB,CAACI,KAAK,EAAEJ,iBAAiB,CAACK,GAAG,EAAEJ,oBAAoB,CAAC,EAAE;MAAEF,IAAI;MAAEI;IAAM,CAAC,CAAC;EACpH,CAAC;EAED,IAAI,CAAChD,KAAK,CAACoD,iBAAiB,EAAE;IAC5B,oBAAOjF,KAAA,CAAAkF,aAAA,CAACC,cAAc;MAACzB,MAAM,EAAExB,QAAQ,CAACkD;IAAc,CAAE,CAAC;EAC3D;EAEA,oBACEpF,KAAA,CAAAkF,aAAA,CAAAlF,KAAA,CAAAqF,QAAA,qBACErF,KAAA,CAAAkF,aAAA,CAAC9E,oBAAoB;IACnBkF,sBAAsB,EAAE,CAACpD,QAAQ,CAACkD,aAAa,GAAGrD,mBAAoB;IACtEwD,QAAQ,EAAE7D;EAA6B,gBAEvC1B,KAAA,CAAAkF,aAAA,CAAC3E,IAAI;IACH4D,KAAK,EAAE;MACLqB,YAAY,EAAEtD,QAAQ,CAACsD,YAAY;MACnCC,UAAU,EAAEvD,QAAQ,CAACuD,UAAU;MAC/BC,eAAe,EAAEvD,MAAM,CAACwD;IAC1B;EAAE,gBAEF3F,KAAA,CAAAkF,aAAA,CAAC3E,IAAI;IAACqF,QAAQ,EAAGC,CAAC,IAAKtC,cAAc,CAACsC,CAAC,CAACC,WAAW,CAACC,MAAM,CAACrC,MAAM,CAAE;IAACS,KAAK,EAAEX,MAAM,CAACwC;EAAe,GAC9FnD,SAAS,KAAK,MAAM,iBACnB7C,KAAA,CAAAkF,aAAA,CAAC/D,SAAS,EAAA8E,QAAA,KACJpE,KAAK;IACTqE,GAAG,EAAE7C,iBAAkB;IACvB8C,GAAG,EAAE1D,YAAsB;IAC3BC,IAAI,EAAEA,IAAK;IACXC,YAAY,EAAEA,YAAa;IAC3BH,iBAAiB,EAAEA,iBAAkB;IACrCI,cAAc,EAAEA,cAAe;IAC/BxB,iBAAiB,EAAES,KAAK,CAACT,iBAAiB,IAAIA,iBAAkB;IAChEJ,iBAAiB,EAAEa,KAAK,CAACb,iBAAiB,IAAIA,iBAAkB;IAChEE,qBAAqB,EAAEW,KAAK,CAACX,qBAAqB,IAAIA,qBAAsB;IAC5EiD,KAAK,EAAEH;EAAe,EACvB,CACF,EACAnB,SAAS,KAAK,MAAM,IAAIb,aAAa,iBACpChC,KAAA,CAAAkF,aAAA,CAACjE,SAAS,EAAAgF,QAAA,KACJpE,KAAK;IACTqE,GAAG,EAAE7C,iBAAkB;IACvB8C,GAAG,EAAE1D,YAAsB;IAC3BC,IAAI,EAAEA,IAAK;IACXC,YAAY,EAAEA,YAAa;IAC3ByD,SAAS,EAAE/E,UAAW;IACtBmB,iBAAiB,EAAEA,iBAAkB;IACrCI,cAAc,EAAEA,cAAe;IAC/BZ,aAAa,EAAEA,aAAc;IAC7BC,gBAAgB,EAAEA,gBAAiB;IACnCkC,KAAK,EAAEH;EAAe,EACvB,CAEC,CAAC,eACPhE,KAAA,CAAAkF,aAAA,CAACC,cAAc;IAACzB,MAAM,EAAExB,QAAQ,CAACkD;EAAc,CAAE,CAC7C,CACc,CAAC,EACtBrC,gBAAgB,IAAIlB,KAAK,CAACwE,oBAAoB,iBAC7CrG,KAAA,CAAAkF,aAAA,CAACrD,KAAK,CAACwE,oBAAoB;IACzB3D,IAAI,EAAEA,IAAK;IACXH,SAAS,EAAEA,SAAU;IACrBe,WAAW,EAAEA,WAAY;IACzBgD,QAAQ,EAAEpE,QAAQ,CAACqE,UAAW;IAC9BC,WAAW,EAAEtE,QAAQ,CAACkD,aAAc;IACpCZ,gBAAgB,EAAEA,gBAAiB;IACnC5B,cAAc,EAAEA;EAAe,CAChC,CAEH,CAAC;AAEP,CAAC;AAED,MAAMwB,gBAAgB,GAAGA,CAAC1B,IAAY,EAAEZ,OAA4B,KAAK;EACvE7B,SAAS,CACP,MAAM;IACJ,SAASwG,aAAaA,CAAA,EAAG;MACvB,IAAI3E,OAAO,CAACqB,cAAc,CAAC,CAAC,EAAE;QAC5B,MAAMuD,MAAM,GAAGA,CAAA,KAAOhE,IAAI,CAACsC,MAAM,KAAK,CAAC,GAAGlD,OAAO,CAAC6E,SAAS,CAAC,CAAC,GAAG7E,OAAO,CAAC8E,WAAW,CAAC,CAAE;QACtFF,MAAM,CAAC,CAAC,CAACG,KAAK,CAAEC,KAAK,IAAK;UACxBpG,MAAM,CAACqG,KAAK,CAAC,wCAAwC,EAAED,KAAK,CAAC;QAC/D,CAAC,CAAC;MACJ;IACF;IAEAL,aAAa,CAAC,CAAC;EACjB,CAAC,EACD3E,OAAO,CAACqB,cAAc,CAAC,CAAC,GAAG,CAACT,IAAI,CAAC,GAAG,EACtC,CAAC;AACH,CAAC;AAED,MAAM2B,sBAAsB,GAAGA,CAAC2C,OAA8B,EAAEC,YAAqB,KAAK;EACxFhH,SAAS,CAAC,MAAM;IACd,IAAIgH,YAAY,EAAED,OAAO,CAAC,EAAE,CAAC;EAC/B,CAAC,EAAE,CAACC,YAAY,CAAC,CAAC;AACpB,CAAC;AAED,MAAM1C,sBAAsB,GAAGA,CAC7B9B,YAA2D,EAC3DT,aAAmC,KAChC;EACH/B,SAAS,CAAC,MAAM;IACd,IAAI+B,aAAa,aAAbA,aAAa,eAAbA,aAAa,CAAEkF,aAAa,CAAC,CAAC,EAAE;MAClC,IAAI,CAAC7F,UAAU,EAAE8F,UAAU,CAAC;QAAA,IAAAC,qBAAA;QAAA,QAAAA,qBAAA,GAAM3E,YAAY,CAAC4E,OAAO,cAAAD,qBAAA,uBAApBA,qBAAA,CAAsBE,KAAK,CAAC,CAAC;MAAA,GAAE,GAAG,CAAC;IACvE;EACF,CAAC,EAAE,CAACtF,aAAa,CAAC,CAAC;AACrB,CAAC;AAED,MAAMmD,cAAc,GAAGA,CAAC;EAAEzB;AAA2B,CAAC,KAAK;EACzD,oBAAO1D,KAAA,CAAAkF,aAAA,CAAC3E,IAAI;IAAC4D,KAAK,EAAE;MAAET;IAAO;EAAE,CAAE,CAAC;AACpC,CAAC;AAED,MAAMF,MAAM,GAAGhD,gBAAgB,CAAC;EAC9BwF,cAAc,EAAE;IACduB,cAAc,EAAE,QAAQ;IACxBC,KAAK,EAAE;EACT,CAAC;EACD/D,YAAY,EAAE;IACZC,MAAM,EAAE;EACV,CAAC;EACDQ,KAAK,EAAE;IACLuD,IAAI,EAAE,CAAC;IACPC,SAAS,EAAE,CAAC;IACZC,YAAY,EAAE,EAAE;IAChBpB,UAAU,EAAE,CAAC;IACbnB,aAAa,EAAE,CAAC;IAChBwC,SAAS,EAAE,EAAE;IACb;IACA;IACAC,SAAS,EAAExH,QAAQ,CAACiB,MAAM,CAAC;MAAEC,GAAG,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE;MAAEC,OAAO,EAAE,EAAE,GAAG;IAAE,CAAC;EAClE;AACF,CAAC,CAAC;AAEF,4BAAexB,KAAK,CAAC8H,IAAI,CAAClG,YAAY,CAAC","ignoreList":[]}
|
|
@@ -17,7 +17,7 @@ const createOnPressReaction = (reaction, channel, message, reacted) => {
|
|
|
17
17
|
}
|
|
18
18
|
};
|
|
19
19
|
};
|
|
20
|
-
const createReactionButtons = (channel, message,
|
|
20
|
+
const createReactionButtons = (channel, message, getIconSource, emojiLimit, onOpenReactionList, onOpenReactionUserList, reactionAddonType) => {
|
|
21
21
|
const reactions = message.reactions ?? [];
|
|
22
22
|
const buttons = reactions.map((reaction, index) => {
|
|
23
23
|
const isNotLastOfRow = index % NUM_COL !== NUM_COL - 1;
|
|
@@ -30,7 +30,7 @@ const createReactionButtons = (channel, message, getEmoji, emojiLimit, onOpenRea
|
|
|
30
30
|
}, ({
|
|
31
31
|
pressed
|
|
32
32
|
}) => /*#__PURE__*/React.createElement(ReactionRoundedButton, {
|
|
33
|
-
|
|
33
|
+
source: getIconSource(reaction.key),
|
|
34
34
|
count: getReactionCount(reaction),
|
|
35
35
|
reacted: pressed || reaction.hasCurrentUserReacted,
|
|
36
36
|
style: reactionAddonType === 'default' ? [isNotLastOfRow && styles.marginEnd, isNotLastOfCol && styles.marginBottom] : [styles.marginEnd, styles.marginBottom]
|
|
@@ -75,7 +75,10 @@ const MessageReactionAddon = ({
|
|
|
75
75
|
}
|
|
76
76
|
});
|
|
77
77
|
if (reactionAddonType === 'default' && !((_message$reactions = message.reactions) !== null && _message$reactions !== void 0 && _message$reactions.length)) return null;
|
|
78
|
-
const reactionButtons = createReactionButtons(channel, message,
|
|
78
|
+
const reactionButtons = createReactionButtons(channel, message, reactionKey => {
|
|
79
|
+
const emoji = emojiManager.allEmojiMap[reactionKey];
|
|
80
|
+
return emojiManager.getEmojiIconSource(emoji);
|
|
81
|
+
}, emojiManager.allEmoji.length, () => openReactionList({
|
|
79
82
|
channel,
|
|
80
83
|
message
|
|
81
84
|
}), focusIndex => openReactionUserList({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Pressable","createStyleSheet","useUIKitTheme","useForceUpdate","useGroupChannelHandler","getReactionCount","DEFAULT_LONG_PRESS_DELAY","useReaction","useSendbirdChat","ReactionRoundedButton","NUM_COL","REACTION_MORE_KEY","createOnPressReaction","reaction","channel","message","reacted","deleteReaction","key","addReaction","createReactionButtons","
|
|
1
|
+
{"version":3,"names":["React","Pressable","createStyleSheet","useUIKitTheme","useForceUpdate","useGroupChannelHandler","getReactionCount","DEFAULT_LONG_PRESS_DELAY","useReaction","useSendbirdChat","ReactionRoundedButton","NUM_COL","REACTION_MORE_KEY","createOnPressReaction","reaction","channel","message","reacted","deleteReaction","key","addReaction","createReactionButtons","getIconSource","emojiLimit","onOpenReactionList","onOpenReactionUserList","reactionAddonType","reactions","buttons","map","index","isNotLastOfRow","isNotLastOfCol","length","createElement","onPress","hasCurrentUserReacted","onLongPress","delayLongPress","pressed","source","count","style","styles","marginEnd","marginBottom","push","More","MessageReactionAddon","_message$reactions","colors","sdk","emojiManager","openReactionList","openReactionUserList","forceUpdate","onReactionUpdated","_","event","messageId","applyReactionEvent","reactionButtons","reactionKey","emoji","allEmojiMap","getEmojiIconSource","allEmoji","focusIndex","containerStyle","reactionContainer","reactionThreadParentMessageContainer","backgroundColor","background","borderColor","ui","rounded","enabled","alignItems","flexDirection","flexWrap","padding","borderRadius","borderWidth"],"sources":["MessageReactionAddon.tsx"],"sourcesContent":["import React from 'react';\nimport { ImageProps, Pressable } from 'react-native';\n\nimport { createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { useForceUpdate, useGroupChannelHandler } from '@sendbird/uikit-tools';\nimport type { SendbirdBaseChannel, SendbirdBaseMessage, SendbirdReaction } from '@sendbird/uikit-utils';\nimport { getReactionCount } from '@sendbird/uikit-utils';\n\nimport { DEFAULT_LONG_PRESS_DELAY } from '../../constants';\nimport { useReaction, useSendbirdChat } from '../../hooks/useContext';\nimport ReactionRoundedButton from './ReactionRoundedButton';\n\nconst NUM_COL = 4;\nconst REACTION_MORE_KEY = 'reaction-more-button';\nexport type ReactionAddonType = 'default' | 'thread_parent_message';\n\nconst createOnPressReaction = (\n reaction: SendbirdReaction,\n channel: SendbirdBaseChannel,\n message: SendbirdBaseMessage,\n reacted: boolean,\n) => {\n return () => {\n if (reacted) {\n return channel.deleteReaction(message, reaction.key);\n } else {\n return channel.addReaction(message, reaction.key);\n }\n };\n};\n\nconst createReactionButtons = (\n channel: SendbirdBaseChannel,\n message: SendbirdBaseMessage,\n getIconSource: (reactionKey: string) => ImageProps['source'],\n emojiLimit: number,\n onOpenReactionList: () => void,\n onOpenReactionUserList: (focusIndex: number) => void,\n reactionAddonType?: ReactionAddonType,\n) => {\n const reactions = message.reactions ?? [];\n const buttons = reactions.map((reaction, index) => {\n const isNotLastOfRow = index % NUM_COL !== NUM_COL - 1;\n const isNotLastOfCol = index < NUM_COL && reactions.length >= NUM_COL;\n return (\n <Pressable\n key={reaction.key}\n onPress={createOnPressReaction(reaction, channel, message, reaction.hasCurrentUserReacted)}\n onLongPress={() => onOpenReactionUserList(index)}\n delayLongPress={DEFAULT_LONG_PRESS_DELAY}\n >\n {({ pressed }) => (\n <ReactionRoundedButton\n source={getIconSource(reaction.key)}\n count={getReactionCount(reaction)}\n reacted={pressed || reaction.hasCurrentUserReacted}\n style={\n reactionAddonType === 'default'\n ? [isNotLastOfRow && styles.marginEnd, isNotLastOfCol && styles.marginBottom]\n : [styles.marginEnd, styles.marginBottom]\n }\n />\n )}\n </Pressable>\n );\n });\n if (buttons.length < emojiLimit) {\n buttons.push(\n <Pressable key={REACTION_MORE_KEY} onPress={onOpenReactionList}>\n {({ pressed }) => <ReactionRoundedButton.More pressed={pressed} />}\n </Pressable>,\n );\n }\n\n return buttons;\n};\n\nconst MessageReactionAddon = ({\n channel,\n message,\n reactionAddonType = 'default',\n}: {\n channel: SendbirdBaseChannel;\n message: SendbirdBaseMessage;\n reactionAddonType?: ReactionAddonType;\n}) => {\n const { colors } = useUIKitTheme();\n const { sdk, emojiManager } = useSendbirdChat();\n const { openReactionList, openReactionUserList } = useReaction();\n const forceUpdate = useForceUpdate();\n\n useGroupChannelHandler(sdk, {\n async onReactionUpdated(_, event) {\n if (event.messageId === message.messageId) {\n message.applyReactionEvent(event);\n forceUpdate();\n }\n },\n });\n\n if (reactionAddonType === 'default' && !message.reactions?.length) return null;\n\n const reactionButtons = createReactionButtons(\n channel,\n message,\n (reactionKey) => {\n const emoji = emojiManager.allEmojiMap[reactionKey];\n return emojiManager.getEmojiIconSource(emoji);\n },\n emojiManager.allEmoji.length,\n () => openReactionList({ channel, message }),\n (focusIndex) => openReactionUserList({ channel, message, focusIndex }),\n reactionAddonType,\n );\n\n const containerStyle =\n reactionAddonType === 'default' ? styles.reactionContainer : styles.reactionThreadParentMessageContainer;\n\n return (\n <Pressable\n style={[\n containerStyle,\n { backgroundColor: colors.background, borderColor: colors.ui.reaction.rounded.enabled.background },\n ]}\n >\n {reactionButtons}\n </Pressable>\n );\n};\n\nconst styles = createStyleSheet({\n reactionContainer: {\n alignItems: 'stretch',\n flexDirection: 'row',\n flexWrap: 'wrap',\n padding: 8,\n borderRadius: 16,\n borderWidth: 1,\n },\n reactionThreadParentMessageContainer: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n },\n marginEnd: {\n marginEnd: 4.5,\n },\n marginBottom: {\n marginBottom: 4,\n },\n});\n\nexport default MessageReactionAddon;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,10 +3,11 @@ import { View } from 'react-native';
|
|
|
3
3
|
import { Icon, Image, Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';
|
|
4
4
|
import { truncatedCount } from '@sendbird/uikit-utils';
|
|
5
5
|
const ReactionRoundedButton = ({
|
|
6
|
-
|
|
6
|
+
source,
|
|
7
7
|
count,
|
|
8
8
|
reacted,
|
|
9
|
-
style
|
|
9
|
+
style,
|
|
10
|
+
url
|
|
10
11
|
}) => {
|
|
11
12
|
const {
|
|
12
13
|
colors
|
|
@@ -17,7 +18,7 @@ const ReactionRoundedButton = ({
|
|
|
17
18
|
backgroundColor: reacted ? color.selected.background : color.enabled.background
|
|
18
19
|
}, style]
|
|
19
20
|
}, /*#__PURE__*/React.createElement(Image, {
|
|
20
|
-
source: {
|
|
21
|
+
source: source ? source : {
|
|
21
22
|
uri: url
|
|
22
23
|
},
|
|
23
24
|
style: styles.emoji
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","Icon","Image","Text","createStyleSheet","useUIKitTheme","truncatedCount","ReactionRoundedButton","
|
|
1
|
+
{"version":3,"names":["React","View","Icon","Image","Text","createStyleSheet","useUIKitTheme","truncatedCount","ReactionRoundedButton","source","count","reacted","style","url","colors","color","ui","reaction","rounded","createElement","styles","reactionContainer","backgroundColor","selected","background","enabled","uri","emoji","caption4","onBackground01","numberOfLines","More","pressed","icon","onBackground03","size","flexDirection","justifyContent","alignItems","width","borderRadius","paddingVertical","paddingHorizontal","height","marginEnd","textAlign"],"sources":["ReactionRoundedButton.tsx"],"sourcesContent":["import React from 'react';\nimport { ImageProps, StyleProp, View, ViewStyle } from 'react-native';\n\nimport { Icon, Image, Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { truncatedCount } from '@sendbird/uikit-utils';\n\ntype Props = {\n source: ImageProps['source'];\n count: number;\n reacted: boolean;\n style: StyleProp<ViewStyle>;\n /**\n * @deprecated Please use `source` instead\n * */\n url?: string;\n};\n\nconst ReactionRoundedButton = ({ source, count, reacted, style, url }: Props) => {\n const { colors } = useUIKitTheme();\n const color = colors.ui.reaction.rounded;\n\n return (\n <View\n style={[\n styles.reactionContainer,\n { backgroundColor: reacted ? color.selected.background : color.enabled.background },\n style,\n ]}\n >\n <Image source={source ? source : { uri: url }} style={styles.emoji} />\n <Text caption4 color={colors.onBackground01} numberOfLines={1} style={styles.count}>\n {truncatedCount(count, 99, '')}\n </Text>\n </View>\n );\n};\n\nReactionRoundedButton.More = ({ pressed }: { pressed: boolean }) => {\n const { colors } = useUIKitTheme();\n const color = colors.ui.reaction.rounded;\n\n return (\n <View\n style={[\n styles.reactionContainer,\n { backgroundColor: pressed ? color.selected.background : color.enabled.background },\n ]}\n >\n <Icon icon={'emoji-more'} color={colors.onBackground03} size={20} />\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n reactionContainer: {\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n width: 52,\n borderRadius: 24,\n paddingVertical: 5,\n paddingHorizontal: 8,\n },\n emoji: {\n width: 20,\n height: 20,\n marginEnd: 4,\n },\n count: {\n width: 13,\n textAlign: 'left',\n },\n});\n\nexport default ReactionRoundedButton;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAgCC,IAAI,QAAmB,cAAc;AAErE,SAASC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,gBAAgB,EAAEC,aAAa,QAAQ,yCAAyC;AAC5G,SAASC,cAAc,QAAQ,uBAAuB;AAatD,MAAMC,qBAAqB,GAAGA,CAAC;EAAEC,MAAM;EAAEC,KAAK;EAAEC,OAAO;EAAEC,KAAK;EAAEC;AAAW,CAAC,KAAK;EAC/E,MAAM;IAAEC;EAAO,CAAC,GAAGR,aAAa,CAAC,CAAC;EAClC,MAAMS,KAAK,GAAGD,MAAM,CAACE,EAAE,CAACC,QAAQ,CAACC,OAAO;EAExC,oBACElB,KAAA,CAAAmB,aAAA,CAAClB,IAAI;IACHW,KAAK,EAAE,CACLQ,MAAM,CAACC,iBAAiB,EACxB;MAAEC,eAAe,EAAEX,OAAO,GAAGI,KAAK,CAACQ,QAAQ,CAACC,UAAU,GAAGT,KAAK,CAACU,OAAO,CAACD;IAAW,CAAC,EACnFZ,KAAK;EACL,gBAEFZ,KAAA,CAAAmB,aAAA,CAAChB,KAAK;IAACM,MAAM,EAAEA,MAAM,GAAGA,MAAM,GAAG;MAAEiB,GAAG,EAAEb;IAAI,CAAE;IAACD,KAAK,EAAEQ,MAAM,CAACO;EAAM,CAAE,CAAC,eACtE3B,KAAA,CAAAmB,aAAA,CAACf,IAAI;IAACwB,QAAQ;IAACb,KAAK,EAAED,MAAM,CAACe,cAAe;IAACC,aAAa,EAAE,CAAE;IAAClB,KAAK,EAAEQ,MAAM,CAACV;EAAM,GAChFH,cAAc,CAACG,KAAK,EAAE,EAAE,EAAE,EAAE,CACzB,CACF,CAAC;AAEX,CAAC;AAEDF,qBAAqB,CAACuB,IAAI,GAAG,CAAC;EAAEC;AAA8B,CAAC,KAAK;EAClE,MAAM;IAAElB;EAAO,CAAC,GAAGR,aAAa,CAAC,CAAC;EAClC,MAAMS,KAAK,GAAGD,MAAM,CAACE,EAAE,CAACC,QAAQ,CAACC,OAAO;EAExC,oBACElB,KAAA,CAAAmB,aAAA,CAAClB,IAAI;IACHW,KAAK,EAAE,CACLQ,MAAM,CAACC,iBAAiB,EACxB;MAAEC,eAAe,EAAEU,OAAO,GAAGjB,KAAK,CAACQ,QAAQ,CAACC,UAAU,GAAGT,KAAK,CAACU,OAAO,CAACD;IAAW,CAAC;EACnF,gBAEFxB,KAAA,CAAAmB,aAAA,CAACjB,IAAI;IAAC+B,IAAI,EAAE,YAAa;IAAClB,KAAK,EAAED,MAAM,CAACoB,cAAe;IAACC,IAAI,EAAE;EAAG,CAAE,CAC/D,CAAC;AAEX,CAAC;AAED,MAAMf,MAAM,GAAGf,gBAAgB,CAAC;EAC9BgB,iBAAiB,EAAE;IACjBe,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,KAAK,EAAE,EAAE;IACTC,YAAY,EAAE,EAAE;IAChBC,eAAe,EAAE,CAAC;IAClBC,iBAAiB,EAAE;EACrB,CAAC;EACDf,KAAK,EAAE;IACLY,KAAK,EAAE,EAAE;IACTI,MAAM,EAAE,EAAE;IACVC,SAAS,EAAE;EACb,CAAC;EACDlC,KAAK,EAAE;IACL6B,KAAK,EAAE,EAAE;IACTM,SAAS,EAAE;EACb;AACF,CAAC,CAAC;AAEF,eAAerC,qBAAqB","ignoreList":[]}
|
|
@@ -108,9 +108,7 @@ const ReactionUserListBottomSheet = ({
|
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
110
|
}, /*#__PURE__*/React.createElement(Image, {
|
|
111
|
-
source:
|
|
112
|
-
uri: emoji.url
|
|
113
|
-
},
|
|
111
|
+
source: emojiManager.getEmojiIconSource(emoji),
|
|
114
112
|
style: styles.tabEmoji
|
|
115
113
|
}), /*#__PURE__*/React.createElement(Text, {
|
|
116
114
|
button: true,
|