@sendbird/uikit-react-native 3.8.0 → 3.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/lib/commonjs/components/ChannelInput/index.js.map +1 -1
  2. package/lib/commonjs/components/ReactionAddons/MessageReactionAddon.js +6 -3
  3. package/lib/commonjs/components/ReactionAddons/MessageReactionAddon.js.map +1 -1
  4. package/lib/commonjs/components/ReactionAddons/ReactionRoundedButton.js +4 -3
  5. package/lib/commonjs/components/ReactionAddons/ReactionRoundedButton.js.map +1 -1
  6. package/lib/commonjs/components/ReactionBottomSheets/ReactionUserListBottomSheet.js +1 -3
  7. package/lib/commonjs/components/ReactionBottomSheets/ReactionUserListBottomSheet.js.map +1 -1
  8. package/lib/commonjs/domain/groupChannel/component/GroupChannelSuggestedMentionList.js +3 -2
  9. package/lib/commonjs/domain/groupChannel/component/GroupChannelSuggestedMentionList.js.map +1 -1
  10. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js +3 -2
  11. package/lib/commonjs/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js.map +1 -1
  12. package/lib/commonjs/libs/EmojiManager.js +6 -0
  13. package/lib/commonjs/libs/EmojiManager.js.map +1 -1
  14. package/lib/commonjs/version.js +1 -1
  15. package/lib/commonjs/version.js.map +1 -1
  16. package/lib/module/components/ChannelInput/index.js.map +1 -1
  17. package/lib/module/components/ReactionAddons/MessageReactionAddon.js +6 -3
  18. package/lib/module/components/ReactionAddons/MessageReactionAddon.js.map +1 -1
  19. package/lib/module/components/ReactionAddons/ReactionRoundedButton.js +4 -3
  20. package/lib/module/components/ReactionAddons/ReactionRoundedButton.js.map +1 -1
  21. package/lib/module/components/ReactionBottomSheets/ReactionUserListBottomSheet.js +1 -3
  22. package/lib/module/components/ReactionBottomSheets/ReactionUserListBottomSheet.js.map +1 -1
  23. package/lib/module/domain/groupChannel/component/GroupChannelSuggestedMentionList.js +3 -2
  24. package/lib/module/domain/groupChannel/component/GroupChannelSuggestedMentionList.js.map +1 -1
  25. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js +3 -2
  26. package/lib/module/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.js.map +1 -1
  27. package/lib/module/libs/EmojiManager.js +6 -0
  28. package/lib/module/libs/EmojiManager.js.map +1 -1
  29. package/lib/module/version.js +1 -1
  30. package/lib/module/version.js.map +1 -1
  31. package/lib/typescript/src/components/ChannelInput/index.d.ts +4 -0
  32. package/lib/typescript/src/components/ReactionAddons/ReactionRoundedButton.d.ts +7 -3
  33. package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +1 -1
  34. package/lib/typescript/src/domain/groupChannel/component/GroupChannelSuggestedMentionList.d.ts +1 -1
  35. package/lib/typescript/src/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.d.ts +1 -1
  36. package/lib/typescript/src/libs/EmojiManager.d.ts +3 -1
  37. package/lib/typescript/src/version.d.ts +1 -1
  38. package/package.json +5 -5
  39. package/src/components/ChannelInput/index.tsx +4 -0
  40. package/src/components/ReactionAddons/MessageReactionAddon.tsx +7 -5
  41. package/src/components/ReactionAddons/ReactionRoundedButton.tsx +8 -4
  42. package/src/components/ReactionBottomSheets/ReactionUserListBottomSheet.tsx +9 -3
  43. package/src/domain/groupChannel/component/GroupChannelSuggestedMentionList.tsx +6 -3
  44. package/src/domain/groupChannelThread/component/GroupChannelThreadSuggestedMentionList.tsx +6 -3
  45. package/src/libs/EmojiManager.ts +11 -3
  46. package/src/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_uikitReactNativeFoundation","_uikitUtils","_useContext","_useMentionTextInput","_interopRequireDefault","_AttachmentsButton","_EditInput","_MessageToReplyPreview","_SendInput","_VoiceMessageInput","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","AUTO_FOCUS","Platform","select","ios","android","KEYBOARD_AVOID_VIEW_BEHAVIOR","undefined","ChannelInput","props","channel","keyboardAvoidOffset","messageToEdit","setMessageToEdit","safeArea","useSafeAreaPadding","colors","typography","useUIKitTheme","sbOptions","mentionManager","useSendbirdChat","selection","onSelectionChange","textInputRef","text","onChangeText","mentionedUsers","useMentionTextInput","inputMode","useIIFE","isFileMessage","mentionAvailable","uikit","groupChannel","enableMention","isGroupChannel","isBroadcast","inputKeyToRemount","inputHeight","setInputHeight","useState","styles","inputDefault","height","fontStyle","useMemo","body3","fontSize","lineHeight","textAlignVertical","textInputStyle","StyleSheet","flatten","input","style","useTypingTrigger","useTextClearOnDisabled","inputDisabled","useAutoFocusOnEditMode","onPressToMention","user","searchStringRange","mentionedMessageText","asMentionedMessageText","range","start","end","replace","shouldRenderInput","createElement","SafeAreaBottom","paddingBottom","Fragment","KeyboardAvoidingView","keyboardVerticalOffset","behavior","View","paddingStart","paddingEnd","backgroundColor","background","onLayout","nativeEvent","layout","inputContainer","key","ref","VoiceMessageInput","AttachmentsButton","MessageToReplyPreview","autoFocus","SuggestedMentionList","topInset","paddingTop","bottomInset","useEffect","triggerTyping","action","endTyping","startTyping","catch","error","Logger","debug","setText","chatDisabled","isUserMessage","setTimeout","_textInputRef$current","current","focus","createStyleSheet","justifyContent","width","flex","marginEnd","borderRadius","minHeight","maxHeight","_default","exports","React","memo"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { KeyboardAvoidingView, Platform, StyleProp, StyleSheet, TextInput, TextStyle, View } from 'react-native';\n\nimport { createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport {\n Logger,\n SendbirdBaseChannel,\n SendbirdBaseMessage,\n SendbirdFileMessage,\n SendbirdFileMessageCreateParams,\n SendbirdFileMessageUpdateParams,\n SendbirdMember,\n SendbirdUserMessage,\n SendbirdUserMessageCreateParams,\n SendbirdUserMessageUpdateParams,\n replace,\n useIIFE,\n useSafeAreaPadding,\n} from '@sendbird/uikit-utils';\n\nimport { useSendbirdChat } from '../../hooks/useContext';\nimport useMentionTextInput from '../../hooks/useMentionTextInput';\nimport type { CommonComponent, MentionedUser, Range } from '../../types';\nimport type { AttachmentsButtonProps } from './AttachmentsButton';\nimport AttachmentsButton from './AttachmentsButton';\nimport EditInput from './EditInput';\nimport type { MessageToReplyPreviewProps } from './MessageToReplyPreview';\nimport { MessageToReplyPreview } from './MessageToReplyPreview';\nimport SendInput from './SendInput';\nimport VoiceMessageInput, { VoiceMessageInputProps } from './VoiceMessageInput';\n\nexport type SuggestedMentionListProps = {\n text: string;\n selection: Range;\n topInset: number;\n bottomInset: number;\n inputHeight: number;\n onPressToMention: (user: SendbirdMember, searchStringRange: Range) => void;\n mentionedUsers: MentionedUser[];\n};\n\nexport type ChannelInputProps = {\n // style\n style?: StyleProp<TextStyle>;\n\n // default\n channel: SendbirdBaseChannel;\n shouldRenderInput: boolean;\n keyboardAvoidOffset: number;\n\n // default actions\n onPressSendUserMessage: (params: SendbirdUserMessageCreateParams) => Promise<void>;\n onPressSendFileMessage: (params: SendbirdFileMessageCreateParams) => Promise<void>;\n onPressUpdateUserMessage: (message: SendbirdUserMessage, params: SendbirdUserMessageUpdateParams) => Promise<void>;\n onPressUpdateFileMessage: (message: SendbirdFileMessage, params: SendbirdFileMessageUpdateParams) => Promise<void>;\n\n // input status\n inputFrozen: boolean;\n inputMuted: boolean;\n inputDisabled: boolean;\n\n // edit\n messageToEdit: undefined | SendbirdUserMessage | SendbirdFileMessage;\n setMessageToEdit: (message?: undefined | SendbirdUserMessage | SendbirdFileMessage) => void;\n\n // reply - only available on group channel\n messageToReply?: undefined | SendbirdUserMessage | SendbirdFileMessage;\n setMessageToReply?: (message?: undefined | SendbirdUserMessage | SendbirdFileMessage) => void;\n messageForThread?: undefined | SendbirdUserMessage | SendbirdFileMessage;\n\n // mention\n SuggestedMentionList?: CommonComponent<SuggestedMentionListProps>;\n\n // sub-components\n AttachmentsButton?: (props: AttachmentsButtonProps) => React.ReactNode | null;\n MessageToReplyPreview?: (props: MessageToReplyPreviewProps) => React.ReactNode | null;\n VoiceMessageInput?: (props: VoiceMessageInputProps) => React.ReactNode | null;\n};\n\nconst AUTO_FOCUS = Platform.select({ ios: false, android: true, default: false });\nconst KEYBOARD_AVOID_VIEW_BEHAVIOR = Platform.select({ ios: 'padding' as const, default: undefined });\n\n// FIXME(iOS): Dynamic style does not work properly when typing the CJK. (https://github.com/facebook/react-native/issues/26107)\n// To workaround temporarily, change the key for re-mount the component.\n// -> This will affect to keyboard blur when add/remove first mentioned user.\n// const GET_INPUT_KEY = (shouldReset: boolean) => {\n// return Platform.OS === 'ios' && shouldReset ? 'uikit-input-clear' : 'uikit-input';\n// };\n\n// TODO: Refactor 'Edit' mode to clearly\nconst ChannelInput = (props: ChannelInputProps) => {\n const { channel, keyboardAvoidOffset, messageToEdit, setMessageToEdit } = props;\n\n const safeArea = useSafeAreaPadding(['top', 'left', 'right', 'bottom']);\n const { colors, typography } = useUIKitTheme();\n const { sbOptions, mentionManager } = useSendbirdChat();\n\n const { selection, onSelectionChange, textInputRef, text, onChangeText, mentionedUsers } = useMentionTextInput({\n messageToEdit,\n });\n const inputMode = useIIFE(() => {\n if (messageToEdit && !messageToEdit.isFileMessage()) return 'edit';\n else return 'send';\n });\n\n const mentionAvailable =\n sbOptions.uikit.groupChannel.channel.enableMention && channel.isGroupChannel() && !channel.isBroadcast;\n const inputKeyToRemount = 'input'; //GET_INPUT_KEY(mentionAvailable ? mentionedUsers.length === 0 : false);\n\n const [inputHeight, setInputHeight] = useState(styles.inputDefault.height);\n\n const fontStyle = useMemo(() => {\n if (!typography.body3.fontSize) return typography.body3;\n // NOTE: iOS does not support textAlignVertical, so we should adjust lineHeight to center the text in multiline TextInput.\n return { ...typography.body3, lineHeight: typography.body3.fontSize * 1.275, textAlignVertical: 'center' };\n }, [typography.body3.fontSize]);\n\n const textInputStyle = StyleSheet.flatten([styles.input, fontStyle, props.style]);\n\n useTypingTrigger(text, channel);\n useTextClearOnDisabled(onChangeText, props.inputDisabled);\n useAutoFocusOnEditMode(textInputRef, messageToEdit);\n\n const onPressToMention = (user: SendbirdMember, searchStringRange: Range) => {\n const mentionedMessageText = mentionManager.asMentionedMessageText(user, true);\n const range = { start: searchStringRange.start, end: searchStringRange.start + mentionedMessageText.length - 1 };\n\n onChangeText(replace(text, searchStringRange.start, searchStringRange.end, mentionedMessageText), { user, range });\n };\n\n if (!props.shouldRenderInput) {\n return <SafeAreaBottom height={safeArea.paddingBottom} />;\n }\n\n return (\n <>\n <KeyboardAvoidingView\n keyboardVerticalOffset={-safeArea.paddingBottom + keyboardAvoidOffset}\n behavior={KEYBOARD_AVOID_VIEW_BEHAVIOR}\n >\n <View\n style={{\n paddingStart: safeArea.paddingStart,\n paddingEnd: safeArea.paddingEnd,\n backgroundColor: colors.background,\n }}\n >\n <View onLayout={(e) => setInputHeight(e.nativeEvent.layout.height)} style={styles.inputContainer}>\n {inputMode === 'send' && (\n <SendInput\n {...props}\n key={inputKeyToRemount}\n ref={textInputRef as never}\n text={text}\n onChangeText={onChangeText}\n onSelectionChange={onSelectionChange}\n mentionedUsers={mentionedUsers}\n VoiceMessageInput={props.VoiceMessageInput ?? VoiceMessageInput}\n AttachmentsButton={props.AttachmentsButton ?? AttachmentsButton}\n MessageToReplyPreview={props.MessageToReplyPreview ?? MessageToReplyPreview}\n style={textInputStyle}\n />\n )}\n {inputMode === 'edit' && messageToEdit && (\n <EditInput\n {...props}\n key={inputKeyToRemount}\n ref={textInputRef as never}\n text={text}\n onChangeText={onChangeText}\n autoFocus={AUTO_FOCUS}\n onSelectionChange={onSelectionChange}\n mentionedUsers={mentionedUsers}\n messageToEdit={messageToEdit}\n setMessageToEdit={setMessageToEdit}\n style={textInputStyle}\n />\n )}\n </View>\n <SafeAreaBottom height={safeArea.paddingBottom} />\n </View>\n </KeyboardAvoidingView>\n {mentionAvailable && props.SuggestedMentionList && (\n <props.SuggestedMentionList\n text={text}\n selection={selection}\n inputHeight={inputHeight}\n topInset={safeArea.paddingTop}\n bottomInset={safeArea.paddingBottom}\n onPressToMention={onPressToMention}\n mentionedUsers={mentionedUsers}\n />\n )}\n </>\n );\n};\n\nconst useTypingTrigger = (text: string, channel: SendbirdBaseChannel) => {\n useEffect(\n () => {\n function triggerTyping() {\n if (channel.isGroupChannel()) {\n const action = () => (text.length === 0 ? channel.endTyping() : channel.startTyping());\n action().catch((error) => {\n Logger.debug('ChannelInput: Failed to trigger typing', error);\n });\n }\n }\n\n triggerTyping();\n },\n channel.isGroupChannel() ? [text] : [],\n );\n};\n\nconst useTextClearOnDisabled = (setText: (val: string) => void, chatDisabled: boolean) => {\n useEffect(() => {\n if (chatDisabled) setText('');\n }, [chatDisabled]);\n};\n\nconst useAutoFocusOnEditMode = (\n textInputRef: React.MutableRefObject<TextInput | undefined>,\n messageToEdit?: SendbirdBaseMessage,\n) => {\n useEffect(() => {\n if (messageToEdit?.isUserMessage()) {\n if (!AUTO_FOCUS) setTimeout(() => textInputRef.current?.focus(), 500);\n }\n }, [messageToEdit]);\n};\n\nconst SafeAreaBottom = ({ height }: { height: number }) => {\n return <View style={{ height }} />;\n};\n\nconst styles = createStyleSheet({\n inputContainer: {\n justifyContent: 'center',\n width: '100%',\n },\n inputDefault: {\n height: 56,\n },\n input: {\n flex: 1,\n marginEnd: 4,\n borderRadius: 20,\n paddingTop: 8,\n paddingBottom: 8,\n minHeight: 36,\n // Android - padding area is hidden\n // iOS - padding area is visible\n maxHeight: Platform.select({ ios: 36 * 2 + 16, android: 36 * 2 }),\n },\n});\n\nexport default React.memo(ChannelInput);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_uikitReactNativeFoundation","_uikitUtils","_useContext","_useMentionTextInput","_interopRequireDefault","_AttachmentsButton","_EditInput","_MessageToReplyPreview","_SendInput","_VoiceMessageInput","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","AUTO_FOCUS","Platform","select","ios","android","KEYBOARD_AVOID_VIEW_BEHAVIOR","undefined","ChannelInput","props","channel","keyboardAvoidOffset","messageToEdit","setMessageToEdit","safeArea","useSafeAreaPadding","colors","typography","useUIKitTheme","sbOptions","mentionManager","useSendbirdChat","selection","onSelectionChange","textInputRef","text","onChangeText","mentionedUsers","useMentionTextInput","inputMode","useIIFE","isFileMessage","mentionAvailable","uikit","groupChannel","enableMention","isGroupChannel","isBroadcast","inputKeyToRemount","inputHeight","setInputHeight","useState","styles","inputDefault","height","fontStyle","useMemo","body3","fontSize","lineHeight","textAlignVertical","textInputStyle","StyleSheet","flatten","input","style","useTypingTrigger","useTextClearOnDisabled","inputDisabled","useAutoFocusOnEditMode","onPressToMention","user","searchStringRange","mentionedMessageText","asMentionedMessageText","range","start","end","replace","shouldRenderInput","createElement","SafeAreaBottom","paddingBottom","Fragment","KeyboardAvoidingView","keyboardVerticalOffset","behavior","View","paddingStart","paddingEnd","backgroundColor","background","onLayout","nativeEvent","layout","inputContainer","key","ref","VoiceMessageInput","AttachmentsButton","MessageToReplyPreview","autoFocus","SuggestedMentionList","topInset","paddingTop","bottomInset","useEffect","triggerTyping","action","endTyping","startTyping","catch","error","Logger","debug","setText","chatDisabled","isUserMessage","setTimeout","_textInputRef$current","current","focus","createStyleSheet","justifyContent","width","flex","marginEnd","borderRadius","minHeight","maxHeight","_default","exports","React","memo"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { KeyboardAvoidingView, Platform, StyleProp, StyleSheet, TextInput, TextStyle, View } from 'react-native';\n\nimport { createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport {\n Logger,\n SendbirdBaseChannel,\n SendbirdBaseMessage,\n SendbirdFileMessage,\n SendbirdFileMessageCreateParams,\n SendbirdFileMessageUpdateParams,\n SendbirdMember,\n SendbirdUserMessage,\n SendbirdUserMessageCreateParams,\n SendbirdUserMessageUpdateParams,\n replace,\n useIIFE,\n useSafeAreaPadding,\n} from '@sendbird/uikit-utils';\n\nimport { useSendbirdChat } from '../../hooks/useContext';\nimport useMentionTextInput from '../../hooks/useMentionTextInput';\nimport type { CommonComponent, MentionedUser, Range } from '../../types';\nimport type { AttachmentsButtonProps } from './AttachmentsButton';\nimport AttachmentsButton from './AttachmentsButton';\nimport EditInput from './EditInput';\nimport type { MessageToReplyPreviewProps } from './MessageToReplyPreview';\nimport { MessageToReplyPreview } from './MessageToReplyPreview';\nimport SendInput from './SendInput';\nimport VoiceMessageInput, { VoiceMessageInputProps } from './VoiceMessageInput';\n\nexport type SuggestedMentionListProps = {\n text: string;\n selection: Range;\n topInset: number;\n bottomInset: number;\n inputHeight: number;\n onPressToMention: (user: SendbirdMember, searchStringRange: Range) => void;\n mentionedUsers: MentionedUser[];\n /**\n * Whether to show user id information on each item.\n * */\n showUserId?: boolean;\n};\n\nexport type ChannelInputProps = {\n // style\n style?: StyleProp<TextStyle>;\n\n // default\n channel: SendbirdBaseChannel;\n shouldRenderInput: boolean;\n keyboardAvoidOffset: number;\n\n // default actions\n onPressSendUserMessage: (params: SendbirdUserMessageCreateParams) => Promise<void>;\n onPressSendFileMessage: (params: SendbirdFileMessageCreateParams) => Promise<void>;\n onPressUpdateUserMessage: (message: SendbirdUserMessage, params: SendbirdUserMessageUpdateParams) => Promise<void>;\n onPressUpdateFileMessage: (message: SendbirdFileMessage, params: SendbirdFileMessageUpdateParams) => Promise<void>;\n\n // input status\n inputFrozen: boolean;\n inputMuted: boolean;\n inputDisabled: boolean;\n\n // edit\n messageToEdit: undefined | SendbirdUserMessage | SendbirdFileMessage;\n setMessageToEdit: (message?: undefined | SendbirdUserMessage | SendbirdFileMessage) => void;\n\n // reply - only available on group channel\n messageToReply?: undefined | SendbirdUserMessage | SendbirdFileMessage;\n setMessageToReply?: (message?: undefined | SendbirdUserMessage | SendbirdFileMessage) => void;\n messageForThread?: undefined | SendbirdUserMessage | SendbirdFileMessage;\n\n // mention\n SuggestedMentionList?: CommonComponent<SuggestedMentionListProps>;\n\n // sub-components\n AttachmentsButton?: (props: AttachmentsButtonProps) => React.ReactNode | null;\n MessageToReplyPreview?: (props: MessageToReplyPreviewProps) => React.ReactNode | null;\n VoiceMessageInput?: (props: VoiceMessageInputProps) => React.ReactNode | null;\n};\n\nconst AUTO_FOCUS = Platform.select({ ios: false, android: true, default: false });\nconst KEYBOARD_AVOID_VIEW_BEHAVIOR = Platform.select({ ios: 'padding' as const, default: undefined });\n\n// FIXME(iOS): Dynamic style does not work properly when typing the CJK. (https://github.com/facebook/react-native/issues/26107)\n// To workaround temporarily, change the key for re-mount the component.\n// -> This will affect to keyboard blur when add/remove first mentioned user.\n// const GET_INPUT_KEY = (shouldReset: boolean) => {\n// return Platform.OS === 'ios' && shouldReset ? 'uikit-input-clear' : 'uikit-input';\n// };\n\n// TODO: Refactor 'Edit' mode to clearly\nconst ChannelInput = (props: ChannelInputProps) => {\n const { channel, keyboardAvoidOffset, messageToEdit, setMessageToEdit } = props;\n\n const safeArea = useSafeAreaPadding(['top', 'left', 'right', 'bottom']);\n const { colors, typography } = useUIKitTheme();\n const { sbOptions, mentionManager } = useSendbirdChat();\n\n const { selection, onSelectionChange, textInputRef, text, onChangeText, mentionedUsers } = useMentionTextInput({\n messageToEdit,\n });\n const inputMode = useIIFE(() => {\n if (messageToEdit && !messageToEdit.isFileMessage()) return 'edit';\n else return 'send';\n });\n\n const mentionAvailable =\n sbOptions.uikit.groupChannel.channel.enableMention && channel.isGroupChannel() && !channel.isBroadcast;\n const inputKeyToRemount = 'input'; //GET_INPUT_KEY(mentionAvailable ? mentionedUsers.length === 0 : false);\n\n const [inputHeight, setInputHeight] = useState(styles.inputDefault.height);\n\n const fontStyle = useMemo(() => {\n if (!typography.body3.fontSize) return typography.body3;\n // NOTE: iOS does not support textAlignVertical, so we should adjust lineHeight to center the text in multiline TextInput.\n return { ...typography.body3, lineHeight: typography.body3.fontSize * 1.275, textAlignVertical: 'center' };\n }, [typography.body3.fontSize]);\n\n const textInputStyle = StyleSheet.flatten([styles.input, fontStyle, props.style]);\n\n useTypingTrigger(text, channel);\n useTextClearOnDisabled(onChangeText, props.inputDisabled);\n useAutoFocusOnEditMode(textInputRef, messageToEdit);\n\n const onPressToMention = (user: SendbirdMember, searchStringRange: Range) => {\n const mentionedMessageText = mentionManager.asMentionedMessageText(user, true);\n const range = { start: searchStringRange.start, end: searchStringRange.start + mentionedMessageText.length - 1 };\n\n onChangeText(replace(text, searchStringRange.start, searchStringRange.end, mentionedMessageText), { user, range });\n };\n\n if (!props.shouldRenderInput) {\n return <SafeAreaBottom height={safeArea.paddingBottom} />;\n }\n\n return (\n <>\n <KeyboardAvoidingView\n keyboardVerticalOffset={-safeArea.paddingBottom + keyboardAvoidOffset}\n behavior={KEYBOARD_AVOID_VIEW_BEHAVIOR}\n >\n <View\n style={{\n paddingStart: safeArea.paddingStart,\n paddingEnd: safeArea.paddingEnd,\n backgroundColor: colors.background,\n }}\n >\n <View onLayout={(e) => setInputHeight(e.nativeEvent.layout.height)} style={styles.inputContainer}>\n {inputMode === 'send' && (\n <SendInput\n {...props}\n key={inputKeyToRemount}\n ref={textInputRef as never}\n text={text}\n onChangeText={onChangeText}\n onSelectionChange={onSelectionChange}\n mentionedUsers={mentionedUsers}\n VoiceMessageInput={props.VoiceMessageInput ?? VoiceMessageInput}\n AttachmentsButton={props.AttachmentsButton ?? AttachmentsButton}\n MessageToReplyPreview={props.MessageToReplyPreview ?? MessageToReplyPreview}\n style={textInputStyle}\n />\n )}\n {inputMode === 'edit' && messageToEdit && (\n <EditInput\n {...props}\n key={inputKeyToRemount}\n ref={textInputRef as never}\n text={text}\n onChangeText={onChangeText}\n autoFocus={AUTO_FOCUS}\n onSelectionChange={onSelectionChange}\n mentionedUsers={mentionedUsers}\n messageToEdit={messageToEdit}\n setMessageToEdit={setMessageToEdit}\n style={textInputStyle}\n />\n )}\n </View>\n <SafeAreaBottom height={safeArea.paddingBottom} />\n </View>\n </KeyboardAvoidingView>\n {mentionAvailable && props.SuggestedMentionList && (\n <props.SuggestedMentionList\n text={text}\n selection={selection}\n inputHeight={inputHeight}\n topInset={safeArea.paddingTop}\n bottomInset={safeArea.paddingBottom}\n onPressToMention={onPressToMention}\n mentionedUsers={mentionedUsers}\n />\n )}\n </>\n );\n};\n\nconst useTypingTrigger = (text: string, channel: SendbirdBaseChannel) => {\n useEffect(\n () => {\n function triggerTyping() {\n if (channel.isGroupChannel()) {\n const action = () => (text.length === 0 ? channel.endTyping() : channel.startTyping());\n action().catch((error) => {\n Logger.debug('ChannelInput: Failed to trigger typing', error);\n });\n }\n }\n\n triggerTyping();\n },\n channel.isGroupChannel() ? [text] : [],\n );\n};\n\nconst useTextClearOnDisabled = (setText: (val: string) => void, chatDisabled: boolean) => {\n useEffect(() => {\n if (chatDisabled) setText('');\n }, [chatDisabled]);\n};\n\nconst useAutoFocusOnEditMode = (\n textInputRef: React.MutableRefObject<TextInput | undefined>,\n messageToEdit?: SendbirdBaseMessage,\n) => {\n useEffect(() => {\n if (messageToEdit?.isUserMessage()) {\n if (!AUTO_FOCUS) setTimeout(() => textInputRef.current?.focus(), 500);\n }\n }, [messageToEdit]);\n};\n\nconst SafeAreaBottom = ({ height }: { height: number }) => {\n return <View style={{ height }} />;\n};\n\nconst styles = createStyleSheet({\n inputContainer: {\n justifyContent: 'center',\n width: '100%',\n },\n inputDefault: {\n height: 56,\n },\n input: {\n flex: 1,\n marginEnd: 4,\n borderRadius: 20,\n paddingTop: 8,\n paddingBottom: 8,\n minHeight: 36,\n // Android - padding area is hidden\n // iOS - padding area is visible\n maxHeight: Platform.select({ ios: 36 * 2 + 16, android: 36 * 2 }),\n },\n});\n\nexport default React.memo(ChannelInput);\n"],"mappings":"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","ignoreList":[]}
@@ -24,7 +24,7 @@ const createOnPressReaction = (reaction, channel, message, reacted) => {
24
24
  }
25
25
  };
26
26
  };
