@sendbird/uikit-react-native 3.2.0 → 3.4.0

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 (116) hide show
  1. package/lib/commonjs/components/ChannelInput/EditInput.js +2 -11
  2. package/lib/commonjs/components/ChannelInput/EditInput.js.map +1 -1
  3. package/lib/commonjs/components/ChannelInput/SendInput.js +2 -11
  4. package/lib/commonjs/components/ChannelInput/SendInput.js.map +1 -1
  5. package/lib/commonjs/components/ChannelInput/index.js +30 -3
  6. package/lib/commonjs/components/ChannelInput/index.js.map +1 -1
  7. package/lib/commonjs/components/ChannelMessageList/index.js +148 -116
  8. package/lib/commonjs/components/ChannelMessageList/index.js.map +1 -1
  9. package/lib/commonjs/components/FileViewer/FileViewerContent.js +140 -0
  10. package/lib/commonjs/components/FileViewer/FileViewerContent.js.map +1 -0
  11. package/lib/commonjs/components/FileViewer/FileViewerFooter.js +82 -0
  12. package/lib/commonjs/components/FileViewer/FileViewerFooter.js.map +1 -0
  13. package/lib/commonjs/components/FileViewer/FileViewerHeader.js +93 -0
  14. package/lib/commonjs/components/FileViewer/FileViewerHeader.js.map +1 -0
  15. package/lib/commonjs/components/FileViewer/index.js +133 -0
  16. package/lib/commonjs/components/FileViewer/index.js.map +1 -0
  17. package/lib/commonjs/components/GroupChannelMessageRenderer/index.js +34 -1
  18. package/lib/commonjs/components/GroupChannelMessageRenderer/index.js.map +1 -1
  19. package/lib/commonjs/components/ReactionAddons/BottomSheetReactionAddon.js.map +1 -1
  20. package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js +14 -4
  21. package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js.map +1 -1
  22. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +11 -9
  23. package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  24. package/lib/commonjs/domain/groupChannel/types.js.map +1 -1
  25. package/lib/commonjs/domain/messageSearch/component/MessageSearchHeader.js +4 -1
  26. package/lib/commonjs/domain/messageSearch/component/MessageSearchHeader.js.map +1 -1
  27. package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateProfileInput.js +4 -2
  28. package/lib/commonjs/domain/openChannelCreate/component/OpenChannelCreateProfileInput.js.map +1 -1
  29. package/lib/commonjs/fragments/createGroupChannelFragment.js +18 -16
  30. package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -1
  31. package/lib/commonjs/index.js +4 -0
  32. package/lib/commonjs/index.js.map +1 -1
  33. package/lib/commonjs/types.js +7 -0
  34. package/lib/commonjs/types.js.map +1 -1
  35. package/lib/commonjs/utils/promise.js +138 -0
  36. package/lib/commonjs/utils/promise.js.map +1 -0
  37. package/lib/commonjs/version.js +1 -1
  38. package/lib/commonjs/version.js.map +1 -1
  39. package/lib/module/components/ChannelInput/EditInput.js +3 -12
  40. package/lib/module/components/ChannelInput/EditInput.js.map +1 -1
  41. package/lib/module/components/ChannelInput/SendInput.js +3 -12
  42. package/lib/module/components/ChannelInput/SendInput.js.map +1 -1
  43. package/lib/module/components/ChannelInput/index.js +32 -5
  44. package/lib/module/components/ChannelInput/index.js.map +1 -1
  45. package/lib/module/components/ChannelMessageList/index.js +148 -116
  46. package/lib/module/components/ChannelMessageList/index.js.map +1 -1
  47. package/lib/module/components/FileViewer/FileViewerContent.js +130 -0
  48. package/lib/module/components/FileViewer/FileViewerContent.js.map +1 -0
  49. package/lib/module/components/FileViewer/FileViewerFooter.js +74 -0
  50. package/lib/module/components/FileViewer/FileViewerFooter.js.map +1 -0
  51. package/lib/module/components/FileViewer/FileViewerHeader.js +85 -0
  52. package/lib/module/components/FileViewer/FileViewerHeader.js.map +1 -0
  53. package/lib/module/components/FileViewer/index.js +123 -0
  54. package/lib/module/components/FileViewer/index.js.map +1 -0
  55. package/lib/module/components/GroupChannelMessageRenderer/index.js +34 -2
  56. package/lib/module/components/GroupChannelMessageRenderer/index.js.map +1 -1
  57. package/lib/module/components/ReactionAddons/BottomSheetReactionAddon.js.map +1 -1
  58. package/lib/module/domain/groupChannel/component/GroupChannelHeader.js +15 -5
  59. package/lib/module/domain/groupChannel/component/GroupChannelHeader.js.map +1 -1
  60. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +11 -9
  61. package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -1
  62. package/lib/module/domain/groupChannel/types.js.map +1 -1
  63. package/lib/module/domain/messageSearch/component/MessageSearchHeader.js +4 -1
  64. package/lib/module/domain/messageSearch/component/MessageSearchHeader.js.map +1 -1
  65. package/lib/module/domain/openChannelCreate/component/OpenChannelCreateProfileInput.js +4 -2
  66. package/lib/module/domain/openChannelCreate/component/OpenChannelCreateProfileInput.js.map +1 -1
  67. package/lib/module/fragments/createGroupChannelFragment.js +19 -17
  68. package/lib/module/fragments/createGroupChannelFragment.js.map +1 -1
  69. package/lib/module/index.js +4 -0
  70. package/lib/module/index.js.map +1 -1
  71. package/lib/module/types.js +5 -1
  72. package/lib/module/types.js.map +1 -1
  73. package/lib/module/utils/promise.js +132 -0
  74. package/lib/module/utils/promise.js.map +1 -0
  75. package/lib/module/version.js +1 -1
  76. package/lib/module/version.js.map +1 -1
  77. package/lib/typescript/src/components/ChannelInput/index.d.ts +2 -0
  78. package/lib/typescript/src/components/ChannelMessageList/index.d.ts +4 -1
  79. package/lib/typescript/src/components/FileViewer/FileViewerContent.d.ts +13 -0
  80. package/lib/typescript/src/components/FileViewer/FileViewerFooter.d.ts +9 -0
  81. package/lib/typescript/src/components/FileViewer/FileViewerHeader.d.ts +10 -0
  82. package/lib/typescript/src/components/{FileViewer.d.ts → FileViewer/index.d.ts} +5 -1
  83. package/lib/typescript/src/components/GroupChannelMessageRenderer/index.d.ts +3 -0
  84. package/lib/typescript/src/components/OpenChannelMessageRenderer/index.d.ts +2 -0
  85. package/lib/typescript/src/containers/SendbirdUIKitContainer.d.ts +1 -1
  86. package/lib/typescript/src/domain/groupChannel/component/GroupChannelMessageList.d.ts +2 -2
  87. package/lib/typescript/src/domain/groupChannel/types.d.ts +5 -2
  88. package/lib/typescript/src/types.d.ts +4 -0
  89. package/lib/typescript/src/utils/promise.d.ts +7 -0
  90. package/lib/typescript/src/version.d.ts +1 -1
  91. package/package.json +8 -7
  92. package/src/components/ChannelInput/EditInput.tsx +3 -15
  93. package/src/components/ChannelInput/SendInput.tsx +2 -9
  94. package/src/components/ChannelInput/index.tsx +27 -4
  95. package/src/components/ChannelMessageList/index.tsx +145 -115
  96. package/src/components/FileViewer/FileViewerContent.tsx +141 -0
  97. package/src/components/FileViewer/FileViewerFooter.tsx +73 -0
  98. package/src/components/FileViewer/FileViewerHeader.tsx +86 -0
  99. package/src/components/FileViewer/index.tsx +139 -0
  100. package/src/components/GroupChannelMessageRenderer/index.tsx +34 -2
  101. package/src/components/ReactionAddons/BottomSheetReactionAddon.tsx +3 -2
  102. package/src/domain/groupChannel/component/GroupChannelHeader.tsx +14 -3
  103. package/src/domain/groupChannel/component/GroupChannelMessageList.tsx +8 -6
  104. package/src/domain/groupChannel/types.ts +6 -2
  105. package/src/domain/messageSearch/component/MessageSearchHeader.tsx +4 -1
  106. package/src/domain/openChannelCreate/component/OpenChannelCreateProfileInput.tsx +4 -2
  107. package/src/fragments/createGroupChannelFragment.tsx +25 -15
  108. package/src/index.ts +5 -1
  109. package/src/types.ts +5 -0
  110. package/src/utils/promise.ts +139 -0
  111. package/src/version.ts +1 -1
  112. package/lib/commonjs/components/FileViewer.js +0 -300
  113. package/lib/commonjs/components/FileViewer.js.map +0 -1
  114. package/lib/module/components/FileViewer.js +0 -291
  115. package/lib/module/components/FileViewer.js.map +0 -1
  116. package/src/components/FileViewer.tsx +0 -288
@@ -13,6 +13,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
13
13
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
14
14
  const EditInput = /*#__PURE__*/(0, _react.forwardRef)(function EditInput(_ref, ref) {
15
15
  let {
16
+ style,
16
17
  text,
17
18
  onChangeText,
18
19
  messageToEdit,
@@ -62,7 +63,7 @@ const EditInput = /*#__PURE__*/(0, _react.forwardRef)(function EditInput(_ref, r
62
63
  editable: !inputDisabled,
63
64
  autoFocus: autoFocus,
64
65
  onChangeText: onChangeText,
65
- style: styles.input,
66
+ style: style,
66
67
  placeholder: STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_ACTIVE,
67
68
  onSelectionChange: onSelectionChange
68
69
  }, mentionManager.textToMentionedComponents(text, mentionedUsers, sbOptions.uikit.groupChannel.channel.enableMention))), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
@@ -87,16 +88,6 @@ const styles = (0, _uikitReactNativeFoundation.createStyleSheet)({
87
88
  flexDirection: 'column',
88
89
  alignItems: 'center'
89
90
  },
90
- input: {
91
- flex: 1,
92
- marginRight: 4,
93
- minHeight: 36,
94
- maxHeight: 36 * _reactNative.Platform.select({
95
- ios: 2.5,
96
- default: 2
97
- }),
98
- borderRadius: 20
99
- },
100
91
  inputWrapper: {
101
92
  flexDirection: 'row'
102
93
  },
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_message","_uikitReactNativeFoundation","_useContext","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","EditInput","forwardRef","_ref","ref","text","onChangeText","messageToEdit","setMessageToEdit","onPressUpdateUserMessage","onSelectionChange","autoFocus","mentionedUsers","inputDisabled","mentionManager","sbOptions","useSendbirdChat","STRINGS","useLocalization","toast","useToast","onPressCancel","onPressSave","isUserMessage","mentionType","MentionType","USERS","mentionedUserIds","map","it","user","userId","mentionedMessageTemplate","textToMentionedMessageTemplate","uikit","groupChannel","channel","enableMention","message","catch","onFailureToUpdate","show","TOAST","UPDATE_MSG_ERROR","createElement","View","style","styles","editInputContainer","inputWrapper","TextInput","multiline","disableFullscreenUI","editable","input","placeholder","LABELS","CHANNEL_INPUT_PLACEHOLDER_ACTIVE","textToMentionedComponents","marginTop","flexDirection","Button","variant","onPress","CHANNEL_INPUT_EDIT_CANCEL","space","CHANNEL_INPUT_EDIT_OK","createStyleSheet","paddingVertical","paddingHorizontal","alignItems","flex","marginRight","minHeight","maxHeight","Platform","select","ios","borderRadius","_default","exports"],"sources":["EditInput.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport {\n NativeSyntheticEvent,\n Platform,\n TextInput as RNTextInput,\n TextInputSelectionChangeEventData,\n View,\n} from 'react-native';\n\nimport { MentionType } from '@sendbird/chat/message';\nimport { Button, TextInput, createStyleSheet, useToast } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdFileMessage, SendbirdUserMessage } from '@sendbird/uikit-utils';\n\nimport { useLocalization, useSendbirdChat } from '../../hooks/useContext';\nimport type { MentionedUser } from '../../types';\nimport type { ChannelInputProps } from './index';\n\ninterface EditInputProps extends ChannelInputProps {\n text: string;\n onChangeText: (val: string) => void;\n messageToEdit: SendbirdUserMessage | SendbirdFileMessage;\n setMessageToEdit: (msg?: SendbirdUserMessage | SendbirdFileMessage) => void;\n onSelectionChange: (e: NativeSyntheticEvent<TextInputSelectionChangeEventData>) => void;\n autoFocus: boolean;\n mentionedUsers: MentionedUser[];\n}\n\nconst EditInput = forwardRef<RNTextInput, EditInputProps>(function EditInput(\n {\n text,\n onChangeText,\n messageToEdit,\n setMessageToEdit,\n onPressUpdateUserMessage,\n onSelectionChange,\n autoFocus,\n mentionedUsers,\n inputDisabled,\n },\n ref,\n) {\n const { mentionManager, sbOptions } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const toast = useToast();\n\n const onPressCancel = () => {\n setMessageToEdit();\n onChangeText('');\n };\n\n const onPressSave = () => {\n if (messageToEdit.isUserMessage()) {\n const mentionType = MentionType.USERS;\n const mentionedUserIds = mentionedUsers.map((it) => it.user.userId);\n const mentionedMessageTemplate = mentionManager.textToMentionedMessageTemplate(\n text,\n mentionedUsers,\n sbOptions.uikit.groupChannel.channel.enableMention,\n );\n\n onPressUpdateUserMessage(messageToEdit, {\n message: text,\n mentionType,\n mentionedUserIds,\n mentionedMessageTemplate,\n }).catch(onFailureToUpdate);\n }\n setMessageToEdit();\n onChangeText('');\n };\n\n const onFailureToUpdate = () => toast.show(STRINGS.TOAST.UPDATE_MSG_ERROR, 'error');\n\n return (\n <View style={styles.editInputContainer}>\n <View style={styles.inputWrapper}>\n <TextInput\n ref={ref}\n multiline\n disableFullscreenUI\n editable={!inputDisabled}\n autoFocus={autoFocus}\n onChangeText={onChangeText}\n style={styles.input}\n placeholder={STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_ACTIVE}\n onSelectionChange={onSelectionChange}\n >\n {mentionManager.textToMentionedComponents(\n text,\n mentionedUsers,\n sbOptions.uikit.groupChannel.channel.enableMention,\n )}\n </TextInput>\n </View>\n <View style={{ marginTop: 8, flexDirection: 'row' }}>\n <Button variant={'text'} onPress={onPressCancel}>\n {STRINGS.LABELS.CHANNEL_INPUT_EDIT_CANCEL}\n </Button>\n <View style={styles.space} />\n <Button variant={'contained'} onPress={onPressSave}>\n {STRINGS.LABELS.CHANNEL_INPUT_EDIT_OK}\n </Button>\n </View>\n </View>\n );\n});\n\nconst styles = createStyleSheet({\n editInputContainer: {\n paddingVertical: 10,\n paddingHorizontal: 16,\n flexDirection: 'column',\n alignItems: 'center',\n },\n input: {\n flex: 1,\n marginRight: 4,\n minHeight: 36,\n maxHeight: 36 * Platform.select({ ios: 2.5, default: 2 }),\n borderRadius: 20,\n },\n inputWrapper: {\n flexDirection: 'row',\n },\n space: {\n flex: 1,\n },\n});\n\nexport default EditInput;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_message","_uikitReactNativeFoundation","_useContext","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","EditInput","forwardRef","_ref","ref","style","text","onChangeText","messageToEdit","setMessageToEdit","onPressUpdateUserMessage","onSelectionChange","autoFocus","mentionedUsers","inputDisabled","mentionManager","sbOptions","useSendbirdChat","STRINGS","useLocalization","toast","useToast","onPressCancel","onPressSave","isUserMessage","mentionType","MentionType","USERS","mentionedUserIds","map","it","user","userId","mentionedMessageTemplate","textToMentionedMessageTemplate","uikit","groupChannel","channel","enableMention","message","catch","onFailureToUpdate","show","TOAST","UPDATE_MSG_ERROR","createElement","View","styles","editInputContainer","inputWrapper","TextInput","multiline","disableFullscreenUI","editable","placeholder","LABELS","CHANNEL_INPUT_PLACEHOLDER_ACTIVE","textToMentionedComponents","marginTop","flexDirection","Button","variant","onPress","CHANNEL_INPUT_EDIT_CANCEL","space","CHANNEL_INPUT_EDIT_OK","createStyleSheet","paddingVertical","paddingHorizontal","alignItems","flex","_default","exports"],"sources":["EditInput.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { NativeSyntheticEvent, TextInput as RNTextInput, TextInputSelectionChangeEventData, View } from 'react-native';\n\nimport { MentionType } from '@sendbird/chat/message';\nimport { Button, TextInput, createStyleSheet, useToast } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdFileMessage, SendbirdUserMessage } from '@sendbird/uikit-utils';\n\nimport { useLocalization, useSendbirdChat } from '../../hooks/useContext';\nimport type { MentionedUser } from '../../types';\nimport type { ChannelInputProps } from './index';\n\ninterface EditInputProps extends ChannelInputProps {\n text: string;\n onChangeText: (val: string) => void;\n messageToEdit: SendbirdUserMessage | SendbirdFileMessage;\n setMessageToEdit: (msg?: SendbirdUserMessage | SendbirdFileMessage) => void;\n onSelectionChange: (e: NativeSyntheticEvent<TextInputSelectionChangeEventData>) => void;\n autoFocus: boolean;\n mentionedUsers: MentionedUser[];\n}\n\nconst EditInput = forwardRef<RNTextInput, EditInputProps>(function EditInput(\n {\n style,\n text,\n onChangeText,\n messageToEdit,\n setMessageToEdit,\n onPressUpdateUserMessage,\n onSelectionChange,\n autoFocus,\n mentionedUsers,\n inputDisabled,\n },\n ref,\n) {\n const { mentionManager, sbOptions } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const toast = useToast();\n\n const onPressCancel = () => {\n setMessageToEdit();\n onChangeText('');\n };\n\n const onPressSave = () => {\n if (messageToEdit.isUserMessage()) {\n const mentionType = MentionType.USERS;\n const mentionedUserIds = mentionedUsers.map((it) => it.user.userId);\n const mentionedMessageTemplate = mentionManager.textToMentionedMessageTemplate(\n text,\n mentionedUsers,\n sbOptions.uikit.groupChannel.channel.enableMention,\n );\n\n onPressUpdateUserMessage(messageToEdit, {\n message: text,\n mentionType,\n mentionedUserIds,\n mentionedMessageTemplate,\n }).catch(onFailureToUpdate);\n }\n setMessageToEdit();\n onChangeText('');\n };\n\n const onFailureToUpdate = () => toast.show(STRINGS.TOAST.UPDATE_MSG_ERROR, 'error');\n\n return (\n <View style={styles.editInputContainer}>\n <View style={styles.inputWrapper}>\n <TextInput\n ref={ref}\n multiline\n disableFullscreenUI\n editable={!inputDisabled}\n autoFocus={autoFocus}\n onChangeText={onChangeText}\n style={style}\n placeholder={STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_ACTIVE}\n onSelectionChange={onSelectionChange}\n >\n {mentionManager.textToMentionedComponents(\n text,\n mentionedUsers,\n sbOptions.uikit.groupChannel.channel.enableMention,\n )}\n </TextInput>\n </View>\n <View style={{ marginTop: 8, flexDirection: 'row' }}>\n <Button variant={'text'} onPress={onPressCancel}>\n {STRINGS.LABELS.CHANNEL_INPUT_EDIT_CANCEL}\n </Button>\n <View style={styles.space} />\n <Button variant={'contained'} onPress={onPressSave}>\n {STRINGS.LABELS.CHANNEL_INPUT_EDIT_OK}\n </Button>\n </View>\n </View>\n );\n});\n\nconst styles = createStyleSheet({\n editInputContainer: {\n paddingVertical: 10,\n paddingHorizontal: 16,\n flexDirection: 'column',\n alignItems: 'center',\n },\n inputWrapper: {\n flexDirection: 'row',\n },\n space: {\n flex: 1,\n },\n});\n\nexport default EditInput;\n"],"mappings":"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"}
@@ -18,6 +18,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
18
18
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
19
  const SendInput = /*#__PURE__*/(0, _react.forwardRef)(function SendInput(_ref, ref) {
20
20
  let {
21
+ style,
21
22
  VoiceMessageInput,
22
23
  MessageToReplyPreview,
23
24
  AttachmentsButton,
@@ -146,7 +147,7 @@ const SendInput = /*#__PURE__*/(0, _react.forwardRef)(function SendInput(_ref, r
146
147
  onSelectionChange: onSelectionChange,
147
148
  editable: !inputDisabled,
148
149
  onChangeText: onChangeText,
149
- style: styles.input,
150
+ style: style,
150
151
  placeholder: getPlaceholder()
151
152
  }, mentionManager.textToMentionedComponents(text, mentionedUsers, sbOptions.uikit.groupChannel.channel.enableMention)), voiceMessageEnabled && /*#__PURE__*/_react.default.createElement(VoiceMessageButton, {
152
153
  visible: !sendButtonVisible,
@@ -265,16 +266,6 @@ const styles = (0, _uikitReactNativeFoundation.createStyleSheet)({
265
266
  alignItems: 'center',
266
267
  flexDirection: 'row'
267
268
  },
268
- input: {
269
- flex: 1,
270
- marginRight: 4,
271
- minHeight: 36,
272
- maxHeight: 36 * _reactNative.Platform.select({
273
- ios: 2.5,
274
- default: 2
275
- }),
276
- borderRadius: 20
277
- },
278
269
  sendIcon: {
279
270
  marginLeft: 4,
280
271
  padding: 4
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_message","_uikitReactNativeFoundation","_uikitUtils","_constants","_useChannelInputItems","_useContext","_SBUUtils","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","SendInput","forwardRef","_ref","ref","VoiceMessageInput","MessageToReplyPreview","AttachmentsButton","onPressSendUserMessage","onPressSendFileMessage","text","onChangeText","onSelectionChange","mentionedUsers","inputDisabled","inputFrozen","inputMuted","channel","messageToReply","setMessageToReply","playerService","recorderService","usePlatformService","mentionManager","sbOptions","useSendbirdChat","STRINGS","useLocalization","openSheet","useBottomSheet","toast","useToast","onClose","onDismiss","visible","voiceMessageInputVisible","setVisible","setVoiceMessageInputVisible","useDeferredModalState","messageReplyParams","useIIFE","groupChannel","uikit","isGroupChannel","replyType","parentMessageId","messageId","isReplyToChannel","messageMentionParams","enableMention","mentionType","MentionType","USERS","mentionedUserIds","map","it","user","userId","mentionedMessageTemplate","textToMentionedMessageTemplate","onFailureToSend","error","show","TOAST","SEND_MSG_ERROR","Logger","sendUserMessage","message","catch","sendFileMessage","file","sendVoiceMessage","durationMills","USER_MUTED_ERROR","CHANNEL_FROZEN_ERROR","metaArrays","MessageMetaArray","VOICE_MESSAGE_META_ARRAY_DURATION_KEY","value","String","VOICE_MESSAGE_META_ARRAY_MESSAGE_TYPE_KEY","options","extension","sheetItems","useChannelInputItems","getPlaceholder","LABELS","CHANNEL_INPUT_PLACEHOLDER_MUTED","CHANNEL_INPUT_PLACEHOLDER_DISABLED","CHANNEL_INPUT_PLACEHOLDER_REPLY","CHANNEL_INPUT_PLACEHOLDER_ACTIVE","voiceMessageEnabled","enableVoiceMessage","sendButtonVisible","Boolean","trim","createElement","View","style","styles","sendInputContainer","onPress","disabled","TextInput","multiline","disableFullscreenUI","editable","input","placeholder","textToMentionedComponents","VoiceMessageButton","UserMessageSendButton","Modal","disableBackgroundClose","Promise","allSettled","reset","backgroundStyle","justifyContent","type","onSend","_ref2","duration","_ref3","alert","useAlert","colors","useUIKitTheme","onPressWithPermissionCheck","recorderGranted","requestPermission","title","DIALOG","ALERT_PERMISSIONS_TITLE","ALERT_PERMISSIONS_MESSAGE","PERMISSION_MICROPHONE","PERMISSION_APP_NAME","buttons","ALERT_PERMISSIONS_OK","SBUUtils","openSettings","playerGranted","PERMISSION_DEVICE_STORAGE","TouchableOpacity","Icon","color","ui","highlight","active","icon","size","containerStyle","sendIcon","_ref4","createStyleSheet","paddingVertical","paddingHorizontal","alignItems","flexDirection","flex","marginRight","minHeight","maxHeight","Platform","select","ios","borderRadius","marginLeft","padding","_default","exports"],"sources":["SendInput.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport {\n NativeSyntheticEvent,\n Platform,\n TextInput as RNTextInput,\n TextInputSelectionChangeEventData,\n TouchableOpacity,\n View,\n} from 'react-native';\n\nimport { MentionType, MessageMetaArray } from '@sendbird/chat/message';\nimport {\n Icon,\n Modal,\n TextInput,\n createStyleSheet,\n useAlert,\n useBottomSheet,\n useToast,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport { Logger, useDeferredModalState, useIIFE } from '@sendbird/uikit-utils';\n\nimport { VOICE_MESSAGE_META_ARRAY_DURATION_KEY, VOICE_MESSAGE_META_ARRAY_MESSAGE_TYPE_KEY } from '../../constants';\nimport { useChannelInputItems } from '../../hooks/useChannelInputItems';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../../hooks/useContext';\nimport SBUUtils from '../../libs/SBUUtils';\nimport type { FileType } from '../../platform/types';\nimport type { MentionedUser } from '../../types';\nimport type { ChannelInputProps } from './index';\n\ninterface SendInputProps extends ChannelInputProps {\n text: string;\n onChangeText: (val: string) => void;\n onSelectionChange: (e: NativeSyntheticEvent<TextInputSelectionChangeEventData>) => void;\n mentionedUsers: MentionedUser[];\n}\n\nconst SendInput = forwardRef<RNTextInput, SendInputProps>(function SendInput(\n {\n VoiceMessageInput,\n MessageToReplyPreview,\n AttachmentsButton,\n onPressSendUserMessage,\n onPressSendFileMessage,\n text,\n onChangeText,\n onSelectionChange,\n mentionedUsers,\n inputDisabled,\n inputFrozen,\n inputMuted,\n channel,\n messageToReply,\n setMessageToReply,\n },\n ref,\n) {\n const { playerService, recorderService } = usePlatformService();\n const { mentionManager, sbOptions } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { openSheet } = useBottomSheet();\n const toast = useToast();\n\n const {\n onClose,\n onDismiss,\n visible: voiceMessageInputVisible,\n setVisible: setVoiceMessageInputVisible,\n } = useDeferredModalState();\n\n const messageReplyParams = useIIFE(() => {\n const { groupChannel } = sbOptions.uikit;\n if (!channel.isGroupChannel() || groupChannel.channel.replyType === 'none' || !messageToReply) return {};\n return {\n parentMessageId: messageToReply.messageId,\n isReplyToChannel: true,\n };\n });\n\n const messageMentionParams = useIIFE(() => {\n const { groupChannel } = sbOptions.uikit;\n if (!channel.isGroupChannel() || !groupChannel.channel.enableMention) return {};\n return {\n mentionType: MentionType.USERS,\n mentionedUserIds: mentionedUsers.map((it) => it.user.userId),\n mentionedMessageTemplate: mentionManager.textToMentionedMessageTemplate(\n text,\n mentionedUsers,\n groupChannel.channel.enableMention,\n ),\n };\n });\n\n const onFailureToSend = (error: Error) => {\n toast.show(STRINGS.TOAST.SEND_MSG_ERROR, 'error');\n Logger.error(STRINGS.TOAST.SEND_MSG_ERROR, error);\n };\n\n const sendUserMessage = () => {\n onPressSendUserMessage({\n message: text,\n ...messageMentionParams,\n ...messageReplyParams,\n }).catch(onFailureToSend);\n\n onChangeText('');\n setMessageToReply?.();\n };\n\n const sendFileMessage = (file: FileType) => {\n onPressSendFileMessage({\n file,\n ...messageReplyParams,\n }).catch(onFailureToSend);\n\n setMessageToReply?.();\n };\n\n const sendVoiceMessage = (file: FileType, durationMills: number) => {\n if (inputMuted) {\n toast.show(STRINGS.TOAST.USER_MUTED_ERROR, 'error');\n Logger.error(STRINGS.TOAST.USER_MUTED_ERROR);\n } else if (inputFrozen) {\n toast.show(STRINGS.TOAST.CHANNEL_FROZEN_ERROR, 'error');\n Logger.error(STRINGS.TOAST.CHANNEL_FROZEN_ERROR);\n } else {\n onPressSendFileMessage({\n file,\n metaArrays: [\n new MessageMetaArray({\n key: VOICE_MESSAGE_META_ARRAY_DURATION_KEY,\n value: [String(durationMills)],\n }),\n new MessageMetaArray({\n key: VOICE_MESSAGE_META_ARRAY_MESSAGE_TYPE_KEY,\n value: [`voice/${recorderService.options.extension}`],\n }),\n ],\n ...messageReplyParams,\n }).catch(onFailureToSend);\n }\n\n onChangeText('');\n setMessageToReply?.();\n };\n\n const sheetItems = useChannelInputItems(channel, sendFileMessage);\n\n const getPlaceholder = () => {\n if (inputMuted) return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_MUTED;\n if (inputFrozen) return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_DISABLED;\n if (inputDisabled) return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_DISABLED;\n if (messageToReply) return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_REPLY;\n\n return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_ACTIVE;\n };\n\n const voiceMessageEnabled = channel.isGroupChannel() && sbOptions.uikit.groupChannel.channel.enableVoiceMessage;\n const sendButtonVisible = Boolean(text.trim());\n\n return (\n <View>\n {MessageToReplyPreview && (\n <MessageToReplyPreview messageToReply={messageToReply} setMessageToReply={setMessageToReply} />\n )}\n <View style={styles.sendInputContainer}>\n {AttachmentsButton && <AttachmentsButton onPress={() => openSheet({ sheetItems })} disabled={inputDisabled} />}\n <TextInput\n ref={ref}\n multiline\n disableFullscreenUI\n onSelectionChange={onSelectionChange}\n editable={!inputDisabled}\n onChangeText={onChangeText}\n style={styles.input}\n placeholder={getPlaceholder()}\n >\n {mentionManager.textToMentionedComponents(\n text,\n mentionedUsers,\n sbOptions.uikit.groupChannel.channel.enableMention,\n )}\n </TextInput>\n\n {voiceMessageEnabled && (\n <VoiceMessageButton\n visible={!sendButtonVisible}\n disabled={inputDisabled}\n onPress={() => setVoiceMessageInputVisible(true)}\n />\n )}\n <UserMessageSendButton visible={sendButtonVisible} disabled={inputDisabled} onPress={sendUserMessage} />\n {voiceMessageEnabled && VoiceMessageInput && (\n <Modal\n disableBackgroundClose\n onClose={onClose}\n onDismiss={() => {\n onDismiss();\n Promise.allSettled([playerService.reset(), recorderService.reset()]);\n }}\n backgroundStyle={{ justifyContent: 'flex-end' }}\n visible={voiceMessageInputVisible}\n type={'slide-no-gesture'}\n >\n <VoiceMessageInput onClose={onClose} onSend={({ file, duration }) => sendVoiceMessage(file, duration)} />\n </Modal>\n )}\n </View>\n </View>\n );\n});\n\ntype InputButtonProps = { visible: boolean; disabled: boolean; onPress: () => void };\nconst VoiceMessageButton = ({ visible, disabled, onPress }: InputButtonProps) => {\n const { STRINGS } = useLocalization();\n const { alert } = useAlert();\n const { playerService, recorderService } = usePlatformService();\n const { colors } = useUIKitTheme();\n if (!visible) return null;\n\n const onPressWithPermissionCheck = async () => {\n const recorderGranted = await recorderService.requestPermission();\n if (!recorderGranted) {\n alert({\n title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,\n message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE(\n STRINGS.LABELS.PERMISSION_MICROPHONE,\n STRINGS.LABELS.PERMISSION_APP_NAME,\n ),\n buttons: [{ text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK, onPress: () => SBUUtils.openSettings() }],\n });\n Logger.error('Failed to request permission for recorder');\n return;\n }\n\n const playerGranted = await playerService.requestPermission();\n if (!playerGranted) {\n alert({\n title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,\n message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE(\n STRINGS.LABELS.PERMISSION_DEVICE_STORAGE,\n STRINGS.LABELS.PERMISSION_APP_NAME,\n ),\n buttons: [{ text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK, onPress: () => SBUUtils.openSettings() }],\n });\n Logger.error('Failed to request permission for player');\n return;\n }\n\n onPress();\n };\n\n return (\n <TouchableOpacity onPress={onPressWithPermissionCheck} disabled={disabled}>\n <Icon\n color={disabled ? colors.ui.input.default.disabled.highlight : colors.ui.input.default.active.highlight}\n icon={'audio-on'}\n size={24}\n containerStyle={styles.sendIcon}\n />\n </TouchableOpacity>\n );\n};\nconst UserMessageSendButton = ({ visible, disabled, onPress }: InputButtonProps) => {\n const { colors } = useUIKitTheme();\n if (!visible) return null;\n return (\n <TouchableOpacity onPress={onPress} disabled={disabled}>\n <Icon\n color={disabled ? colors.ui.input.default.disabled.highlight : colors.ui.input.default.active.highlight}\n icon={'send'}\n size={24}\n containerStyle={styles.sendIcon}\n />\n </TouchableOpacity>\n );\n};\n\nconst styles = createStyleSheet({\n sendInputContainer: {\n paddingVertical: 10,\n paddingHorizontal: 12,\n alignItems: 'center',\n flexDirection: 'row',\n },\n input: {\n flex: 1,\n marginRight: 4,\n minHeight: 36,\n maxHeight: 36 * Platform.select({ ios: 2.5, default: 2 }),\n borderRadius: 20,\n },\n sendIcon: {\n marginLeft: 4,\n padding: 4,\n },\n});\n\nexport default SendInput;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_message","_uikitReactNativeFoundation","_uikitUtils","_constants","_useChannelInputItems","_useContext","_SBUUtils","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","SendInput","forwardRef","_ref","ref","style","VoiceMessageInput","MessageToReplyPreview","AttachmentsButton","onPressSendUserMessage","onPressSendFileMessage","text","onChangeText","onSelectionChange","mentionedUsers","inputDisabled","inputFrozen","inputMuted","channel","messageToReply","setMessageToReply","playerService","recorderService","usePlatformService","mentionManager","sbOptions","useSendbirdChat","STRINGS","useLocalization","openSheet","useBottomSheet","toast","useToast","onClose","onDismiss","visible","voiceMessageInputVisible","setVisible","setVoiceMessageInputVisible","useDeferredModalState","messageReplyParams","useIIFE","groupChannel","uikit","isGroupChannel","replyType","parentMessageId","messageId","isReplyToChannel","messageMentionParams","enableMention","mentionType","MentionType","USERS","mentionedUserIds","map","it","user","userId","mentionedMessageTemplate","textToMentionedMessageTemplate","onFailureToSend","error","show","TOAST","SEND_MSG_ERROR","Logger","sendUserMessage","message","catch","sendFileMessage","file","sendVoiceMessage","durationMills","USER_MUTED_ERROR","CHANNEL_FROZEN_ERROR","metaArrays","MessageMetaArray","VOICE_MESSAGE_META_ARRAY_DURATION_KEY","value","String","VOICE_MESSAGE_META_ARRAY_MESSAGE_TYPE_KEY","options","extension","sheetItems","useChannelInputItems","getPlaceholder","LABELS","CHANNEL_INPUT_PLACEHOLDER_MUTED","CHANNEL_INPUT_PLACEHOLDER_DISABLED","CHANNEL_INPUT_PLACEHOLDER_REPLY","CHANNEL_INPUT_PLACEHOLDER_ACTIVE","voiceMessageEnabled","enableVoiceMessage","sendButtonVisible","Boolean","trim","createElement","View","styles","sendInputContainer","onPress","disabled","TextInput","multiline","disableFullscreenUI","editable","placeholder","textToMentionedComponents","VoiceMessageButton","UserMessageSendButton","Modal","disableBackgroundClose","Promise","allSettled","reset","backgroundStyle","justifyContent","type","onSend","_ref2","duration","_ref3","alert","useAlert","colors","useUIKitTheme","onPressWithPermissionCheck","recorderGranted","requestPermission","title","DIALOG","ALERT_PERMISSIONS_TITLE","ALERT_PERMISSIONS_MESSAGE","PERMISSION_MICROPHONE","PERMISSION_APP_NAME","buttons","ALERT_PERMISSIONS_OK","SBUUtils","openSettings","playerGranted","PERMISSION_DEVICE_STORAGE","TouchableOpacity","Icon","color","ui","input","highlight","active","icon","size","containerStyle","sendIcon","_ref4","createStyleSheet","paddingVertical","paddingHorizontal","alignItems","flexDirection","marginLeft","padding","_default","exports"],"sources":["SendInput.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport {\n NativeSyntheticEvent,\n TextInput as RNTextInput,\n TextInputSelectionChangeEventData,\n TouchableOpacity,\n View,\n} from 'react-native';\n\nimport { MentionType, MessageMetaArray } from '@sendbird/chat/message';\nimport {\n Icon,\n Modal,\n TextInput,\n createStyleSheet,\n useAlert,\n useBottomSheet,\n useToast,\n useUIKitTheme,\n} from '@sendbird/uikit-react-native-foundation';\nimport { Logger, useDeferredModalState, useIIFE } from '@sendbird/uikit-utils';\n\nimport { VOICE_MESSAGE_META_ARRAY_DURATION_KEY, VOICE_MESSAGE_META_ARRAY_MESSAGE_TYPE_KEY } from '../../constants';\nimport { useChannelInputItems } from '../../hooks/useChannelInputItems';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../../hooks/useContext';\nimport SBUUtils from '../../libs/SBUUtils';\nimport type { FileType } from '../../platform/types';\nimport type { MentionedUser } from '../../types';\nimport type { ChannelInputProps } from './index';\n\ninterface SendInputProps extends ChannelInputProps {\n text: string;\n onChangeText: (val: string) => void;\n onSelectionChange: (e: NativeSyntheticEvent<TextInputSelectionChangeEventData>) => void;\n mentionedUsers: MentionedUser[];\n}\n\nconst SendInput = forwardRef<RNTextInput, SendInputProps>(function SendInput(\n {\n style,\n VoiceMessageInput,\n MessageToReplyPreview,\n AttachmentsButton,\n onPressSendUserMessage,\n onPressSendFileMessage,\n text,\n onChangeText,\n onSelectionChange,\n mentionedUsers,\n inputDisabled,\n inputFrozen,\n inputMuted,\n channel,\n messageToReply,\n setMessageToReply,\n },\n ref,\n) {\n const { playerService, recorderService } = usePlatformService();\n const { mentionManager, sbOptions } = useSendbirdChat();\n const { STRINGS } = useLocalization();\n const { openSheet } = useBottomSheet();\n const toast = useToast();\n\n const {\n onClose,\n onDismiss,\n visible: voiceMessageInputVisible,\n setVisible: setVoiceMessageInputVisible,\n } = useDeferredModalState();\n\n const messageReplyParams = useIIFE(() => {\n const { groupChannel } = sbOptions.uikit;\n if (!channel.isGroupChannel() || groupChannel.channel.replyType === 'none' || !messageToReply) return {};\n return {\n parentMessageId: messageToReply.messageId,\n isReplyToChannel: true,\n };\n });\n\n const messageMentionParams = useIIFE(() => {\n const { groupChannel } = sbOptions.uikit;\n if (!channel.isGroupChannel() || !groupChannel.channel.enableMention) return {};\n return {\n mentionType: MentionType.USERS,\n mentionedUserIds: mentionedUsers.map((it) => it.user.userId),\n mentionedMessageTemplate: mentionManager.textToMentionedMessageTemplate(\n text,\n mentionedUsers,\n groupChannel.channel.enableMention,\n ),\n };\n });\n\n const onFailureToSend = (error: Error) => {\n toast.show(STRINGS.TOAST.SEND_MSG_ERROR, 'error');\n Logger.error(STRINGS.TOAST.SEND_MSG_ERROR, error);\n };\n\n const sendUserMessage = () => {\n onPressSendUserMessage({\n message: text,\n ...messageMentionParams,\n ...messageReplyParams,\n }).catch(onFailureToSend);\n\n onChangeText('');\n setMessageToReply?.();\n };\n\n const sendFileMessage = (file: FileType) => {\n onPressSendFileMessage({\n file,\n ...messageReplyParams,\n }).catch(onFailureToSend);\n\n setMessageToReply?.();\n };\n\n const sendVoiceMessage = (file: FileType, durationMills: number) => {\n if (inputMuted) {\n toast.show(STRINGS.TOAST.USER_MUTED_ERROR, 'error');\n Logger.error(STRINGS.TOAST.USER_MUTED_ERROR);\n } else if (inputFrozen) {\n toast.show(STRINGS.TOAST.CHANNEL_FROZEN_ERROR, 'error');\n Logger.error(STRINGS.TOAST.CHANNEL_FROZEN_ERROR);\n } else {\n onPressSendFileMessage({\n file,\n metaArrays: [\n new MessageMetaArray({\n key: VOICE_MESSAGE_META_ARRAY_DURATION_KEY,\n value: [String(durationMills)],\n }),\n new MessageMetaArray({\n key: VOICE_MESSAGE_META_ARRAY_MESSAGE_TYPE_KEY,\n value: [`voice/${recorderService.options.extension}`],\n }),\n ],\n ...messageReplyParams,\n }).catch(onFailureToSend);\n }\n\n onChangeText('');\n setMessageToReply?.();\n };\n\n const sheetItems = useChannelInputItems(channel, sendFileMessage);\n\n const getPlaceholder = () => {\n if (inputMuted) return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_MUTED;\n if (inputFrozen) return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_DISABLED;\n if (inputDisabled) return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_DISABLED;\n if (messageToReply) return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_REPLY;\n\n return STRINGS.LABELS.CHANNEL_INPUT_PLACEHOLDER_ACTIVE;\n };\n\n const voiceMessageEnabled = channel.isGroupChannel() && sbOptions.uikit.groupChannel.channel.enableVoiceMessage;\n const sendButtonVisible = Boolean(text.trim());\n\n return (\n <View>\n {MessageToReplyPreview && (\n <MessageToReplyPreview messageToReply={messageToReply} setMessageToReply={setMessageToReply} />\n )}\n <View style={styles.sendInputContainer}>\n {AttachmentsButton && <AttachmentsButton onPress={() => openSheet({ sheetItems })} disabled={inputDisabled} />}\n <TextInput\n ref={ref}\n multiline\n disableFullscreenUI\n onSelectionChange={onSelectionChange}\n editable={!inputDisabled}\n onChangeText={onChangeText}\n style={style}\n placeholder={getPlaceholder()}\n >\n {mentionManager.textToMentionedComponents(\n text,\n mentionedUsers,\n sbOptions.uikit.groupChannel.channel.enableMention,\n )}\n </TextInput>\n\n {voiceMessageEnabled && (\n <VoiceMessageButton\n visible={!sendButtonVisible}\n disabled={inputDisabled}\n onPress={() => setVoiceMessageInputVisible(true)}\n />\n )}\n <UserMessageSendButton visible={sendButtonVisible} disabled={inputDisabled} onPress={sendUserMessage} />\n {voiceMessageEnabled && VoiceMessageInput && (\n <Modal\n disableBackgroundClose\n onClose={onClose}\n onDismiss={() => {\n onDismiss();\n Promise.allSettled([playerService.reset(), recorderService.reset()]);\n }}\n backgroundStyle={{ justifyContent: 'flex-end' }}\n visible={voiceMessageInputVisible}\n type={'slide-no-gesture'}\n >\n <VoiceMessageInput onClose={onClose} onSend={({ file, duration }) => sendVoiceMessage(file, duration)} />\n </Modal>\n )}\n </View>\n </View>\n );\n});\n\ntype InputButtonProps = { visible: boolean; disabled: boolean; onPress: () => void };\nconst VoiceMessageButton = ({ visible, disabled, onPress }: InputButtonProps) => {\n const { STRINGS } = useLocalization();\n const { alert } = useAlert();\n const { playerService, recorderService } = usePlatformService();\n const { colors } = useUIKitTheme();\n if (!visible) return null;\n\n const onPressWithPermissionCheck = async () => {\n const recorderGranted = await recorderService.requestPermission();\n if (!recorderGranted) {\n alert({\n title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,\n message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE(\n STRINGS.LABELS.PERMISSION_MICROPHONE,\n STRINGS.LABELS.PERMISSION_APP_NAME,\n ),\n buttons: [{ text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK, onPress: () => SBUUtils.openSettings() }],\n });\n Logger.error('Failed to request permission for recorder');\n return;\n }\n\n const playerGranted = await playerService.requestPermission();\n if (!playerGranted) {\n alert({\n title: STRINGS.DIALOG.ALERT_PERMISSIONS_TITLE,\n message: STRINGS.DIALOG.ALERT_PERMISSIONS_MESSAGE(\n STRINGS.LABELS.PERMISSION_DEVICE_STORAGE,\n STRINGS.LABELS.PERMISSION_APP_NAME,\n ),\n buttons: [{ text: STRINGS.DIALOG.ALERT_PERMISSIONS_OK, onPress: () => SBUUtils.openSettings() }],\n });\n Logger.error('Failed to request permission for player');\n return;\n }\n\n onPress();\n };\n\n return (\n <TouchableOpacity onPress={onPressWithPermissionCheck} disabled={disabled}>\n <Icon\n color={disabled ? colors.ui.input.default.disabled.highlight : colors.ui.input.default.active.highlight}\n icon={'audio-on'}\n size={24}\n containerStyle={styles.sendIcon}\n />\n </TouchableOpacity>\n );\n};\nconst UserMessageSendButton = ({ visible, disabled, onPress }: InputButtonProps) => {\n const { colors } = useUIKitTheme();\n if (!visible) return null;\n return (\n <TouchableOpacity onPress={onPress} disabled={disabled}>\n <Icon\n color={disabled ? colors.ui.input.default.disabled.highlight : colors.ui.input.default.active.highlight}\n icon={'send'}\n size={24}\n containerStyle={styles.sendIcon}\n />\n </TouchableOpacity>\n );\n};\n\nconst styles = createStyleSheet({\n sendInputContainer: {\n paddingVertical: 10,\n paddingHorizontal: 12,\n alignItems: 'center',\n flexDirection: 'row',\n },\n sendIcon: {\n marginLeft: 4,\n padding: 4,\n },\n});\n\nexport default SendInput;\n"],"mappings":"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"}
@@ -50,7 +50,8 @@ const ChannelInput = props => {
50
50
  bottom
51
51
  } = (0, _reactNativeSafeAreaContext.useSafeAreaInsets)();
52
52
  const {
53
- colors
53
+ colors,
54
+ typography
54
55
  } = (0, _uikitReactNativeFoundation.useUIKitTheme)();
55
56
  const {
56
57
  sbOptions,
@@ -72,6 +73,16 @@ const ChannelInput = props => {
72
73
  const mentionAvailable = sbOptions.uikit.groupChannel.channel.enableMention && channel.isGroupChannel() && !channel.isBroadcast;
73
74
  const inputKeyToRemount = GET_INPUT_KEY(mentionAvailable ? mentionedUsers.length === 0 : false);
74
75
  const [inputHeight, setInputHeight] = (0, _react.useState)(styles.inputDefault.height);
76
+ const fontStyle = (0, _react.useMemo)(() => {
77
+ if (!typography.body3.fontSize) return typography.body3;
78
+ // NOTE: iOS does not support textAlignVertical, so we should adjust lineHeight to center the text in multiline TextInput.
79
+ return {
80
+ ...typography.body3,
81
+ lineHeight: typography.body3.fontSize * 1.275,
82
+ textAlignVertical: 'center'
83
+ };
84
+ }, [typography.body3.fontSize]);
85
+ const textInputStyle = _reactNative.StyleSheet.flatten([styles.input, fontStyle, props.style]);
75
86
  useTypingTrigger(text, channel);
76
87
  useTextClearOnDisabled(onChangeText, props.inputDisabled);
77
88
  useAutoFocusOnEditMode(textInputRef, messageToEdit);
@@ -112,7 +123,8 @@ const ChannelInput = props => {
112
123
  mentionedUsers: mentionedUsers,
113
124
  VoiceMessageInput: props.VoiceMessageInput ?? _VoiceMessageInput.default,
114
125
  AttachmentsButton: props.AttachmentsButton ?? _AttachmentsButton.default,
115
- MessageToReplyPreview: props.MessageToReplyPreview ?? _MessageToReplyPreview.MessageToReplyPreview
126
+ MessageToReplyPreview: props.MessageToReplyPreview ?? _MessageToReplyPreview.MessageToReplyPreview,
127
+ style: textInputStyle
116
128
  })), inputMode === 'edit' && messageToEdit && /*#__PURE__*/_react.default.createElement(_EditInput.default, _extends({}, props, {
117
129
  key: inputKeyToRemount,
118
130
  ref: textInputRef,
@@ -122,7 +134,8 @@ const ChannelInput = props => {
122
134
  onSelectionChange: onSelectionChange,
123
135
  mentionedUsers: mentionedUsers,
124
136
  messageToEdit: messageToEdit,
125
- setMessageToEdit: setMessageToEdit
137
+ setMessageToEdit: setMessageToEdit,
138
+ style: textInputStyle
126
139
  }))), /*#__PURE__*/_react.default.createElement(SafeAreaBottom, {
127
140
  height: bottom
128
141
  }))), mentionAvailable && props.SuggestedMentionList && /*#__PURE__*/_react.default.createElement(props.SuggestedMentionList, {
@@ -174,6 +187,20 @@ const styles = (0, _uikitReactNativeFoundation.createStyleSheet)({
174
187
  },
175
188
  inputDefault: {
176
189
  height: 56
190
+ },
191
+ input: {
192
+ flex: 1,
193
+ marginRight: 4,
194
+ borderRadius: 20,
195
+ paddingTop: 8,
196
+ paddingBottom: 8,
197
+ minHeight: 36,
198
+ // Android - padding area is hidden
199
+ // iOS - padding area is visible
200
+ maxHeight: _reactNative.Platform.select({
201
+ ios: 36 * 2 + 16,
202
+ android: 36 * 2
203
+ })
177
204
  }
178
205
  });
179
206
  var _default = /*#__PURE__*/_react.default.memo(ChannelInput);
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeSafeAreaContext","_uikitReactNativeFoundation","_uikitUtils","_useContext","_useMentionTextInput","_interopRequireDefault","_AttachmentsButton","_EditInput","_MessageToReplyPreview","_SendInput","_VoiceMessageInput","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","AUTO_FOCUS","Platform","select","ios","android","KEYBOARD_AVOID_VIEW_BEHAVIOR","undefined","GET_INPUT_KEY","shouldReset","ChannelInput","props","channel","keyboardAvoidOffset","messageToEdit","setMessageToEdit","top","left","right","bottom","useSafeAreaInsets","colors","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","useTypingTrigger","useTextClearOnDisabled","inputDisabled","useAutoFocusOnEditMode","onPressToMention","user","searchStringRange","mentionedMessageText","asMentionedMessageText","range","start","end","replace","shouldRenderInput","createElement","SafeAreaBottom","Fragment","KeyboardAvoidingView","keyboardVerticalOffset","behavior","View","style","paddingLeft","paddingRight","backgroundColor","background","onLayout","e","nativeEvent","layout","inputContainer","ref","VoiceMessageInput","AttachmentsButton","MessageToReplyPreview","autoFocus","SuggestedMentionList","topInset","bottomInset","useEffect","endTyping","startTyping","setText","chatDisabled","isUserMessage","setTimeout","_textInputRef$current","current","focus","_ref","createStyleSheet","justifyContent","width","_default","React","memo","exports"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { KeyboardAvoidingView, Platform, TextInput, View } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdBaseChannel,\n SendbirdBaseMessage,\n SendbirdFileMessage,\n SendbirdFileMessageCreateParams,\n SendbirdFileMessageUpdateParams,\n SendbirdMember,\n SendbirdUserMessage,\n SendbirdUserMessageCreateParams,\n SendbirdUserMessageUpdateParams,\n replace,\n useIIFE,\n} from '@sendbird/uikit-utils';\n\nimport { useSendbirdChat } from '../../hooks/useContext';\nimport useMentionTextInput from '../../hooks/useMentionTextInput';\nimport type { 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 // 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\n // mention\n SuggestedMentionList?: (props: SuggestedMentionListProps) => React.ReactNode | null;\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.\nconst GET_INPUT_KEY = (shouldReset: boolean) => (shouldReset ? 'uikit-input-clear' : 'uikit-input');\n\n// TODO: Refactor 'Edit' mode to clearly\nconst ChannelInput = (props: ChannelInputProps) => {\n const { channel, keyboardAvoidOffset, messageToEdit, setMessageToEdit } = props;\n\n const { top, left, right, bottom } = useSafeAreaInsets();\n const { colors } = 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\n const inputKeyToRemount = GET_INPUT_KEY(mentionAvailable ? mentionedUsers.length === 0 : false);\n\n const [inputHeight, setInputHeight] = useState(styles.inputDefault.height);\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={bottom} />;\n }\n\n return (\n <>\n <KeyboardAvoidingView\n keyboardVerticalOffset={-bottom + keyboardAvoidOffset}\n behavior={KEYBOARD_AVOID_VIEW_BEHAVIOR}\n >\n <View style={{ paddingLeft: left, paddingRight: right, backgroundColor: colors.background }}>\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 />\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 />\n )}\n </View>\n <SafeAreaBottom height={bottom} />\n </View>\n </KeyboardAvoidingView>\n {mentionAvailable && props.SuggestedMentionList && (\n <props.SuggestedMentionList\n text={text}\n selection={selection}\n inputHeight={inputHeight}\n topInset={top}\n bottomInset={bottom}\n onPressToMention={onPressToMention}\n mentionedUsers={mentionedUsers}\n />\n )}\n </>\n );\n};\n\nconst useTypingTrigger = (text: string, channel: SendbirdBaseChannel) => {\n if (channel.isGroupChannel()) {\n useEffect(() => {\n if (text.length === 0) channel.endTyping();\n else channel.startTyping();\n }, [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});\n\nexport default React.memo(ChannelInput);\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeSafeAreaContext","_uikitReactNativeFoundation","_uikitUtils","_useContext","_useMentionTextInput","_interopRequireDefault","_AttachmentsButton","_EditInput","_MessageToReplyPreview","_SendInput","_VoiceMessageInput","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","AUTO_FOCUS","Platform","select","ios","android","KEYBOARD_AVOID_VIEW_BEHAVIOR","undefined","GET_INPUT_KEY","shouldReset","ChannelInput","props","channel","keyboardAvoidOffset","messageToEdit","setMessageToEdit","top","left","right","bottom","useSafeAreaInsets","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","Fragment","KeyboardAvoidingView","keyboardVerticalOffset","behavior","View","paddingLeft","paddingRight","backgroundColor","background","onLayout","e","nativeEvent","layout","inputContainer","ref","VoiceMessageInput","AttachmentsButton","MessageToReplyPreview","autoFocus","SuggestedMentionList","topInset","bottomInset","useEffect","endTyping","startTyping","setText","chatDisabled","isUserMessage","setTimeout","_textInputRef$current","current","focus","_ref","createStyleSheet","justifyContent","width","flex","marginRight","borderRadius","paddingTop","paddingBottom","minHeight","maxHeight","_default","React","memo","exports"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport { KeyboardAvoidingView, Platform, StyleProp, StyleSheet, TextInput, TextStyle, View } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { createStyleSheet, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\nimport {\n SendbirdBaseChannel,\n SendbirdBaseMessage,\n SendbirdFileMessage,\n SendbirdFileMessageCreateParams,\n SendbirdFileMessageUpdateParams,\n SendbirdMember,\n SendbirdUserMessage,\n SendbirdUserMessageCreateParams,\n SendbirdUserMessageUpdateParams,\n replace,\n useIIFE,\n} from '@sendbird/uikit-utils';\n\nimport { useSendbirdChat } from '../../hooks/useContext';\nimport useMentionTextInput from '../../hooks/useMentionTextInput';\nimport type { 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\n // mention\n SuggestedMentionList?: (props: SuggestedMentionListProps) => React.ReactNode | null;\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.\nconst GET_INPUT_KEY = (shouldReset: boolean) => (shouldReset ? 'uikit-input-clear' : 'uikit-input');\n\n// TODO: Refactor 'Edit' mode to clearly\nconst ChannelInput = (props: ChannelInputProps) => {\n const { channel, keyboardAvoidOffset, messageToEdit, setMessageToEdit } = props;\n\n const { top, left, right, bottom } = useSafeAreaInsets();\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 = 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={bottom} />;\n }\n\n return (\n <>\n <KeyboardAvoidingView\n keyboardVerticalOffset={-bottom + keyboardAvoidOffset}\n behavior={KEYBOARD_AVOID_VIEW_BEHAVIOR}\n >\n <View style={{ paddingLeft: left, paddingRight: right, backgroundColor: colors.background }}>\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={bottom} />\n </View>\n </KeyboardAvoidingView>\n {mentionAvailable && props.SuggestedMentionList && (\n <props.SuggestedMentionList\n text={text}\n selection={selection}\n inputHeight={inputHeight}\n topInset={top}\n bottomInset={bottom}\n onPressToMention={onPressToMention}\n mentionedUsers={mentionedUsers}\n />\n )}\n </>\n );\n};\n\nconst useTypingTrigger = (text: string, channel: SendbirdBaseChannel) => {\n if (channel.isGroupChannel()) {\n useEffect(() => {\n if (text.length === 0) channel.endTyping();\n else channel.startTyping();\n }, [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 marginRight: 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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"}