27
- const createReactionButtons = (channel, message, getEmoji, emojiLimit, onOpenReactionList, onOpenReactionUserList, reactionAddonType) => {
27
+ const createReactionButtons = (channel, message, getIconSource, emojiLimit, onOpenReactionList, onOpenReactionUserList, reactionAddonType) => {
28
28
  const reactions = message.reactions ?? [];
29
29
  const buttons = reactions.map((reaction, index) => {
30
30
  const isNotLastOfRow = index % NUM_COL !== NUM_COL - 1;
@@ -37,7 +37,7 @@ const createReactionButtons = (channel, message, getEmoji, emojiLimit, onOpenRea
37
37
  }, ({
38
38
  pressed
39
39
  }) => /*#__PURE__*/_react.default.createElement(_ReactionRoundedButton.default, {
40
- url: getEmoji(reaction.key).url,
40
+ source: getIconSource(reaction.key),
41
41
  count: (0, _uikitUtils.getReactionCount)(reaction),
42
42
  reacted: pressed || reaction.hasCurrentUserReacted,
43
43
  style: reactionAddonType === 'default' ? [isNotLastOfRow && styles.marginEnd, isNotLastOfCol && styles.marginBottom] : [styles.marginEnd, styles.marginBottom]
@@ -82,7 +82,10 @@ const MessageReactionAddon = ({
82
82
  }
83
83
  });
84
84
  if (reactionAddonType === 'default' && !((_message$reactions = message.reactions) !== null && _message$reactions !== void 0 && _message$reactions.length)) return null;
85
- const reactionButtons = createReactionButtons(channel, message, key => emojiManager.allEmojiMap[key], emojiManager.allEmoji.length, () => openReactionList({
85
+ const reactionButtons = createReactionButtons(channel, message, reactionKey => {
86
+ const emoji = emojiManager.allEmojiMap[reactionKey];
87
+ return emojiManager.getEmojiIconSource(emoji);
88
+ }, emojiManager.allEmoji.length, () => openReactionList({
86
89
  channel,
87
90
  message
88
91
  }), focusIndex => openReactionUserList({
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_uikitReactNativeFoundation","_uikitTools","_uikitUtils","_constants","_useContext","_ReactionRoundedButton","e","__esModule","default","NUM_COL","REACTION_MORE_KEY","createOnPressReaction","reaction","channel","message","reacted","deleteReaction","key","addReaction","createReactionButtons","getEmoji","emojiLimit","onOpenReactionList","onOpenReactionUserList","reactionAddonType","reactions","buttons","map","index","isNotLastOfRow","isNotLastOfCol","length","createElement","Pressable","onPress","hasCurrentUserReacted","onLongPress","delayLongPress","DEFAULT_LONG_PRESS_DELAY","pressed","url","count","getReactionCount","style","styles","marginEnd","marginBottom","push","More","MessageReactionAddon","_message$reactions","colors","useUIKitTheme","sdk","emojiManager","useSendbirdChat","openReactionList","openReactionUserList","useReaction","forceUpdate","useForceUpdate","useGroupChannelHandler","onReactionUpdated","_","event","messageId","applyReactionEvent","reactionButtons","allEmojiMap","allEmoji","focusIndex","containerStyle","reactionContainer","reactionThreadParentMessageContainer","backgroundColor","background","borderColor","ui","rounded","enabled","createStyleSheet","alignItems","flexDirection","flexWrap","padding","borderRadius","borderWidth","_default","exports"],"sources":["MessageReactionAddon.tsx"],"sourcesContent":["import React from 'react';\nimport { Pressable } from 'react-native';\n\nimport type { Emoji } from '@sendbird/chat';\nimport { createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { useForceUpdate, useGroupChannelHandler } from '@sendbird/uikit-tools';\nimport type { SendbirdBaseChannel, SendbirdBaseMessage, SendbirdReaction } from '@sendbird/uikit-utils';\nimport { getReactionCount } from '@sendbird/uikit-utils';\n\nimport { DEFAULT_LONG_PRESS_DELAY } from '../../constants';\nimport { useReaction, useSendbirdChat } from '../../hooks/useContext';\nimport ReactionRoundedButton from './ReactionRoundedButton';\n\nconst NUM_COL = 4;\nconst REACTION_MORE_KEY = 'reaction-more-button';\nexport type ReactionAddonType = 'default' | 'thread_parent_message';\n\nconst createOnPressReaction = (\n reaction: SendbirdReaction,\n channel: SendbirdBaseChannel,\n message: SendbirdBaseMessage,\n reacted: boolean,\n) => {\n return () => {\n if (reacted) {\n return channel.deleteReaction(message, reaction.key);\n } else {\n return channel.addReaction(message, reaction.key);\n }\n };\n};\n\nconst createReactionButtons = (\n channel: SendbirdBaseChannel,\n message: SendbirdBaseMessage,\n getEmoji: (key: string) => Emoji,\n emojiLimit: number,\n onOpenReactionList: () => void,\n onOpenReactionUserList: (focusIndex: number) => void,\n reactionAddonType?: ReactionAddonType,\n) => {\n const reactions = message.reactions ?? [];\n const buttons = reactions.map((reaction, index) => {\n const isNotLastOfRow = index % NUM_COL !== NUM_COL - 1;\n const isNotLastOfCol = index < NUM_COL && reactions.length >= NUM_COL;\n return (\n <Pressable\n key={reaction.key}\n onPress={createOnPressReaction(reaction, channel, message, reaction.hasCurrentUserReacted)}\n onLongPress={() => onOpenReactionUserList(index)}\n delayLongPress={DEFAULT_LONG_PRESS_DELAY}\n >\n {({ pressed }) => (\n <ReactionRoundedButton\n url={getEmoji(reaction.key).url}\n count={getReactionCount(reaction)}\n reacted={pressed || reaction.hasCurrentUserReacted}\n style={\n reactionAddonType === 'default'\n ? [isNotLastOfRow && styles.marginEnd, isNotLastOfCol && styles.marginBottom]\n : [styles.marginEnd, styles.marginBottom]\n }\n />\n )}\n </Pressable>\n );\n });\n if (buttons.length < emojiLimit) {\n buttons.push(\n <Pressable key={REACTION_MORE_KEY} onPress={onOpenReactionList}>\n {({ pressed }) => <ReactionRoundedButton.More pressed={pressed} />}\n </Pressable>,\n );\n }\n\n return buttons;\n};\n\nconst MessageReactionAddon = ({\n channel,\n message,\n reactionAddonType = 'default',\n}: {\n channel: SendbirdBaseChannel;\n message: SendbirdBaseMessage;\n reactionAddonType?: ReactionAddonType;\n}) => {\n const { colors } = useUIKitTheme();\n const { sdk, emojiManager } = useSendbirdChat();\n const { openReactionList, openReactionUserList } = useReaction();\n const forceUpdate = useForceUpdate();\n\n useGroupChannelHandler(sdk, {\n async onReactionUpdated(_, event) {\n if (event.messageId === message.messageId) {\n message.applyReactionEvent(event);\n forceUpdate();\n }\n },\n });\n\n if (reactionAddonType === 'default' && !message.reactions?.length) return null;\n\n const reactionButtons = createReactionButtons(\n channel,\n message,\n (key) => emojiManager.allEmojiMap[key],\n emojiManager.allEmoji.length,\n () => openReactionList({ channel, message }),\n (focusIndex) => openReactionUserList({ channel, message, focusIndex }),\n reactionAddonType,\n );\n\n const containerStyle =\n reactionAddonType === 'default' ? styles.reactionContainer : styles.reactionThreadParentMessageContainer;\n\n return (\n <Pressable\n style={[\n containerStyle,\n { backgroundColor: colors.background, borderColor: colors.ui.reaction.rounded.enabled.background },\n ]}\n >\n {reactionButtons}\n </Pressable>\n );\n};\n\nconst styles = createStyleSheet({\n reactionContainer: {\n alignItems: 'stretch',\n flexDirection: 'row',\n flexWrap: 'wrap',\n padding: 8,\n borderRadius: 16,\n borderWidth: 1,\n },\n reactionThreadParentMessageContainer: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n },\n marginEnd: {\n marginEnd: 4.5,\n },\n marginBottom: {\n marginBottom: 4,\n },\n});\n\nexport default MessageReactionAddon;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_uikitReactNativeFoundation","_uikitTools","_uikitUtils","_constants","_useContext","_ReactionRoundedButton","e","__esModule","default","NUM_COL","REACTION_MORE_KEY","createOnPressReaction","reaction","channel","message","reacted","deleteReaction","key","addReaction","createReactionButtons","getIconSource","emojiLimit","onOpenReactionList","onOpenReactionUserList","reactionAddonType","reactions","buttons","map","index","isNotLastOfRow","isNotLastOfCol","length","createElement","Pressable","onPress","hasCurrentUserReacted","onLongPress","delayLongPress","DEFAULT_LONG_PRESS_DELAY","pressed","source","count","getReactionCount","style","styles","marginEnd","marginBottom","push","More","MessageReactionAddon","_message$reactions","colors","useUIKitTheme","sdk","emojiManager","useSendbirdChat","openReactionList","openReactionUserList","useReaction","forceUpdate","useForceUpdate","useGroupChannelHandler","onReactionUpdated","_","event","messageId","applyReactionEvent","reactionButtons","reactionKey","emoji","allEmojiMap","getEmojiIconSource","allEmoji","focusIndex","containerStyle","reactionContainer","reactionThreadParentMessageContainer","backgroundColor","background","borderColor","ui","rounded","enabled","createStyleSheet","alignItems","flexDirection","flexWrap","padding","borderRadius","borderWidth","_default","exports"],"sources":["MessageReactionAddon.tsx"],"sourcesContent":["import React from 'react';\nimport { ImageProps, Pressable } from 'react-native';\n\nimport { createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { useForceUpdate, useGroupChannelHandler } from '@sendbird/uikit-tools';\nimport type { SendbirdBaseChannel, SendbirdBaseMessage, SendbirdReaction } from '@sendbird/uikit-utils';\nimport { getReactionCount } from '@sendbird/uikit-utils';\n\nimport { DEFAULT_LONG_PRESS_DELAY } from '../../constants';\nimport { useReaction, useSendbirdChat } from '../../hooks/useContext';\nimport ReactionRoundedButton from './ReactionRoundedButton';\n\nconst NUM_COL = 4;\nconst REACTION_MORE_KEY = 'reaction-more-button';\nexport type ReactionAddonType = 'default' | 'thread_parent_message';\n\nconst createOnPressReaction = (\n reaction: SendbirdReaction,\n channel: SendbirdBaseChannel,\n message: SendbirdBaseMessage,\n reacted: boolean,\n) => {\n return () => {\n if (reacted) {\n return channel.deleteReaction(message, reaction.key);\n } else {\n return channel.addReaction(message, reaction.key);\n }\n };\n};\n\nconst createReactionButtons = (\n channel: SendbirdBaseChannel,\n message: SendbirdBaseMessage,\n getIconSource: (reactionKey: string) => ImageProps['source'],\n emojiLimit: number,\n onOpenReactionList: () => void,\n onOpenReactionUserList: (focusIndex: number) => void,\n reactionAddonType?: ReactionAddonType,\n) => {\n const reactions = message.reactions ?? [];\n const buttons = reactions.map((reaction, index) => {\n const isNotLastOfRow = index % NUM_COL !== NUM_COL - 1;\n const isNotLastOfCol = index < NUM_COL && reactions.length >= NUM_COL;\n return (\n <Pressable\n key={reaction.key}\n onPress={createOnPressReaction(reaction, channel, message, reaction.hasCurrentUserReacted)}\n onLongPress={() => onOpenReactionUserList(index)}\n delayLongPress={DEFAULT_LONG_PRESS_DELAY}\n >\n {({ pressed }) => (\n <ReactionRoundedButton\n source={getIconSource(reaction.key)}\n count={getReactionCount(reaction)}\n reacted={pressed || reaction.hasCurrentUserReacted}\n style={\n reactionAddonType === 'default'\n ? [isNotLastOfRow && styles.marginEnd, isNotLastOfCol && styles.marginBottom]\n : [styles.marginEnd, styles.marginBottom]\n }\n />\n )}\n </Pressable>\n );\n });\n if (buttons.length < emojiLimit) {\n buttons.push(\n <Pressable key={REACTION_MORE_KEY} onPress={onOpenReactionList}>\n {({ pressed }) => <ReactionRoundedButton.More pressed={pressed} />}\n </Pressable>,\n );\n }\n\n return buttons;\n};\n\nconst MessageReactionAddon = ({\n channel,\n message,\n reactionAddonType = 'default',\n}: {\n channel: SendbirdBaseChannel;\n message: SendbirdBaseMessage;\n reactionAddonType?: ReactionAddonType;\n}) => {\n const { colors } = useUIKitTheme();\n const { sdk, emojiManager } = useSendbirdChat();\n const { openReactionList, openReactionUserList } = useReaction();\n const forceUpdate = useForceUpdate();\n\n useGroupChannelHandler(sdk, {\n async onReactionUpdated(_, event) {\n if (event.messageId === message.messageId) {\n message.applyReactionEvent(event);\n forceUpdate();\n }\n },\n });\n\n if (reactionAddonType === 'default' && !message.reactions?.length) return null;\n\n const reactionButtons = createReactionButtons(\n channel,\n message,\n (reactionKey) => {\n const emoji = emojiManager.allEmojiMap[reactionKey];\n return emojiManager.getEmojiIconSource(emoji);\n },\n emojiManager.allEmoji.length,\n () => openReactionList({ channel, message }),\n (focusIndex) => openReactionUserList({ channel, message, focusIndex }),\n reactionAddonType,\n );\n\n const containerStyle =\n reactionAddonType === 'default' ? styles.reactionContainer : styles.reactionThreadParentMessageContainer;\n\n return (\n <Pressable\n style={[\n containerStyle,\n { backgroundColor: colors.background, borderColor: colors.ui.reaction.rounded.enabled.background },\n ]}\n >\n {reactionButtons}\n </Pressable>\n );\n};\n\nconst styles = createStyleSheet({\n reactionContainer: {\n alignItems: 'stretch',\n flexDirection: 'row',\n flexWrap: 'wrap',\n padding: 8,\n borderRadius: 16,\n borderWidth: 1,\n },\n reactionThreadParentMessageContainer: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n },\n marginEnd: {\n marginEnd: 4.5,\n },\n marginBottom: {\n marginBottom: 4,\n },\n});\n\nexport default MessageReactionAddon;\n"],"mappings":"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","ignoreList":[]}
@@ -10,10 +10,11 @@ var _uikitReactNativeFoundation = require("@sendbird/uikit-react-native-foundati
10
10
  var _uikitUtils = require("@sendbird/uikit-utils");
11
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
12
  const ReactionRoundedButton = ({
13
- url,
13
+ source,
14
14
  count,
15
15
  reacted,
16
- style
16
+ style,
17
+ url
17
18
  }) => {
18
19
  const {
19
20
  colors
@@ -24,7 +25,7 @@ const ReactionRoundedButton = ({
24
25
  backgroundColor: reacted ? color.selected.background : color.enabled.background
25
26
  }, style]
26
27
  }, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Image, {
27
- source: {
28
+ source: source ? source : {
28
29
  uri: url
29
30
  },
30
31
  style: styles.emoji
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_uikitReactNativeFoundation","_uikitUtils","e","__esModule","default","ReactionRoundedButton","url","count","reacted","style","colors","useUIKitTheme","color","ui","reaction","rounded","createElement","View","styles","reactionContainer","backgroundColor","selected","background","enabled","Image","source","uri","emoji","Text","caption4","onBackground01","numberOfLines","truncatedCount","More","pressed","Icon","icon","onBackground03","size","createStyleSheet","flexDirection","justifyContent","alignItems","width","borderRadius","paddingVertical","paddingHorizontal","height","marginEnd","textAlign","_default","exports"],"sources":["ReactionRoundedButton.tsx"],"sourcesContent":["import React from 'react';\nimport { 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 url: string;\n count: number;\n reacted: boolean;\n style: StyleProp<ViewStyle>;\n};\n\nconst ReactionRoundedButton = ({ url, count, reacted, style }: 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={{ 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,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,2BAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAAuD,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AASvD,MAAMG,qBAAqB,GAAGA,CAAC;EAAEC,GAAG;EAAEC,KAAK;EAAEC,OAAO;EAAEC;AAAa,CAAC,KAAK;EACvE,MAAM;IAAEC;EAAO,CAAC,GAAG,IAAAC,yCAAa,EAAC,CAAC;EAClC,MAAMC,KAAK,GAAGF,MAAM,CAACG,EAAE,CAACC,QAAQ,CAACC,OAAO;EAExC,oBACEnB,MAAA,CAAAQ,OAAA,CAAAY,aAAA,CAACjB,YAAA,CAAAkB,IAAI;IACHR,KAAK,EAAE,CACLS,MAAM,CAACC,iBAAiB,EACxB;MAAEC,eAAe,EAAEZ,OAAO,GAAGI,KAAK,CAACS,QAAQ,CAACC,UAAU,GAAGV,KAAK,CAACW,OAAO,CAACD;IAAW,CAAC,EACnFb,KAAK;EACL,gBAEFb,MAAA,CAAAQ,OAAA,CAAAY,aAAA,CAAChB,2BAAA,CAAAwB,KAAK;IAACC,MAAM,EAAE;MAAEC,GAAG,EAAEpB;IAAI,CAAE;IAACG,KAAK,EAAES,MAAM,CAACS;EAAM,CAAE,CAAC,eACpD/B,MAAA,CAAAQ,OAAA,CAAAY,aAAA,CAAChB,2BAAA,CAAA4B,IAAI;IAACC,QAAQ;IAACjB,KAAK,EAAEF,MAAM,CAACoB,cAAe;IAACC,aAAa,EAAE,CAAE;IAACtB,KAAK,EAAES,MAAM,CAACX;EAAM,GAChF,IAAAyB,0BAAc,EAACzB,KAAK,EAAE,EAAE,EAAE,EAAE,CACzB,CACF,CAAC;AAEX,CAAC;AAEDF,qBAAqB,CAAC4B,IAAI,GAAG,CAAC;EAAEC;AAA8B,CAAC,KAAK;EAClE,MAAM;IAAExB;EAAO,CAAC,GAAG,IAAAC,yCAAa,EAAC,CAAC;EAClC,MAAMC,KAAK,GAAGF,MAAM,CAACG,EAAE,CAACC,QAAQ,CAACC,OAAO;EAExC,oBACEnB,MAAA,CAAAQ,OAAA,CAAAY,aAAA,CAACjB,YAAA,CAAAkB,IAAI;IACHR,KAAK,EAAE,CACLS,MAAM,CAACC,iBAAiB,EACxB;MAAEC,eAAe,EAAEc,OAAO,GAAGtB,KAAK,CAACS,QAAQ,CAACC,UAAU,GAAGV,KAAK,CAACW,OAAO,CAACD;IAAW,CAAC;EACnF,gBAEF1B,MAAA,CAAAQ,OAAA,CAAAY,aAAA,CAAChB,2BAAA,CAAAmC,IAAI;IAACC,IAAI,EAAE,YAAa;IAACxB,KAAK,EAAEF,MAAM,CAAC2B,cAAe;IAACC,IAAI,EAAE;EAAG,CAAE,CAC/D,CAAC;AAEX,CAAC;AAED,MAAMpB,MAAM,GAAG,IAAAqB,4CAAgB,EAAC;EAC9BpB,iBAAiB,EAAE;IACjBqB,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;EACDnB,KAAK,EAAE;IACLgB,KAAK,EAAE,EAAE;IACTI,MAAM,EAAE,EAAE;IACVC,SAAS,EAAE;EACb,CAAC;EACDzC,KAAK,EAAE;IACLoC,KAAK,EAAE,EAAE;IACTM,SAAS,EAAE;EACb;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAA/C,OAAA,GAEYC,qBAAqB","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_uikitReactNativeFoundation","_uikitUtils","e","__esModule","default","ReactionRoundedButton","source","count","reacted","style","url","colors","useUIKitTheme","color","ui","reaction","rounded","createElement","View","styles","reactionContainer","backgroundColor","selected","background","enabled","Image","uri","emoji","Text","caption4","onBackground01","numberOfLines","truncatedCount","More","pressed","Icon","icon","onBackground03","size","createStyleSheet","flexDirection","justifyContent","alignItems","width","borderRadius","paddingVertical","paddingHorizontal","height","marginEnd","textAlign","_default","exports"],"sources":["ReactionRoundedButton.tsx"],"sourcesContent":["import React from 'react';\nimport { ImageProps, StyleProp, View, ViewStyle } from 'react-native';\n\nimport { Icon, Image, Text, createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport { truncatedCount } from '@sendbird/uikit-utils';\n\ntype Props = {\n source: ImageProps['source'];\n count: number;\n reacted: boolean;\n style: StyleProp<ViewStyle>;\n /**\n * @deprecated Please use `source` instead\n * */\n url?: string;\n};\n\nconst ReactionRoundedButton = ({ source, count, reacted, style, url }: Props) => {\n const { colors } = useUIKitTheme();\n const color = colors.ui.reaction.rounded;\n\n return (\n <View\n style={[\n styles.reactionContainer,\n { backgroundColor: reacted ? color.selected.background : color.enabled.background },\n style,\n ]}\n >\n <Image source={source ? source : { uri: url }} style={styles.emoji} />\n <Text caption4 color={colors.onBackground01} numberOfLines={1} style={styles.count}>\n {truncatedCount(count, 99, '')}\n </Text>\n </View>\n );\n};\n\nReactionRoundedButton.More = ({ pressed }: { pressed: boolean }) => {\n const { colors } = useUIKitTheme();\n const color = colors.ui.reaction.rounded;\n\n return (\n <View\n style={[\n styles.reactionContainer,\n { backgroundColor: pressed ? color.selected.background : color.enabled.background },\n ]}\n >\n <Icon icon={'emoji-more'} color={colors.onBackground03} size={20} />\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n reactionContainer: {\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n width: 52,\n borderRadius: 24,\n paddingVertical: 5,\n paddingHorizontal: 8,\n },\n emoji: {\n width: 20,\n height: 20,\n marginEnd: 4,\n },\n count: {\n width: 13,\n textAlign: 'left',\n },\n});\n\nexport default ReactionRoundedButton;\n"],"mappings":"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","ignoreList":[]}
@@ -116,9 +116,7 @@ const ReactionUserListBottomSheet = ({
116
116
  }
117
117
  }
118
118
  }, /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Image, {
119
- source: {
120
- uri: emoji.url
121
- },
119
+ source: emojiManager.getEmojiIconSource(emoji),
122
120
  style: styles.tabEmoji
123
121
  }), /*#__PURE__*/_react.default.createElement(_uikitReactNativeFoundation.Text, {
124
122
  button: true,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_uikitReactNativeFoundation","_uikitUtils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ReactionUserListBottomSheet","visible","onClose","onDismiss","reactionCtx","chatCtx","localizationCtx","onPressUserProfile","width","useWindowDimensions","safeArea","useSafeAreaPadding","colors","useUIKitTheme","tabIndex","setTabIndex","useState","scrollRef","useRef","tabIndicatorValue","tabIndicatorAnimated","x","Animated","Value","current","focusedWithLayoutCalculated","emojiManager","channel","message","focusIndex","STRINGS","color","ui","reaction","reactions","focusedReaction","containerSafeArea","paddingStart","styles","layout","paddingHorizontal","paddingEnd","focusTab","index","animated","indicatorValue","_scrollRef$current","animateTabIndicator","scrollTo","baseConfig","duration","easing","Easing","inOut","ease","useNativeDriver","parallel","timing","toValue","start","layoutCalculated","filter","Boolean","length","useEffect","renderTabs","createElement","Pressable","style","tabsWrapper","map","isFocused","key","isLastItem","emoji","allEmojiMap","tabItem","marginEnd","onPress","onLayout","indexForLayout","I18nManager","isRTL","nativeEvent","Image","source","uri","url","tabEmoji","Text","button","selected","highlight","enabled","truncatedCount","getReactionCount","View","tabIndicator","backgroundColor","renderPage","userCountDifference","count","sampledUserInfoList","Fragment","reactedUserInfo","isGroupChannel","userId","pageItem","Avatar","size","profileUrl","containerStyle","avatar","subtitle2","flex","nickname","LABELS","USER_NO_NAME","body3","onBackground02","REACTION","MORE_USERS","Modal","type","backgroundStyle","modal","container","paddingBottom","dialog","none","background","ScrollView","ref","horizontal","bounces","showsHorizontalScrollIndicator","contentContainerStyle","tabsContainer","Divider","top","showsVerticalScrollIndicator","pageContainer","createStyleSheet","overflow","borderTopStartRadius","borderTopEndRadius","paddingTop","alignItems","justifyContent","flexGrow","flexDirection","height","position","bottom","_default","exports"],"sources":["ReactionUserListBottomSheet.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Animated, Easing, I18nManager, Pressable, ScrollView, View, useWindowDimensions } from 'react-native';\n\nimport {\n Avatar,\n Divider,\n Image,\n Modal,\n Text,\n createStyleSheet,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport { SendbirdReaction, getReactionCount, truncatedCount, useSafeAreaPadding } from '@sendbird/uikit-utils';\n\nimport type { ReactionBottomSheetProps } from './index';\n\nconst ReactionUserListBottomSheet = ({\n visible,\n onClose,\n onDismiss,\n reactionCtx,\n chatCtx,\n localizationCtx,\n onPressUserProfile,\n}: ReactionBottomSheetProps) => {\n const { width } = useWindowDimensions();\n const safeArea = useSafeAreaPadding(['left', 'right', 'bottom']);\n const { colors } = useUIKitTheme();\n\n const [tabIndex, setTabIndex] = useState(0);\n const scrollRef = useRef<ScrollView>();\n const tabIndicatorValue = useRef<Array<{ x: number; width: number }>>([]);\n const tabIndicatorAnimated = useRef({ x: new Animated.Value(0), width: new Animated.Value(0) }).current;\n const focusedWithLayoutCalculated = useRef(false);\n\n const { emojiManager } = chatCtx;\n const { channel, message, focusIndex } = reactionCtx;\n const { STRINGS } = localizationCtx;\n\n const color = colors.ui.reaction.default;\n const reactions = message?.reactions ?? [];\n const focusedReaction = reactions[tabIndex] as SendbirdReaction | undefined;\n const containerSafeArea = {\n paddingStart: safeArea.paddingStart + styles.layout.paddingHorizontal,\n paddingEnd: safeArea.paddingEnd + styles.layout.paddingHorizontal,\n };\n\n const focusTab = (index: number, animated = true) => {\n const indicatorValue = tabIndicatorValue.current[index];\n if (indicatorValue) {\n setTabIndex(index);\n animateTabIndicator(indicatorValue.x, indicatorValue.width, animated);\n scrollRef.current?.scrollTo({ x: indicatorValue.x, animated });\n }\n };\n\n const animateTabIndicator = (x: number, width: number, animated = true) => {\n const baseConfig = { duration: animated ? 300 : 0, easing: Easing.inOut(Easing.ease), useNativeDriver: false };\n Animated.parallel([\n Animated.timing(tabIndicatorAnimated.x, { toValue: x, ...baseConfig }),\n Animated.timing(tabIndicatorAnimated.width, { toValue: width, ...baseConfig }),\n ]).start();\n };\n\n const layoutCalculated = () => {\n return tabIndicatorValue.current.filter(Boolean).length === reactions.length;\n };\n\n useEffect(() => {\n if (!visible) {\n tabIndicatorValue.current = [];\n tabIndicatorAnimated.x = new Animated.Value(0);\n tabIndicatorAnimated.width = new Animated.Value(0);\n focusedWithLayoutCalculated.current = false;\n }\n }, [visible]);\n\n const renderTabs = () => {\n return (\n <Pressable style={styles.tabsWrapper}>\n {reactions.map((reaction, index) => {\n const isFocused = focusedReaction?.key === reaction.key;\n const isLastItem = reactions.length - 1 === index;\n const emoji = emojiManager.allEmojiMap[reaction.key];\n\n return (\n <Pressable\n key={reaction.key}\n style={[styles.tabItem, isLastItem && { marginEnd: styles.layout.marginEnd }]}\n onPress={() => focusTab(index)}\n onLayout={(e) => {\n const indexForLayout = I18nManager.isRTL ? reactions.length - 1 - index : index;\n tabIndicatorValue.current[indexForLayout] = e.nativeEvent.layout;\n if (layoutCalculated()) {\n if (focusedWithLayoutCalculated.current) {\n // re-calculating layout when screen rotation\n focusTab(tabIndex, false);\n } else {\n focusedWithLayoutCalculated.current = true;\n focusTab(focusIndex);\n }\n }\n }}\n >\n <Image source={{ uri: emoji.url }} style={styles.tabEmoji} />\n <Text button color={isFocused ? color.selected.highlight : color.enabled.highlight}>\n {truncatedCount(getReactionCount(reaction))}\n </Text>\n </Pressable>\n );\n })}\n <Animated.View\n style={[\n styles.tabIndicator,\n {\n start: tabIndicatorAnimated.x,\n width: tabIndicatorAnimated.width,\n backgroundColor: color.selected.highlight,\n },\n ]}\n />\n </Pressable>\n );\n };\n\n const renderPage = () => {\n const userCountDifference = (focusedReaction?.count || 0) - (focusedReaction?.sampledUserInfoList.length || 0);\n\n return (\n <>\n {focusedReaction?.sampledUserInfoList.map((reactedUserInfo) => {\n if (channel?.isGroupChannel()) {\n return (\n <Pressable\n key={reactedUserInfo.userId}\n onPress={async () => {\n await onClose();\n onPressUserProfile(reactedUserInfo);\n }}\n style={styles.pageItem}\n >\n <Avatar size={36} uri={reactedUserInfo?.profileUrl} containerStyle={styles.avatar} />\n <Text subtitle2 style={{ flex: 1 }}>\n {reactedUserInfo?.nickname || STRINGS.LABELS.USER_NO_NAME}\n </Text>\n </Pressable>\n );\n }\n return null;\n })}\n {userCountDifference > 0 && (\n <View style={styles.pageItem}>\n <Text body3 color={colors.onBackground02}>\n {STRINGS.REACTION.MORE_USERS(userCountDifference)}\n </Text>\n </View>\n )}\n </>\n );\n };\n\n return (\n <Modal\n type={'slide-no-gesture'}\n visible={Boolean(visible && channel && message)}\n onClose={onClose}\n onDismiss={onDismiss}\n backgroundStyle={styles.modal}\n >\n <View\n style={[\n styles.container,\n { width, paddingBottom: safeArea.paddingBottom, backgroundColor: colors.ui.dialog.default.none.background },\n ]}\n >\n <ScrollView\n ref={scrollRef as never}\n horizontal\n bounces={false}\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={[containerSafeArea, styles.tabsContainer]}\n >\n {renderTabs()}\n </ScrollView>\n <Divider style={{ top: -1 }} />\n <ScrollView\n bounces={false}\n showsVerticalScrollIndicator={false}\n style={styles.pageContainer}\n contentContainerStyle={containerSafeArea}\n >\n {renderPage()}\n </ScrollView>\n </View>\n </Modal>\n );\n};\n\nconst styles = createStyleSheet({\n layout: {\n paddingHorizontal: 16,\n marginEnd: 0,\n },\n container: {\n overflow: 'hidden',\n borderTopStartRadius: 8,\n borderTopEndRadius: 8,\n paddingTop: 16,\n alignItems: 'center',\n },\n modal: {\n alignItems: 'center',\n justifyContent: 'flex-end',\n },\n tabsContainer: {\n flexGrow: 1,\n },\n tabsWrapper: {\n flexGrow: 1,\n flexDirection: 'row',\n alignItems: 'flex-start',\n justifyContent: 'center',\n height: 44,\n },\n tabItem: {\n marginEnd: 16,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n tabEmoji: {\n width: 28,\n height: 28,\n marginEnd: 4,\n },\n tabIndicator: {\n position: 'absolute',\n bottom: 0,\n height: 3,\n },\n pageContainer: {\n height: 216,\n width: '100%',\n },\n pageItem: {\n flexDirection: 'row',\n width: '100%',\n height: 48,\n alignItems: 'center',\n },\n avatar: {\n marginEnd: 16,\n },\n});\n\nexport default ReactionUserListBottomSheet;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_uikitReactNativeFoundation","_uikitUtils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ReactionUserListBottomSheet","visible","onClose","onDismiss","reactionCtx","chatCtx","localizationCtx","onPressUserProfile","width","useWindowDimensions","safeArea","useSafeAreaPadding","colors","useUIKitTheme","tabIndex","setTabIndex","useState","scrollRef","useRef","tabIndicatorValue","tabIndicatorAnimated","x","Animated","Value","current","focusedWithLayoutCalculated","emojiManager","channel","message","focusIndex","STRINGS","color","ui","reaction","reactions","focusedReaction","containerSafeArea","paddingStart","styles","layout","paddingHorizontal","paddingEnd","focusTab","index","animated","indicatorValue","_scrollRef$current","animateTabIndicator","scrollTo","baseConfig","duration","easing","Easing","inOut","ease","useNativeDriver","parallel","timing","toValue","start","layoutCalculated","filter","Boolean","length","useEffect","renderTabs","createElement","Pressable","style","tabsWrapper","map","isFocused","key","isLastItem","emoji","allEmojiMap","tabItem","marginEnd","onPress","onLayout","indexForLayout","I18nManager","isRTL","nativeEvent","Image","source","getEmojiIconSource","tabEmoji","Text","button","selected","highlight","enabled","truncatedCount","getReactionCount","View","tabIndicator","backgroundColor","renderPage","userCountDifference","count","sampledUserInfoList","Fragment","reactedUserInfo","isGroupChannel","userId","pageItem","Avatar","size","uri","profileUrl","containerStyle","avatar","subtitle2","flex","nickname","LABELS","USER_NO_NAME","body3","onBackground02","REACTION","MORE_USERS","Modal","type","backgroundStyle","modal","container","paddingBottom","dialog","none","background","ScrollView","ref","horizontal","bounces","showsHorizontalScrollIndicator","contentContainerStyle","tabsContainer","Divider","top","showsVerticalScrollIndicator","pageContainer","createStyleSheet","overflow","borderTopStartRadius","borderTopEndRadius","paddingTop","alignItems","justifyContent","flexGrow","flexDirection","height","position","bottom","_default","exports"],"sources":["ReactionUserListBottomSheet.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Animated, Easing, I18nManager, Pressable, ScrollView, View, useWindowDimensions } from 'react-native';\n\nimport {\n Avatar,\n Divider,\n Image,\n Modal,\n Text,\n createStyleSheet,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdEmoji,\n SendbirdReaction,\n getReactionCount,\n truncatedCount,\n useSafeAreaPadding,\n} from '@sendbird/uikit-utils';\n\nimport type { ReactionBottomSheetProps } from './index';\n\nconst ReactionUserListBottomSheet = ({\n visible,\n onClose,\n onDismiss,\n reactionCtx,\n chatCtx,\n localizationCtx,\n onPressUserProfile,\n}: ReactionBottomSheetProps) => {\n const { width } = useWindowDimensions();\n const safeArea = useSafeAreaPadding(['left', 'right', 'bottom']);\n const { colors } = useUIKitTheme();\n\n const [tabIndex, setTabIndex] = useState(0);\n const scrollRef = useRef<ScrollView>();\n const tabIndicatorValue = useRef<Array<{ x: number; width: number }>>([]);\n const tabIndicatorAnimated = useRef({ x: new Animated.Value(0), width: new Animated.Value(0) }).current;\n const focusedWithLayoutCalculated = useRef(false);\n\n const { emojiManager } = chatCtx;\n const { channel, message, focusIndex } = reactionCtx;\n const { STRINGS } = localizationCtx;\n\n const color = colors.ui.reaction.default;\n const reactions = message?.reactions ?? [];\n const focusedReaction = reactions[tabIndex] as SendbirdReaction | undefined;\n const containerSafeArea = {\n paddingStart: safeArea.paddingStart + styles.layout.paddingHorizontal,\n paddingEnd: safeArea.paddingEnd + styles.layout.paddingHorizontal,\n };\n\n const focusTab = (index: number, animated = true) => {\n const indicatorValue = tabIndicatorValue.current[index];\n if (indicatorValue) {\n setTabIndex(index);\n animateTabIndicator(indicatorValue.x, indicatorValue.width, animated);\n scrollRef.current?.scrollTo({ x: indicatorValue.x, animated });\n }\n };\n\n const animateTabIndicator = (x: number, width: number, animated = true) => {\n const baseConfig = { duration: animated ? 300 : 0, easing: Easing.inOut(Easing.ease), useNativeDriver: false };\n Animated.parallel([\n Animated.timing(tabIndicatorAnimated.x, { toValue: x, ...baseConfig }),\n Animated.timing(tabIndicatorAnimated.width, { toValue: width, ...baseConfig }),\n ]).start();\n };\n\n const layoutCalculated = () => {\n return tabIndicatorValue.current.filter(Boolean).length === reactions.length;\n };\n\n useEffect(() => {\n if (!visible) {\n tabIndicatorValue.current = [];\n tabIndicatorAnimated.x = new Animated.Value(0);\n tabIndicatorAnimated.width = new Animated.Value(0);\n focusedWithLayoutCalculated.current = false;\n }\n }, [visible]);\n\n const renderTabs = () => {\n return (\n <Pressable style={styles.tabsWrapper}>\n {reactions.map((reaction, index) => {\n const isFocused = focusedReaction?.key === reaction.key;\n const isLastItem = reactions.length - 1 === index;\n const emoji = emojiManager.allEmojiMap[reaction.key] as SendbirdEmoji | undefined;\n\n return (\n <Pressable\n key={reaction.key}\n style={[styles.tabItem, isLastItem && { marginEnd: styles.layout.marginEnd }]}\n onPress={() => focusTab(index)}\n onLayout={(e) => {\n const indexForLayout = I18nManager.isRTL ? reactions.length - 1 - index : index;\n tabIndicatorValue.current[indexForLayout] = e.nativeEvent.layout;\n if (layoutCalculated()) {\n if (focusedWithLayoutCalculated.current) {\n // re-calculating layout when screen rotation\n focusTab(tabIndex, false);\n } else {\n focusedWithLayoutCalculated.current = true;\n focusTab(focusIndex);\n }\n }\n }}\n >\n <Image source={emojiManager.getEmojiIconSource(emoji)} style={styles.tabEmoji} />\n <Text button color={isFocused ? color.selected.highlight : color.enabled.highlight}>\n {truncatedCount(getReactionCount(reaction))}\n </Text>\n </Pressable>\n );\n })}\n <Animated.View\n style={[\n styles.tabIndicator,\n {\n start: tabIndicatorAnimated.x,\n width: tabIndicatorAnimated.width,\n backgroundColor: color.selected.highlight,\n },\n ]}\n />\n </Pressable>\n );\n };\n\n const renderPage = () => {\n const userCountDifference = (focusedReaction?.count || 0) - (focusedReaction?.sampledUserInfoList.length || 0);\n\n return (\n <>\n {focusedReaction?.sampledUserInfoList.map((reactedUserInfo) => {\n if (channel?.isGroupChannel()) {\n return (\n <Pressable\n key={reactedUserInfo.userId}\n onPress={async () => {\n await onClose();\n onPressUserProfile(reactedUserInfo);\n }}\n style={styles.pageItem}\n >\n <Avatar size={36} uri={reactedUserInfo?.profileUrl} containerStyle={styles.avatar} />\n <Text subtitle2 style={{ flex: 1 }}>\n {reactedUserInfo?.nickname || STRINGS.LABELS.USER_NO_NAME}\n </Text>\n </Pressable>\n );\n }\n return null;\n })}\n {userCountDifference > 0 && (\n <View style={styles.pageItem}>\n <Text body3 color={colors.onBackground02}>\n {STRINGS.REACTION.MORE_USERS(userCountDifference)}\n </Text>\n </View>\n )}\n </>\n );\n };\n\n return (\n <Modal\n type={'slide-no-gesture'}\n visible={Boolean(visible && channel && message)}\n onClose={onClose}\n onDismiss={onDismiss}\n backgroundStyle={styles.modal}\n >\n <View\n style={[\n styles.container,\n { width, paddingBottom: safeArea.paddingBottom, backgroundColor: colors.ui.dialog.default.none.background },\n ]}\n >\n <ScrollView\n ref={scrollRef as never}\n horizontal\n bounces={false}\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={[containerSafeArea, styles.tabsContainer]}\n >\n {renderTabs()}\n </ScrollView>\n <Divider style={{ top: -1 }} />\n <ScrollView\n bounces={false}\n showsVerticalScrollIndicator={false}\n style={styles.pageContainer}\n contentContainerStyle={containerSafeArea}\n >\n {renderPage()}\n </ScrollView>\n </View>\n </Modal>\n );\n};\n\nconst styles = createStyleSheet({\n layout: {\n paddingHorizontal: 16,\n marginEnd: 0,\n },\n container: {\n overflow: 'hidden',\n borderTopStartRadius: 8,\n borderTopEndRadius: 8,\n paddingTop: 16,\n alignItems: 'center',\n },\n modal: {\n alignItems: 'center',\n justifyContent: 'flex-end',\n },\n tabsContainer: {\n flexGrow: 1,\n },\n tabsWrapper: {\n flexGrow: 1,\n flexDirection: 'row',\n alignItems: 'flex-start',\n justifyContent: 'center',\n height: 44,\n },\n tabItem: {\n marginEnd: 16,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n tabEmoji: {\n width: 28,\n height: 28,\n marginEnd: 4,\n },\n tabIndicator: {\n position: 'absolute',\n bottom: 0,\n height: 3,\n },\n pageContainer: {\n height: 216,\n width: '100%',\n },\n pageItem: {\n flexDirection: 'row',\n width: '100%',\n height: 48,\n alignItems: 'center',\n },\n avatar: {\n marginEnd: 16,\n },\n});\n\nexport default ReactionUserListBottomSheet;\n"],"mappings":"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","ignoreList":[]}
@@ -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":[]}
@@ -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":"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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","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;